Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux安全 > » 正文

在magic_quotes_gpc=off下绕过addslashes和preg_replace两种函数(2)

来源: 未知 分享至:


    我们看到上面的“SELECT goods_id FROM . $ecs->table(goods_attr) . WHERE attr_id=\'$key\' AND attr_value=\'$value\'”只有一个列,如果我们要用联合查询就需要用到CONCAT函数帮我们连接字符串。其中0x3a是“:”的十六进制形式。这个语句让前面attr_id为空,那么前面的WHERE子句就会为FALSE,从而进入我们的联合查询。

preg_replace函数
    如果用这个函数过滤数据,应该会用来处理XSS。由于我还没找到关于这个函数的实例,下面的代码(用于处理注入)是在理论的状态下(已收录在光盘中):

$test=0;
extract($_GET);
echo $test=preg_replace(/^(.*)(\')/, 1\', $test);
?>

    这个属于正则表达式过滤,我们提交“1\' and 1=1#,返回如图51所示。这个正则对单引号反义处理了。那么想绕过这种函数只有一个原则:让它匹配不了。
    “.*”可以匹配任意数量的字符,但它并不匹配回车符。我们将回车符进行URL编码得到%0D%0A,并提交%0D%0A1\' and 1=1#,那么正则表达式匹配不了,函数就会自然地返回原值,如图52所示。


 


 
\"\"
 

图51



 


 
\"\"
 

图52


最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
推荐内容
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史