渗透测试-如何高效率挖掘漏洞
前言
1、做渗透由始至终,忌讳穿插其他项目进行
2、按顺序细心测试每一个功能点,保证漏洞无遗漏
3、山穷水复疑无路,柳暗花明又一村,一个点利用不到,可以灵活变通尝试其他方向
漏扫工具
AWVS
Xray
端口扫描
端口扫描可发现系统开放的端口
21、22、3306等远程端口,可使用超级弱口令工具或者railgun自带模块进行暴力破解
6379端口可以尝试redis未授权,使用计划任务等方式弹shell
8080端口可尝试tomcat弱口令部署war包getshell
目录扫描
通过目录扫描可以发现系统中存在的脆弱性问题,方便我们进行下一步渗透
对于一些403的页面,可以进行二级目录扫描
dirsearch
Jsfinder
识别系统使用框架
可通过指纹工具识别出所使用的框架或者产品
Wappalyzer
tidefinger
CMS二次开发站点
通过目录扫描发现带有cms标识残留页面或者通过图标判断出
通过漏洞库查找相关未修复的漏洞
struts2
一般使用struts2框架后缀带do或action,可以尝试进行利用
后缀为action,可能使用了struts2框架,使用工具尝试进行利用
命令执行成功
shiro
shiro框架识别可通过数据包中是否含有rememberme字段进行判断
登录抓取数据包,发现存在rememberme字段,判断为shiro框架,尝试进行
检测当前密钥和利用链是否存在
两者存在利用成功
在攻防演练里getshell后还可以对key进行修改,防止其他队伍得分
使用潘神的一键改key工具,可看到key已经被修改
weblogic
框架识别
访问7001端口出现下面这种截图,可能存在weblogic漏洞
使用weblogic漏洞利用工具,检测是否存在漏洞
执行命令
weblogic弱口令
输入console可跳转至登录界面,可以测试是否使用默认口令
1 | system/password |
springboot
框架识别
1、通过 web 应用程序网页标签的小绿叶图标(favicon.ico)
2、通过 springboot 框架默认报错页面
目录扫描接口
推荐章神的railgun,有对应的springboot字典
1 | /env、/actuator/env |
springboot exploit
目标地址填入要测试的url,点击检测环境,然后点击检测当前利用链
1 | java -jar JNDIExploit-1.3-SNAPSHOT.jar -l 1234 -p 8988 -i 0.0.0.0 |
heapdump密码获取
1 | /heapdump |
使用Eclipse Memory Analyzer进行分析
1 | select s from java.lang.String s where /pass/.test(s.value.toString()) |
springboot function spel rce
发送poc,成功执行命令
1 | POST /functionRouter HTTP/1.1 |
springboot gateway
添加一个路由
1 | POST /actuator/gateway/routes/test HTTP/1.1 |
刷新令路由生效
1 | POST /actuator/gateway/refresh HTTP/1.1 |
访问触发漏洞
1 | GET /actuator/gateway/routes/test HTTP/1.1 |
删除路由
1 | DELETE /actuator/gateway/routes/test HTTP/1.1 |
工具检测
https://github.com/chaosec2021/CVE-2022-22947-POC
log4j
https://github.com/f0ng/log4j2burpscanner
1 | java -jar JNDIExploit-1.3-SNAPSHOT.jar -l 1234 -p 8988 -i 0.0.0.0 |
常见功能点漏洞
SQL注入挖掘
遇到参数后面带数字的,可以使用1=1、1=2
判断是否存在sql注入
抓取数据包,使用sqlmap进行注入测试
测试成功
但在测试过程中可能会遇到被waf拦截的情况
可以fuzz被拦截的字符,有针对性进行绕过
api接口账密信息泄露
通过查看系统的js文件,检索字段如id、pass、url等关键字
接口参数发现
常见于任意文件读取、下载、包含漏洞
arjun+fuzz
知道参数为file 构造 https://10.10.10.127/system_wws/include.php?file= 使用字典对可读取文件进行fuzz
敏感信息泄露
通过对某个字段进行置空,回显数据包中泄露了大量的手机号、姓名、住址等敏感信息
越权漏洞
通过修改post数据包字段的数值,可进行越权操作,查看其他用户的个人信息
短信问题
短信轰炸
对数据包进行重放,实现单用户收到多条短信的效果
短信定向转发
对数据包中的手机号进行遍历,实现一条短信转发给多个用户效果
未授权访问
https://github.com/rtcatc/Packer-Fuzzer
文件上传
黑名单过滤php后缀,尝试php3、php5、phtml等进行绕过
存在文件解析漏洞,比如apache的从右往左进行解析,可添加.xxx进行绕过
fuzz其他上传接口比如file、upload、uploadfile等,可能会存在其他接口不检验的问题,但实战中很少
暴力破解
之前我们一般暴力破解都是以admin为账号,去爆破top1000的字典,去根据状态码、长度筛选爆破结果
但是admin管理员账户一般是强口令,很难进行爆破,且部分密码进行加密,寻找js解密耗费时间久,对于admin建议尝试几个admin123、123456这些,如果没有的话我们应该选择其他的思路,固定密码123456、000000去爆破姓名拼音用户名
凑洞环节
后台地址泄露
不安全的http请求方式
垃圾数据写入
用户名枚举
中间件版本信息泄露
多点会话登录