| 关键词: 分析 词法 token 字符串 作者 语法 EVAL function scanner getPieceTokenAll |
今天看到几位大牛微薄转发了一个webshell扫描工具,用了语法分析、词法分析的方法,虽然不知道语法分析、词法分析是什么,但是感觉很高级的样子,果断下载一个回来试用一下。结果相当让人失望,希望作者后续继续改进。链接如下:http://www.cnxct.com/pecker-scanner/一、漏报简单把system函数做了个字符串拼接,如下:$func = “s”.”ystem”;$func($_GET['cmd']);用Pecker Scanner扫了下毫无反应二、误报用discuz试一下吧,囧,提示扫描超时错误(Fatal error: Maximum execution time of 30 seconds exceeded)。放一个文件夹吧,误报也不少:三、简要分析不懂词法分析、语法分析,大致瞄一眼扫描的核心:Scanner.php的checkTokens函数,private function checkTokens(array $tokens){省略switch ($token[0]){case T_EVAL:$this->report->catchLog($token[1],$token[2],$this->parser->getPieceTokenAll($k));break;case T_FUNCTION:if (isset($this->function[$token[1]])){ $this->report->catchLog($token[1],$token[2],$this->parser->getPieceTokenAll($k));}T_EVAL后直接记录到log了,难道是只要有eval字符串就log,试下eval(abc),果然如此,这。。。;不过作者还是做了一些判断的,像“eval”字符串这些不会记录的,不过看到这里基本上可以断定这个东西的实用价值基本很小了。四、总结作者开源的精神还是值得肯定,期待作者的后续发力。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|