记录自实习以来做安全测试及复现漏洞时踩过的一些坑点
场景: 对一个目标站点进行渗透测试时,burpsuite代理工具无法捕获目标网站的请求和响应报文。
典型报错:
1.burpsuite发包无法收到响应报文,提示无法连接
2.burpsuite无法打开目标站点,但不使用代理则可以正常访问。
原因: 服务端针对Burpsuite内置浏览器TLS 指纹(JA3)进行了识别,检测到代理即禁止访问站点。
解决办法:
1.使用其他代理抓包工具,例如使用yakit。
2.使用burpsuite拓展Awesome TLS,伪装TLS指纹(不推荐使用,适配性较差,有时能过有时不行)。
小程序分为两类:
一类是可以在微信小程序中用默认浏览器打开的(开发人员做了浏览器的适配,大多数小程序是校验微信的User-Agent头字段来判定是不是使用微信打开的小程序),可以直接F12选择在前端打断点进行调试,找到加解密方式,以及秘钥,偏移量等;
第二类是无法直接在默认浏览器打开,我们需要先反编译小程序的数据包,还原前端JS源码,寻找加解密方式,秘钥,偏移量等。
1.在渗透测试小程序的过程中,会遇到数据包加密的情况
2.先观察抓到的数据包包头,部分加密方式会存在包头,如下图:
3.也存在数据包包头无任何加密信息的,我们尝试用默认浏览器打开此小程序。如果不能打开则需要反编译数据包
以一个需要反编译的数据包为例(windows PC端的微信为例):
(1)找到小程序数据包的存储位置:一般搜索".wxapkg"
(2)用工具将此数据包进行反编译,反编译使用的工具有很多,这里使用的是KillWxapkg进行反编译,找到KillWxapkg的位置,cmd运行
(4)使用命令-in 需要反编译的文件夹 -out 输出的文件夹 -id 这个id是需要反编译的文件所在的微信id
(5)将反编译后的文件打开,使用工具notepad++看.js的文件,查找加密方式,秘钥等
(6)Ctrl+F找关键词快速定位加密点:enc,crypt,privatekey,iv,常见加密算法的模式,例如AES的cbc/ecb,sm4等
这里使用关键词:encrypt,找到使用的AES的cbc模式进行加密
继续往下,看到了加密函数,这里可以看到偏移量定义为t,并且存在偏移量的内容
(7)再使用AES 加密/解密工具,选择具体的加密方式,将秘钥以及偏移量添加进去,可以看到解密成功
1. webshell工具版本和漏洞利用工具写入的webshell版本相对应
例如:低版本的Shiro利用工具打入的内存马版本是冰蝎3,此时用冰蝎4连接必定是连接不上的。
2. webshell写入成功,但是哥斯拉连接失败
原因一:webshell被杀毒干掉(未验证webshell是否写入成功就直接连的时候;有时候是访问到webshell一次之后就删除了),需要做免杀绕过处理(常见解决办法:二分法判断拦截了什么内容)
原因二:部分在上传成功后,需要固定cookie(常见于后台文件上传)
原因三:目标服务器存在负载均衡,需要使用适配于负载均衡的webshell进行连接。
场景:也是一次渗透测试项目遇到的情景,首先拿到系统手工测试一遍的时候暂没发现任何漏洞,但是在流量过burpsuite代理的时候发现URL路径中出现了blade字段,疑似框架系统的特征,经搜索发现证实是SpringBlade框架的特征:
又对比了一下SpringBlade的默认页面特征,前端改的比较彻底,就是一普普通通的一个登录框:
虽然默认UI改的比较彻底,但是流量中的特征还是能看出一些蛛丝马迹,因而收集了一下SpringBlade框架的漏洞进行综合验证,发现该框架被披露过sql注入及硬编码的JWT密钥等漏洞,尝试复现一下(不过这个站点没有默认的JWT密钥)
收集存在漏洞的一些接口
/api/blade-user/list
/api/blade-develop/code/list
/api/blade-desk/notice/list
/api/blade-resource/oss/list
/api/blade-system/dict-biz/list
/api/blade-system/menu/menu-list
/api/blade-develop/datasource/list
/api/blade-log/usual/list
/api/blade-user/export-user
/api/blade-user/user-list
/api/blade-log/error/list
/api/blade-system/tenant/list
例如Sql注入
POC
/api/blade-log/error/list?updatexml(1,concat(0x7e,version(),0x7e),1)=1
又例如信息泄露漏洞:
直接访问接口:api/blade-log/api/list,接口中会泄漏当前账号和加密的密码,以及其他用户的cookie
迂回了一下,替换当前用户的cookie就可以得到管理员用户的登录账号信息(含加密的密码)。
再迂回绕过一下(因为密码是加密的,认证的请求包也是加密的密码,直接替换,重放请求包报文),直接使用管理员加密的密码登录系统:
故渗透中对于特定系统不能单看web的UI、CSS、JS的特征,也要关注数据包报文接口的相关信息,从而对号入座,测试出一些高危漏洞。
原文始发于微信公众号(千寻安服):萌新安服的踩坑之路
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
点赞
http://cn-sec.com/archives/3551678.html
复制链接
复制链接
-
左青龙
- 微信扫一扫
-
-
右白虎
- 微信扫一扫
-
评论