欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

深入探索 | 详解一次层层剖析的渗透测试经历

最编程 2024-07-27 16:13:01
...

网站的JS文件中通常会泄漏一些接口、URL、子域等信息,更有甚者会泄漏一些敏感信息,如OSS的AKSK等,我们利用泄漏的接口配合未授权访问,可以获取到更多的敏感信息,为后续渗透工作带来便利。本文以一次项目实战为基础展开。

1、敏感信息泄漏

系统登录框没有验证码,抓下包看看能不能跑个弱口令

图片
图片

加密加登录失败次数限制,直接放弃

图片
图片

跑下目录也没有收获

图片
图片

但是在JS文件中发现了好东西

图片
图片

利用JS美化工具,发现多个接口目录

图片
图片

可以简单利用正则编写一个脚本,把接口提取出来

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中跑一下,发现大部分会报错,缺少参数,但是从报错信息中我们可以获取到接口使用的库

图片
图片

搜索一下PageInfo的参数发现为pageNum、pageSize

    PageHelper.startPage(pageNum, pageSize);
    List<Map<String , Object>> listData = securityCheckDao.selectAllQuestionType(requestJson);

加入参数再遍历一下,发现大量敏感信息,这里一定要注意加上 根目录 这个网站的根目录是statistics

图片
图片
图片
图片

但是另一接口存在大量XSL文件,但是找不到正确路径

图片
图片
图片
图片

正当要放弃的时候,在另外一个包中发现了如下接口

图片
图片

可以读取dpf文件

图片
图片

但无法读取xls文件

图片
图片

再跑下常用接口试下,发现了download

图片
图片

利用download接口可以直接将xls文件下载到本地,在xls文件中发现大量敏感信息

图片
图片

2、逻辑漏洞找回密码

在接口中发现找回密码功能(前台并无该功能,猜测是删除了前台入口),但是直接发包报错,缺少参数

图片
图片

直接猜解登录参数,loginName成功发包,发现密码直接在返回包中(咱也不知道研发是怎么写代码的)

图片
图片

直接以admin身份登录系统后台

图片
图片

找到一个上传接口,可以上传jsp文件,但是只返回文件名,最终也没有成功找到路径

图片
图片

3、任意文件读取

突然想到上面的文件读取接口会不会存在任意文件读取,尝试后成功读取web.xml文件,我们可以看到存在log4j

图片
图片

4、log4j 反弹shell

执行命令,Java版本号打印在dnslog上

图片
图片

直接反弹Shell,利用方式这里就不再赘述了

图片
图片

总结

大致思路如下,主要的难点还是在于找到接口相应的参数,配合API未授权获得大量敏感信息,对信息进行进一步利用,思路要放开。

图片
图片

fuzz接口也可以使用Packer Fuzzer工具也挺好用的,它是一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具

https://github.com/rtcatc/Packer-Fuzze


原文链接:https://forum.butian.net/share/2422