从此刻开始,知识不断涌进你的脑海。
简介
玄机靶场是一个整合应急响应、日志分析、流量分析等一系列靶场进行学习测试的安全网站。
本文主要介绍《第一章 应急响应-webshell查杀》的webshell排查过程以及排查过程中可能涉及到的知识点。
玄机靶场登入后的界面如下:
![图片[1]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/image-1-1024x570.png)
进入到对应《第一章 应急响应-webshell查杀》这一关的入口,也是看见在线靶场是需要付费的,5金币(0.5RMB)半小时,可以理解靶场的付费模式,毕竟在线靶场的资源十分有限,付费模式可有效避免恶意行为占用玄机靶场的资源。
![图片[2]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/image-2-1024x459.png)
根据提示,这一关的靶场中可以提取出4个目标flag,分别是:
- 黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
- 黑客使用的什么工具的shell github地址的md5 flag{md5}
- 黑客隐藏shell的完整路径的md5 flag{md5} 注 : /xxx/xxx/xxx/xxx/xxx.xxx
- 黑客免杀马完整路径 md5 flag{md5}
前置知识
建议通过这篇文章先了解下Webshell相关的知识 >>>
获取第一个flag
flag1:黑客webshell里面的flag flag{xxxxx-xxxx-xxxx-xxxx-xxxx}
已经指明了这个flag就在webshell里面,直接使用find命令定位php后缀文件,然后筛选出存在危险函数的php文件,这里使用find / -name "*.php" | xargs grep "eval("命令,通过管道筛选存在危险函数的php文件。类似的命令示例如下:
//搜索目录下指定后缀文件,查看内容是否有Webshell特征
find / type f -name "*.jsp" | xargs grep "exec("
find / type f -name "*.php" | xargs grep "eval("
find / type f -name "*.asp" | xargs grep "execute("
find / type f -name "*.aspx" | xargs grep "eval("
//对于免杀Webshell,可以查看是否使用编码
find / type f -name "*.php" | xargs grep "base64_decode" ![图片[3]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/flag1-1024x709.png)
最后也是在/var/www/html/include/gz.php中找到了// 027ccd04-5065-48b6-a32d-77c704a5e26d。
所以第一个flag为flag{027ccd04-5065-48b6-a32d-77c704a5e26d}
获取第二个flag
根据提示:黑客使用的什么工具的shell github地址的md5
在gz.php文件内容中,php第二行至第四行代码如下(当然可以从上面的图可以看到):
@session_start(); //启动会话
@set_time_limit(0); //设置脚本执行时间限制为无限制
@error_reporting(0); //关闭错误报告这三个特征足以看出这是一个哥斯拉webshell,其Github地址为https://github.com/BeichenDream/Godzilla
md5(https://github.com/BeichenDream/Godzilla) = 39392DE3218C333F794BEFEF07AC9257
第二个flag为flag{39392DE3218C333F794BEFEF07AC9257}
获取第三个flag
根据提示:黑客隐藏shell的完整路径的md5
在linux系统中隐藏一个文件通常是在文件名最前面加上一个“.”,所以通过find命令查找以“.”开头的php文件。
find / -name ".*.php"![图片[4]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/flag3.png)
最后找到了.Mysqli.php后门文件,其完整地址为/var/www/html/include/Db/.Mysqli.php
md5(/var/www/html/include/Db/.Mysqli.php) = AEBAC0E58CD6C5FAD1695EE4D1AC1919
第三个flag为flag{AEBAC0E58CD6C5FAD1695EE4D1AC1919}
获取第四个flag
根据提示:黑客免杀马完整路径 md5
已经提示是免杀马,那么无法根据静态代码特征来判断是否是webshell。现在有两种办法,一是通过动态行为检测,通过请求和响应数据来判断,但是靶场条件有限这种方面无法实施;第二就是分析web服务器日志,通过日志观察可疑的访问流量,所以第二种方法可行。
![图片[5]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/flag4-1024x61.png)
经过定位,可知web服务器访问日志在/var/log/apache/access.log中,这里直接给出可疑的访问流量记录:
192.168.200.2 - - [02/Aug/2023:08:44:50 +0000] "GET /data/tplcache/top.php HTTP/1.1" 200 202 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:44:59 +0000] "GET /data/tplcache/top.php?1=phpinfo(); HTTP/1.1" 200 203 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:45:01 +0000] "POST /shell.php HTTP/1.1" 200 26533 "-" "Opera/9.80 (X11; Linux i686; U; fr) Presto/2.7.62 Version/11.01"
192.168.200.2 - - [02/Aug/2023:08:45:01 +0000] "POST /shell.php HTTP/1.1" 200 26241 "-" "Opera/9.80 (X11; Linux i686; U; ja) Presto/2.7.62 Version/11.01"
192.168.200.2 - - [02/Aug/2023:08:45:15 +0000] "POST /shell.php HTTP/1.1" 200 26369 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.13+ (KHTML, like Gecko) Version/5.1.7 Safari/534.57.2"
192.168.200.2 - - [02/Aug/2023:08:46:22 +0000] "GET /data/tplcache/top.php?1=phpinfo(); HTTP/1.1" 200 205 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:46:22 +0000] "POST /shell.php HTTP/1.1" 200 26297 "-" "Mozilla/4.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/5.0)"
192.168.200.2 - - [02/Aug/2023:08:46:22 +0000] "GET /favicon.ico HTTP/1.1" 200 1193 "http://192.168.200.47/data/tplcache/top.php?1=phpinfo();" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:46:28 +0000] "POST /shell.php HTTP/1.1" 200 26433 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:24.0) Gecko/20100101 Firefox/24.0"
192.168.200.2 - - [02/Aug/2023:08:47:03 +0000] "POST /shell.php HTTP/1.1" 200 26097 "-" "Opera/9.80 (Windows NT 6.1; U; es-ES) Presto/2.9.181 Version/12.00"
192.168.200.2 - - [02/Aug/2023:08:47:13 +0000] "GET /wap/index.php?1=phpinfo(); HTTP/1.1" 200 1038 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:47:15 +0000] "GET /wap/index.php?1=phpinfo(); HTTP/1.1" 200 1037 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:47:16 +0000] "GET /wap/index.php?1=phpinfo(); HTTP/1.1" 200 1037 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:47:37 +0000] "POST /shell.php HTTP/1.1" 200 27953 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.1 Safari/537.36"
192.168.200.2 - - [02/Aug/2023:08:47:39 +0000] "GET /wap/index.php?1=phpinfo(); HTTP/1.1" 200 1038 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"Safari/533.20.27"
192.168.200.2 - - [02/Aug/2023:08:48:18 +0000] "POST /shell.php HTTP/1.1" 200 26221 "-" "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.2117.157 Safari/537.36"
192.168.200.2 - - [02/Aug/2023:08:48:22 +0000] "GET /wap/top.php?1=phpinfo(); HTTP/1.1" 200 203 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:48:25 +0000] "GET /wap/top.php?1=phpinfo(); HTTP/1.1" 200 202 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:48:26 +0000] "POST /shell.php HTTP/1.1" 200 26080 "-" "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2225.0 Safari/537.36"
192.168.200.2 - - [02/Aug/2023:08:48:26 +0000] "POST /shell.php HTTP/1.1" 200 26145 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:23.0) Gecko/20131011 Firefox/23.0"
192.168.200.2 - - [02/Aug/2023:08:48:32 +0000] "POST /shell.php HTTP/1.1" 200 26099 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; zh-cn) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27"
192.168.200.2 - - [02/Aug/2023:08:48:32 +0000] "POST /shell.php HTTP/1.1" 200 26303 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET CLR 1.1.4322; .NET4.0C; Tablet PC 2.0)"
192.168.200.2 - - [02/Aug/2023:08:55:49 +0000] "POST /shell.php HTTP/1.1" 200 26120 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0"
192.168.200.2 - - [02/Aug/2023:08:56:10 +0000] "GET /wap/top.php?fuc=ERsDHgEUC1hI&func2=ser HTTP/1.1" 500 185 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"
192.168.200.2 - - [02/Aug/2023:08:56:24 +0000] "GET /wap/top.php?fuc=ERsDHgEUC1hI&func2=sert HTTP/1.1" 200 203 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/115.0"经过对比查看,最终确认top.php是webshell文件,其完整路径为/var/www/html/wap/top.php
![图片[6]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/flag4-1.png)
所以md5(/var/www/html/wap/top.php) = EEFF2EABFD9B7A6D26FC1A53D3F7D1DE
最后一个flag为flag{EEFF2EABFD9B7A6D26FC1A53D3F7D1DE}
至此,靶场中的四个flag均已找到,直接通关。
![图片[7]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/2948A56C.jpg)
工具定位webshell
上面是通过人工来定位webshell,比较耗费时间,如果想要快速找到webshell,使用工具效果更好,这里使用河马webshell查杀工具,如下图:
![图片[8]-Webshell查杀-玄机靶场-应急响应系列-第一章-木兮知识库](https://www.mzsec.cn/wp-content/uploads/2025/01/image-3-1024x434.png)
河马webshell查杀工具可以辅助人工快速找出部分webshell,但经过免杀处理的webshell没有找到,可能多提交几次,经过机器学习,后面就能查杀到免杀的webshell了。
特别声明:本文所涉及的任何技术、信息或工具,仅供学习和参考之用。请勿利用本文提供的信息从事任何违法活动或不当行为。任何因使用本文所提供的信息或工具而导致的损失、后果或不良影响,均由使用者个人承担责任,与本文作者无关。作者不对任何因使用本文信息或工具而产生的损失或后果承担任何责任。使用本文所提供的信息或工具即视为同意本免责声明,并承诺遵守相关法律法规和道德规范。相关资源仅供学习和研究使用,请在下载后24小时内删除。


















暂无评论内容