by:剑心[B.C.T]
事情起源于preg_match("/^[0-9]?$/i",'',"$a")这个漏洞,由ste大牛发出来的,是说$在不带/d的情况下会表示在一个字符串结束或者结束附近,譬如php?a=123%0a就可
以通过这个正则表达式但是带入一个%0a,那么很好,漏洞就回到一个%0a能做什么上来了!
黑锅已经总结了一个,在文件扩展后缀里
1.php.jpg不能执行但是
1.php.jpg%0a就可以了(linux环境下)
另外如果在写文件的时候%0a就是一个新行了,对于数据库为文本的就是一个新记录
还有呢?数据库在对待1和1%a的时候是不一样的,1%a被更新到一个int类型的字段可能会导致溢出
在一些协议如http和ftp里%0a可以是一个新的命令的开始
。。。。。。
其他的就看具体的程序了
http://blog.php-security.org/archives/76-Holes-in-most-preg_match-filters.html
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论