![]() 前言本文总结一下漫长的渗透测试过程,想尽了各种方法,终于找到了突破口。so没有绝对的安全,所谓的安全性其实都是相对的~ 信息踩点在这里其实没办法去做一些有价值的收集,只能踩点,踩坑。 信息难点: 传输加密: 要做渗透的目标是一个APP,根据抓到的请求包发现这个APP是经过某产品加固过的,所以HTTP的POST请求正文部分(Data)是神奇的密文~ 分析难点 分析:
建立设想(A): 在这里请教了师傅,说可能GET请求参数并没有经过加密,而后台很有可能是这样写的:
有价值的东西 其实对APP做渗透测试,大部分情况下还是对网站做渗透测试。 所以在这里抓包获取到的HOST,直接对其进行了前期的常规信息刺探(端口、目录、指纹...) 中间件:Tomcat ![]() 目录开放:/fileUpload/ 端口开放:8001 1444 APP三个功能点:个人用户、资金管理、生活栏目 渗透开端一开始粗略的对整个APP进行抓包,然后做一些简单的测试,发现并没有那种明面上的漏洞(SQL注入、XSS等等...),但是获取了这几条URI:
不小心日偏 仔细的对每个功能点进行测试的时候,抓到了一些"逃出加固命运"的明文报文。
执行了whoami: ![]()
![]() 然而没看清楚,一下次给日错地方了...很尴尬。 关联分析 日偏后我分析了一下两者的特征,发现应该出子同一个程序员之手,并且这个程序员很喜欢使用驼峰命名法... 验证设想(A) 在这里我尝试根据每个URI功能点生成GET请求参数的dict:
生成请求: GET /userCenter/getUser?uId=10001GET /userCenter/getUser?userId=10001GET /userCenter/getUser?uName=test001GET /userCenter/getUser?userName=test001...GET /userCenter/showQRcode?uId=10001GET /userCenter/showQRcode?userId=10001GET /userCenter/showQRcode?uName=test001GET /userCenter/showQRcode?userName=test001GET /userCenter/showQRcode?imagePath=../../index.doGET /userCenter/showQRcode?filePath=../../index.doGET /userCenter/showQRcode?codePath=../../index.doGET /userCenter/showQRcode?fileName=../../index.do... 结论 现实残酷,打败了设想。 绝处逢生 就在想放弃的时候,决定打算"垂死挣扎"一下,重新开始"审视"了各个功能模块,眼光又转到了这个二维码地方。(因为二维码的"皮相",所以很多人都会忽略它) ![]() 这里我去解析了二维码的地址: 失算...失算...,当去访问这个地址的时候,响应报文中会多出这样的头: ...Set-Cookie: USESSIONPID=xxx;...webp content 这时候我就知道是时候修改uId了,然而修改了没用,根据多年的经验(吹牛)我认为是uSign参数起了作用,这时候对uSign进行删除发现不行,会提示uSign参数不存在,当我置空这个参数,发现居然成功了又返回了用户的Cookie凭证...好吧,说明这里有一个逻辑问题... 到这下去就很简单了,获取管理员权限有上传点,测试使用jhtml的后缀可以直接绕过上传,但是上传上去之后,直接访问就给你download下来了(很多次遇到这种问题...) 好吧,管理员也没啥能危害到服务器的东西了...不过回过头再来看看,二维码这个点还没啃完呢,fileName这个参数还没去测试,fuzzdb了解一下,先怼lfi的字典进去跑(有个坑这里一定要填写完整[uId, uSign]),然后再进行Fuzz: ![]() 从intruder模块(BurpSuite)的测试结果发现这里是可以读取文件的,并且判断这个web服务是root权限运行的因为我修改fileName参数的值为../../../etc/shadow时我直接可以获取到文件的内容,从而获取root账号权限的密码: ![]() (解密不了),怎么通过这个本地文件读取漏洞拿到shell?我的思路是通过读取tomcat的密码配置文件然后进入tomcat的Web管理部署war包进行getwebshell,但是这里做了一圈的目录猜解,死活没找到tomcat的应用目录... 读取/root/.bash_history啊(这个文件是记录root用户输入过的命令-老师傅提醒到),突然间我茅塞顿开,是啊,一般运维人员会通过命令行进行管理,那么肯定会有目录出现啊。 我修改fileName参数的值为../../../root/.bash_history,搜索下关键词tomcat就发现了: ![]() 成功的发现了root用户的命令历史并且找到了Tomcat的应用安装路径,那么我只需要修改fileName的参数值为../../../../home/apache-tomcat-7.0.67/conf/tomcat-users.xml,直接就可以读取到Tomcat的管理员账号权限,从而直接通过外部访问的形式进入Tomcat的管理界面进行控制。 ![]() 登录进来之后直接到WAR file to deploy功能点,进行war包的部署(在这里使用压缩的方式将网站后门压缩成zip格式然后修改后缀名.zip为.war即可),点击Browser选择war包然后点击Deploy: 这里部署上去之后回到Applications功能点,可以看到部署的情况,点击你的命名链接然后加上你压缩的文件名(这里我的是 /vulkey/vulkey.jsp)使用Webshell管理工具进行管理,看见了我久违的界面,久违的root权限: ![]() 总结因为后渗透可能会影响正常业务的运行,所以没有继续进行下去,很遗憾,希望下次有机会。 END: 送给大家一句话:心细则挖天下。 *本文作者:key ,转自i春秋。 |
| 本文出处: https://www.toutiao.com/i6569369614281605639/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|