SRC挖掘案例

服务器文件读取

漏洞功能点在首页的Logo展示处,只有首次打开此APP时,才会远程下载此图片。加载图片的GET请求包如下:

GET /ixxx/LogonImage.do?ImageDir=/img/2024/4/25&SaveImageName=microfan.jpg HTTP/1.1
Host xxxx.com

第一个尝试:空文件名测试当空文件名时,是否会列出目录结构。

第二个尝试:路径的目录穿越,payload如下

GET /ixxx/LogonImage.do?ImageDir=/img/2024/4/25/../../../../../etc/&SaveImageName=passwd HTTP/1.1
Host xxxx.com

测试结果是:被waf拦截。

提一嘴,这种情况下一般我就放弃了(汗流浃背)。

测试发现waf拦截特征:../

柳暗花明又一村

GET /ixxx/LogonImage.do?ImageDir=/&SaveImageName=.bash_history HTTP/1.1
Host xxxx.com

读取根目录下的.bash_history;通过读取这个文件,读取到了一些敏感的文件。

ChatGPT:

.bash_history是一个用于存储用户在Bash shell中执行的命令历史记录的文件。每当用户在Bash shell中输入并执行一个命令时,该命令都会被添加到.bash_history文件中。这样,用户就可以方便地查看和重复之前执行过的命令,提高工作效率。

.bash_history文件通常位于用户的home目录下。在大多数情况下,它的完整路径是/home/用户名/.bash_history,其中“用户名”是你的用户账户的名称。你可以使用ls命令来查看该文件是否存在,或者使用cat、less等命令来查看其内容。

敏感文件的文件名结构:/Nxxxxx/xxFile/xx_20240425_51xxx.txt

看文件名结构可知:文件名是由时间戳+ID顺序编号组成的,我们可以轻松遍历全部敏感信息🤭。

总结

通过读取Linux系统的bash_history文件,通过管理员的输入命令记录获取目录结构,从而进一步读取其他敏感文件扩大危害。

信息泄露+Getshell

信息泄露

使用bp对注册页面register.do功能页面,爆破.do的功能路径;爆破出一个http://xxx/user.do路径泄露全部的用户信息,包括姓名、手机号、密码哈希、用户上传文件等信息。

上传

上传文件功能的数据包URL如下:

POST /fileUpload.do?maxsize=1024&path=test&uploader&filetype=.doc,.txt,.docx,.jpg,.png HTTP/1.1
HOST: xxx.xxx.xx.xx

这个非常熟悉,实习时候也碰到过一样的情况,只需要将filetype添加一个jsp 或 jspx 就可以。