问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
记一次抽丝剥茧式的渗透测试
渗透测试
网站的JS文件中通常会泄漏一些接口、URL、子域等信息,更有甚者会泄漏一些敏感信息,如OSS的AKSK等,我们利用泄漏的接口配合未授权访问,可以获取到更多的敏感信息,为后续渗透工作带来便利。本文以一次项目实战为基础展开。
1、敏感信息泄漏 ======== 系统登录框没有验证码,抓下包看看能不能跑个弱口令 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669172331738-baa926de-7c32-40bc-b0c4-f7e92060d040.png) 加密加登录失败次数限制,直接放弃 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669081624275-5c21e92f-5d64-4d47-b870-6053d3f1c506.png) 跑下目录也没有收获 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1668996572133-92e2bab9-453a-4b4d-96d5-cbaca986af07.png) 但是在JS文件中发现了好东西 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1668996671756-389f6af5-3478-4e43-a0da-e0a4d86dc0f8.png) 利用JS美化工具,发现多个接口目录 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669106308351-a4a66acd-cbaa-4ac9-abeb-d72379aefd32.png) 可以简单利用正则编写一个脚本,把接口提取出来 ```php import re def main(): with open('logpath.txt', 'r') as f: read = f.read() allList = set() list1 = re.findall(r'"(/[^\"]+)*"', read) print(list1) for x in list1: allList.add(x) outFile = open("output-path.txt", "w") allList = list(allList) allList.sort() for x in allList: outFile.write(x+"\n") if __name__ == '__main__': main() ``` 直接丢进burp中跑一下,发现大部分会报错,缺少参数,但是从报错信息中我们可以获取到接口使用的库 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669009388621-ce252dd8-7313-40ed-bcd0-67fa19d8f960.png) 搜索一下PageInfo的参数发现为pageNum、pageSize ```php PageHelper.startPage(pageNum, pageSize); List<Map<String , Object>> listData = securityCheckDao.selectAllQuestionType(requestJson); ``` 加入参数再遍历一下,发现大量敏感信息,这里一定要注意加上 根目录 这个网站的根目录是statistics ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669009461551-569ebeaf-42ad-4db6-b338-2c585eaaf136.png) ![](https://cdn.nlark.com/yuque/0/2023/png/2856486/1682047147954-889a0180-db95-48c5-a18c-57744a517657.png) 但是另一接口存在大量XSL文件,但是找不到正确路径 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669106453581-b54a503f-99ea-49a3-b977-397d5a30a772.png) ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669106508184-c17eea79-797d-4650-aa46-f2fd536bfcf0.png)正当要放弃的时候,在另外一个包中发现了如下接口 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669106752915-cbc4ccd3-d588-4d3e-b161-cbf043f9543b.png) 可以读取dpf文件 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669106733332-6057bf2b-da71-495f-80d9-4fa19c415ba0.png) 但无法读取xls文件 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669106787482-919ea395-7279-4ab4-82d3-e26331cd84ca.png) 再跑下常用接口试下,发现了download ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669102522416-f2493cd6-f617-4d8e-9979-88909a058db4.png) 利用download接口可以直接将xls文件下载到本地,在xls文件中发现大量敏感信息 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669106877771-3ce712ba-2bd3-4a32-84aa-e48132638bb4.png) 2、逻辑漏洞找回密码 ========== 在接口中发现找回密码功能(前台并无该功能,猜测是删除了前台入口),但是直接发包报错,缺少参数 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669108264093-1b53d7b2-4e6f-45b4-be8d-48e4e5f8a2c8.png) 直接猜解登录参数,loginName成功发包,发现密码直接在返回包中(咱也不知道研发是怎么写代码的) ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669108395124-368182c9-7707-461e-85ce-ea296b2a07fe.png) 直接以admin身份登录系统后台 ![](https://cdn.nlark.com/yuque/0/2023/png/2856486/1682046965903-218713c2-3553-4959-9c2b-28183fabc8a0.png) 找到一个上传接口,可以上传jsp文件,但是只返回文件名,最终也没有成功找到路径 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669032565993-c43e0156-32e4-450f-a9f3-e08ff0e9e590.png) 3、任意文件读取 ======== 突然想到上面的文件读取接口会不会存在任意文件读取,尝试后成功读取web.xml文件,我们可以看到存在log4j ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1668999899983-cf4b357e-3d3d-4da0-8aeb-859799253362.png) ========================================================================================================== 4、log4j 反弹shell =============== 执行命令,Java版本号打印在dnslog上 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669031289907-4ad097c4-1015-411e-b4ee-1021f2e15ac0.png) 直接反弹Shell,利用方式这里就不再赘述了 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669031686379-44788f32-b686-44bd-8597-6b588c7e0936.png) 总结 == 大致思路如下,主要的难点还是在于找到接口相应的参数,配合API未授权获得大量敏感信息,对信息进行进一步利用,思路要放开。 ![](https://cdn.nlark.com/yuque/0/2022/png/2856486/1669172186146-29fa51e0-ae3a-48a9-9fd7-11b07ab7f443.png) fuzz接口也可以使用Packer Fuzzer工具也挺好用的,它是一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具 <https://github.com/rtcatc/Packer-Fuzzer>
发表于 2023-09-08 09:00:00
阅读 ( 7671 )
分类:
渗透测试
5 推荐
收藏
1 条评论
Jim2g
2023-09-09 10:21
大佬能说下log4j 发现的思路吗
请先
登录
后评论
请先
登录
后评论
苏苏的五彩棒
25 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!