安全矩阵

 找回密码
 立即注册
搜索
楼主: only

曾玉芳学习日记

[复制链接]

16

主题

99

帖子

543

积分

高级会员

Rank: 4

积分
543
 楼主| 发表于 2020-11-29 21:41:58 | 显示全部楼层
11月29日:
系统工程与密码学研究所web安全基础测试题
B
——曾玉芳
1、什么是SSRF漏洞?举例说明
SSRF为服务器请求伪造是一种构造请求,由服务器发起请求的安全漏洞。一般的情况下,SSRF的目标就是与外部隔离的内网资源。如果应用程序对用户提供的URL和远端服务器返回的信息没有进行合适的验证和过滤,就可能存在这种服务端请求伪造的缺陷,攻击者利用ssrf可以实现的攻击主要有5种:
1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序(比如溢出);
3.对内网web应用进行指纹识别,通过访问默认文件实现;
4.攻击内外网的web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
5.利用file协议读取本地文件等。
2、什么是XSS漏洞,有哪些类型?举例说明
xss为跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数。
      
xss一般有三种比较常见的类型:
1.反射型
攻击者不能将数据存在数据库里面,是一次性的,所见即所得,一般出现在查询类页面
2,存储型
攻击者的数据会被存储在数据库中,永久性存储,一般出现在留言板,注册等页面
3.DOM型
不与后台服务器产生的数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型
危害:存储型>反射型>DOM型
3、SQL 注入有哪几种类型?
最基础的注入-union注入攻击
Boolean注入攻击-布尔盲注
报错注入攻击
时间注入攻击-时间盲注
堆叠查询注入攻击
二次注入攻击
宽字节注入攻击
base64注入攻击
cookie注入攻击-http请求头参数注入
XFF注入攻击-http请求头参数注入
知道绝对路径的注入
4、什么是业务逻辑漏洞,有哪些类型?
逻辑漏洞就是指攻击者利用业务的设计缺陷,获取敏感信息或破坏业务的完整性。一般出现在密码修改、越权访问、密码找回、交易支付金额等功能处。其中越权访问又有水平越权和垂直越权两种:
l  水平越权:相同级别(权限)的用户或者同一角色中不同的用户之间,可以越权访问、修改或者删除其他用户信息的非法操作。如果出现此漏洞,可能会造成大批量数据的泄露严重甚至会造成用户信息被恶意篡改。
l  垂直越权:就是不同级别之间的用户或不同角色之间用户的越权,比如普通用户可以执行管理员才能执行的功能。
常见的逻辑漏洞有以下几类:
1.       支付订单:在支付订单时,可以篡改价格为任意金额;或者可以篡改运费或其他费用为负数,导致总金额降低。
2.       越权访问:通过越权漏洞访问他人信息或者操纵他人账号。
3.       重置密码:在重置密码时,存在多种逻辑漏洞,比如利用session覆盖重置密码、短信验证码直接在返回的数据包中等。
4.       竞争条件:竞争条件常见于多种攻击场景中,比如文件上传漏洞。
5、sg|map怎么对一个注入点注入?过程是什么?
       sqlmap.py-u “存在注入url”                               ——判断注入点
sqlmap.py -u “存在注入url” –dbs                          ——爆出所有数据库名字
sqlmap.py -u “存在注入url” --current-user                 ——查看当前使用账号
sqlmap.py -u “存在注入url” --current-db                   ——查看当前数据库
sqlmap.py -u “存在注入url”-D “当前数据库名” –tables        ——列出数据库中所有表
sqlmap.py -u “存在注入url” -D “当前数据库名” -T“需要表名” –columns
——列出数据库中的表中的字段
sqlmap.py -u “存在注入url” -D “当前数据库名” -T “需要表名” -C “当前表的字段” –dump                                           ——列出数据库中的表中的字段
6、报错注入的函数有哪些?举例
floor()、extractvalue()、updatexml()、exp()
7、延时注入如何来判断?举例
延时注入是利用sleep()或benchmark()等函数让mysql的执行时间变长。若要判断sql语句执行的正确性,我们可以用bp抓包,根据其页面响应时间的长短来判断sql语句是否正确
8、sql注入工具sqlmap的常见则试语句有哪些?举例
       --current-db             当前数据库
--current-user           当前数据库用户名
--is-dba                    查看当前用户是否为管理员权限
--data                       post型注入时的post数据
--threads                    最大并发线程(不要超过10)
-r                               跟http请求头的头部文件.txt
--cookie  cookie注入
-a, --all                 检索全部
-b, --banner            检索 banner
--current-user           检索当前用户
--current-db            检索当前数据库
--passwords              列出用户密码的hash值
--tables                   列出表
--columns                列出字段
--schema                列出DBMS schema
--dump                Dump DBMS数据库表的条目
--dump-all             Dump 所有DBMS数据库表的条目
-D DB                 指定数据库
-T TBL                 指定表
-C COL                指定字段
9、owasp 10大漏洞都有哪些?
       1.sql注入
       2.失效的身份认证和会话管理
3.跨站脚本攻击——xss
4. 不安全的直接对象引用 Insecurity Direct Object Reference
5. 安全配置错误 Security Misconfiguration
6. 敏感信息泄露 Sensitive Data Exposure
7. 缺少功能级访问控制
8. 跨站请求伪造——CSRF
9. 使用含有已知漏洞的组件
10. 未验证的重定向和转发
10、PHP代码执行和命令执行的函数都有哪些?
代码执行函数:eval()、assert()、preg_replace()、create_function()、array_map()、call_user_func()、call_user_func_array()、array_filter()、uasort()
命令执行函数:system()、exec()、popen()、passthru()、shell_exec()
11、什么是XXE漏洞,举例说明
XEE漏洞是指xml外部实体注入漏洞。xml一般指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。攻击者可以通过实体将自定义的值发送给应用程序,然后让应用程序去呈现
12、如何向服务器写入webshell?
       通过mysql注入点写入webshell
1、利用Union select 写入。
union 跟select into outfile,将一句话写入evil.php,仅适用于联合注入
2、利用分隔符写入。
当Mysql注入点为盲注或报错,那么可以通过分隔符写入。具体权限要求:secure_file_priv支持web目录文件导出、数据库用户File权限、获取物理路径
3、利用log写入
新版本的MySQL设置了导出文件的路径,很难在获取Webshell过程中去修改配置文件,无法通过使用select into outfile来写入一句话。这时,我们可以通过修改MySQL的log文件来获取Webshell。
13、常见的上传绕过方式有哪些?
       1.js检测绕过
       2.文件后缀绕过
3.文件类型绕过
4.文件截断绕过
14、什么是文件包含漏洞,PHP 相关函数是那些?举例说明
       文件包含是指在通过服务器脚本的函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,导致意外的文件泄露、恶意代码的注入等。
文件包含分为两种,一种为本地文件包含,一种为远程文件包含。
涉及函数:require()、require_once( )、include()、include_once()
15、盲注入的常用技巧有哪些?举例说明
1.布尔盲注
布尔(Boolean)型是计算机里的一种数据类型,只有True(真)和False(假)两个值。一般也称为逻辑型。页面在执行sql语句后,只显示两种结果,这时可通过构造逻辑表达式的sql语句来判断数据的具体内容。常用到的函数有:
mid(str,start,length)  :字符串截取
ORD()              :转换成ascii码
Length()            :统计长度
version()            :查看数据库版本
database()           :查看当前数据库名
user()               :查看当前用户
2.延时注入
提交对执行时间敏感的函数sql语句,通过执行时间的长短来判断是否执行成功,比如:正确的话会导致时间很长,错误的话会导致执行时间很短
常用函数有:
Sleep()                          :延迟函数
If(condition,true,false)                 :条件语句
mid(str,start,length)               :字符串截取
ORD()                            :转换成ascii码
Length()                         :统计长度
version()                        :查看数据库版本
database()                       :查看当前数据库名
user()                           :查看当前用户
3,报错盲注
基于报错的盲注是通过输入特定语句使页面报错,网页中则会输出相关错误信息,从而是我们得到想要的基本信息——数据库名、版本、用户名
常用函数:Updatexml()、Exp()、floor()

回复

使用道具 举报

16

主题

99

帖子

543

积分

高级会员

Rank: 4

积分
543
 楼主| 发表于 2020-12-5 16:57:21 | 显示全部楼层
本帖最后由 only 于 2020-12-5 16:59 编辑

12月5日:
Python的基本命令:

pip工具库常用命令:

Python变量
Python的对象模型:


  
注意:
1.        在Python中,不需要事先声明变量名及其类型,直接赋值即可创建各种类型的对象变量。这一点适用于Python任意类型的对象。
2.        Python属于强类型编程语言,Python解释器会根据赋值或运算来自动推断变量类型。Python还是一种动态类型语言,变量的类型也是可以随时变化的。
3.        如果变量出现在赋值运算符或复合赋值运算符(例如+=、*=等等)的左边则表示创建变量或修改变量的值,否则表示引用该变量的值。
4.        字符串和元组属于不可变序列,不能通过下标的方式来修改其中的元素值,试图修改元组中元素的值时会抛出异常。
5.        在Python中,允许多个变量指向同一个值,然而,当为其中一个变量修改值以后,其内存地址将会变化,但这并不影响另一个变量
6.        Python采用基于值的内存管理方式,如果为不同变量赋值为相同值,这个值在内存中只保存一份,多个变量指向同一个值的内存空间首地址,这样可以减少内存空间的占用,提高内存利用率。
7.        Python启动时,会对[-5, 256]区间的整数进行缓存。也就是说,如果多个变量的值相等且介于[-5, 256]区间内,那么这些变量共用同一个值的内存空间。
8.        对于区间[-5, 256]区间之外的整数,同一个程序中或交互模式下同一个语句中的同值不同名变量会共用同一个内存空间,不同程序或交互模式下不同语句不遵守这个约定。
9.        在定义变量名的时候,需要注意以下问题:
        变量名必须以字母、汉字或下划线开头,但以下划线开头的变量在Python中有特殊含义;
        变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线、冒号、句号、问号等等);
        不能使用关键字作变量名,可以导入keyword模块后使用print(keyword.kwlist)查看所有Python关键字;
        不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名,这将会改变其类型和含义,可以通过dir(__builtins__)查看所有内置模块、类型和函数;
        变量名对英文字母的大小写敏感,例如student和Student是不同的变量。
Python字符串:
1.        用单引号、双引号或三引号界定的符号系列称为字符串。
字符串属于不可变序列。
2.        单引号、双引号、三单引号、三双引号可以互相嵌套,用来表示复杂字符串。
3.        'abc'、'123'、'中国'、"Python"、'''Tom said, "Let's go"'''
4.        空字符串表示为''或 "" 。
5.        三引号'''或"""表示的字符串可以换行,支持排版较为复杂的字符串;三引号还可以在程序中表示较长的注释。
6.        常用转义字符

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

16

主题

99

帖子

543

积分

高级会员

Rank: 4

积分
543
 楼主| 发表于 2021-3-30 18:28:04 | 显示全部楼层
本帖最后由 only 于 2022-7-11 17:36 编辑

3月30日:
Metasploit入门
1. 简介
The Metasploit Framework的简称,MSF高度模块化,即框架由多个module组成,是全球最受欢迎的渗透工具
MSF是一款开源安全漏洞利用和测试的工具,集成了各种平台上常见的溢出漏洞和流行的shellcode,并保持持续更新 metasploit涵盖了渗透测试中全过程,你可以在这个框架下利用现有的payload进行一系列的渗透测试

2.目录结构
首先,执行
sudo su
进入超级用户root
Kali-metasploit框架目录路径:
  1. cd: /usr/share/metasploit-framework/
复制代码
在该目录下我们主要查看的是module,在此文件夹下面我们可以查看到metasploit由五个功能模块组成
3.模块
auxiliary模块
辅助模块,辅助渗透(端口扫描、登录密码爆破、漏洞验证)
exploit模块
漏洞利用模块,包含主流的漏洞利用脚本,通常是对某些可能存在的漏洞目标进行漏洞利用。命名规则:操作系统/各种应用协议的分类
payload模块
攻击载荷,主要是攻击成功后在目标机器执行的代码,比如反弹shell的代码
post模块
后渗透阶段模块,漏洞利用成功获得meterpreter之后,向目标发送的一些功能指令,如:提权等
encoders模块
编码器模块,主要包含各种编码工具,对payload进行编码加密,以便绕过入侵检测和过滤系统
evasion模块
躲避模块,用来生成免杀shellload
nops模块
由于IDS/IPS会检查数据包中不规则的数据,在某些情况下,比如针对溢出攻击,某些特殊滑行字符串(NOPS×90×90..)则会因为被拦截而导致攻击失效

4. 启动
msfdb init;初始化数据库
msfconsole:启动
启动成功!

5. 信息收集
我们拿到一台机器后首先要对他进行渗透测试,测试之前有一个必要步骤就是信息收集,而其中端口收集是很有必要的,这里必须要提到的就是nmap,他已经集成到了metasploit上面了
db_nmap -sT -T4 IP 查看目标机器所开放的端口
-T[0-5]:默认T3,T4表示最大TCP扫描延迟位10ms
-sS:TCP SYN扫描
-sA:TCP ACK扫描
-sT:TCP扫描
-A:打开操作系统探测和版本探测
host:查看当前工作区所有主机
services:查看所有服务

6. auxiliary

主机发现&端口扫描
search:搜素msf中相关模
#端口扫描
search portscan
#主机发现
search discovery
#使用模块
msf6>user auxilisry/scanner/portscan/tcp

use module:使用msf中相关模块
#arp扫描存货探测
use auxiliary/scanner/discovery/arp_sweep
#查看模块设置
options/show options
#设置模块必须项
set rhost 192.168.123.1/24
#运行模块
run/exploit

攻击ms17-010

#搜索相关模块
search ms17_010
#使用辅助模块检测漏洞
use auxiliary/scanner/smb/smb_ms17_010
#查看模块payload设置
options/show options
#设置模块必选项
set rhost 192.168.123.164
#运行模块
run/exploit

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

16

主题

99

帖子

543

积分

高级会员

Rank: 4

积分
543
 楼主| 发表于 2021-4-1 20:57:07 | 显示全部楼层
本帖最后由 only 于 2021-4-1 20:59 编辑

4月1日:
Hvv小结(蓝队)
蓝队:防守方
红队:攻击方
紫队:主办方(公安部、公安厅、公安局)
第一阶段:备战阶段
梳理甲方企业规模及所有的资产包括:域名,ip分段 ,端口,服务,甲方安全现状进行排查,针对性风险评估、自查自纠、开展安全培训、建立安全防护体系;
第二阶段:临战阶段
按照HW整体模式开展资产巡查、渗透测试、制定应急预案、开展实战应急演练、依据内外网检测结果进行系统加固及应急优化;
第三阶段:决战阶段
依据建立的安全防护应急队伍主要工作是完成了前期的准备工作后的值守,进行7*24小时现场值守,实时监控安全态势,并对安全事件进行应急响应确保整个重大活动期间的安全保障,包含依据安全审计防护设备告警信息进行实时监控与上报、实时监测重点系统的风险及安全隐患第一时间进行应急处置、现场依据策略调整进行处理突发事件、针对产生的安全事件进行应急溯源分析等;
第四阶段:战后总结
对本次护网的工作成果及不足进行讨论总结,并根据经验持续改进优化网络安全整体建设

注意
1.首先我们应当收敛攻击面,将不需要的服务,数据库等暂时关闭
常见数据库:
关系数据库:
MySQL3306
Mssql1433
Oracle1521
非关系数据库:
Redis6379
若发现公网上存在以上端口号,则需提醒甲方关闭或者限制访问(ftpnfs协议若存在也需关闭)应当记住,公网上只有web
若在资产清查后发现对方是云平台,则需在云服务器上部署蜜罐
2. 学会分析日志流量(了解http协议)
我们应当要关注动态语言(后缀为phpjspaspaspx甚至没有后缀,一般关注&或?符号),而静态语言(htmljsjpgjpegswfpdfxls)我们可以忽略
3. 甲方含有的一些设备
防火墙,VPN,流量审计系统,WAFids(入侵检测系统),ips(入侵保护系统)(ids+ips合并为态势感知系统,其系统既有检测作用又有防护作用,而检测作用较强)
我们需注意态势感知系统的日志,其日志内容包括防火墙,流量审计和WAF的日志内容
同时我们应当观察蜜罐,发现扫描蜜罐的IP
dmz区包括:防火墙,全流量,堡垒机,态势感知
4. 出漏洞最多的一些框架组件(若发现立即下线)
(1) thinkphp 3.x5.x等存在多种漏洞,若甲方使用则尝试能否修复漏洞,若不能则关闭
(2) Spring shrio组件(Java中用来权限控制的组件,可以直接通过命令执行的方式获得权限rememberme)若未修复漏洞则应立即下线,若已被攻击则需断网
(3) Weblogic  
(4) Fastjson
5. 如何发现设备误报以及处理方式
若在内网发现扫描IP,需上报给研判组,研判组需分析是否有IP通过别的入口打入内网,若为误报则可忽略,若非误报,则可以在全流量日志分析系统查看日志,如何将IP封锁,或者也可以通过该公网地址追溯查看其是否是通过其他的跳板机过来,可以追溯反制

一些面试题:
1. SQL注入的分类
Boolean盲注
Union注入
文件读写
报错注入{
floor报错注入
ExtractValue报错注入
UpdataXml报错注入
}
时间盲注
REGEXP正则匹配
宽字节注入
堆叠注入
二次注入
User-Agent注入
Cookie注入
过滤绕过
万能密码
SQL注入的预防
预编译
PDO
正则表达式过滤
2. 序列化与反序列化的区别:
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
3.PHP代码执行的危险函数
call_user_func()
call_user_func_array()
create_function()
array_map()
PHP命令执行函数
system
shell_exec
passthru
exec
popen
proc_open
putenv
assert
4.常见的中间件漏洞
IIS
PUT漏洞、短文件名猜解、远程代码执行、解析漏洞
Apache
解析漏洞、目录遍历
Nginx
文件解析、目录遍历、CRLF注入、目录穿越
Tomcat
远程代码执行、war后门文件部署
JBoss
反序列化漏洞、war后门文件部署
WebLogic
反序列化漏洞
SSRF任意文件上传
war后门文件部署
Apache Shiro反序列化漏洞
Shiro rememberMeShiro-550
Shiro Padding Oracle Attack(Shiro-721)
5.内网渗透思路
代理穿透
权限维持
内网信息收集
口令爆破
凭据窃取
社工
横行和纵向渗透
拿下域控
6.Windows提权
提权可分为纵向提权与横向提权:
纵向提权:低权限角色获得高权限角色的权限;
横向提权:获取同级别角色的权限。
7.Windows常用的提权方法
系统内核溢出漏洞提权
数据库提权
错误的系统配置提权
组策略首选项提权
WEB中间件漏洞提权
DLL劫持提权
滥用高危权限令牌提权
第三方软件/服务提权等

8.Linux提权有哪些方法
Linux内核漏洞提权
低权限用户目录下可被Root权限用户调用的脚本提权(SUID
环境变了劫持高权限程序提权
sudoer配置文件错误提权
9.OWASP Top10有哪些漏洞
SQL注入
失效的身份认证
敏感数据泄露
XML外部实体(XXE
失效的访问控制
安全配置错误
跨站脚本(XSS
不安全的反序列化
使用含有已知漏洞的组件
不足的日志记录和监控
10.蚁剑/菜刀/C/冰蝎的相同与不相同之处
相同:都是用来连接Web Shell的工具
不同:相比于其他三款,冰蝎有流量动态加密
11.正向代理和反向代理的区别
正向代理,当客户端无法访问外部资源的时候(比如GoogleYouTube),可以通过一个正向代理去间接地访问。
正向代理是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。
反向代理,客户端是无感知代理的存在,以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端。此时代理服务器对外就表现为一个服务器
12.正向SHELL和反向SHELL的区别
正向Shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。
反向Shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端.
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 02:49 , Processed in 0.022459 second(s), 17 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表