题目要求:

要求获取四个flag
webshell查杀:
常见的webshell:
PHP: eval(), system(), exec(), shell_exec(), passthru(), assert(), base64_decode()
ASP: Execute(), Eval(), CreateObject()
JSP: Runtime.getRuntime().exec()
webshell常见位置
python
.asp / .php / .jsp / .aspx
命令行搜索
find命令:
python
find [路径] [选项] [表达式]
- 路径:指定查找的起始目录。如果不指定,默认从当前目录开始。
- 选项 :控制
find
的行为。 - 表达式:定义查找的条件。
常见选项:
-name
:按文件名查找(区分大小写)。-iname
:按文件名查找(不区分大小写)。-type
:按文件类型查找。f
:普通文件。d
:目录。l
:符号链接。
xargs
:xargs
命令用于将输入数据重新格式化后作为参数传递给其他命令
python
find / -name "*.php" | xargs grep "eval("
xargs:xargs命令用于将输入数据重新格式化后作为参数传递给其他命令。在这个命令中,xargs将find命令
找到的文件列表作为参数传递给grep命令。
grep "eval(":grep命令用于搜索文本,并输出匹配的行。这里"eval("是grep命令的搜索模式,用于查找
包含eval(字符串的行。

使用find命令查到了三个可疑文件。
第一个使用cat抓取文本。得到flag1。

通过查看webshell内容可以发现明显为godzilla特征,将哥斯拉github地址通过md5加密获得flag2

@session_start();
@set_time_limit(0);
@error_reporting(0);
$key='3c6e0b8a9c15224a';
哥斯拉常见密钥
黑客隐藏shell的完整路径
使用ls -l查找那三个可疑文件,发现只有Mysql.php是隐藏的,完整路径+md5得到flag3
寻找免杀马
免杀马说明没有特征,所以需要看看有没有什么加密,使用find查找是否有base64加密。
python
find / -name "*.php" | xargs grep "base64_decode"
这个是猜测,最好用日志查看。
linux的网站日志存放在/var/log,目录里面有apache2的,打开查看,浏览之后发现可疑的phpinfo,而且还200。是在一个top.php文件中。

找到文件用cat获取,发现就是恶意文件,完整路径加md5,得到flag4。
