PHP CTF小记

一、有preg_match检测eval恶意代码

例如

if(preg_match('/\(.*\)/', $_GET['a']))
  die('hacker')

eval($_GET['a'])

我们可以看到这段代码在使用eval执行代码之前,使用正则 /(.*)/ 来检测将要执行的代码中是否有括号(不允许我们直接执行像是 phpinfo(); 这样的代码)

我们可以通过在payload中加入 %0a 来阻止正则识别出 ()

%0a相当于一个换行符,详情可以看这篇文章:preg_match带来的安全问题[%0a可以做什么]

0 条评论

昵称

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

与博主谈论人生经验?