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

  • A+
所属分类:鬼仔Blog
摘要

by:剑心[B.C.T]事情起源于preg_match("/^[0-9]?$/i",'',"$a")这个漏洞,由ste大牛发出来的,是说$在不带/d的情况下会表示在一个字符串结束或者结束附近,譬如php?a=123%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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: