preg_match带来的安全问题[%0a可以做什么]

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

相关日志

发表评论