一、远程命令执行漏洞原理以及靶场漏洞复现
1、远程执行命令的原理
RCE英⽂全称:Remote Command/Code Execute。
RCE漏洞产生的根本原因在于应用程序对用户输入缺乏充分的验证和过滤。
当应用需要调用系统命令时,若把用户输入的数据未经充分过滤就拼接到命令行里,攻击者就能把恶意指令一起发过去,服务器会把这串组合命令原样执行,从而让攻击者直接操控系统。
简单来说,就是"用户输入"变成了"系统命令"的一部分。
比如,调用 ping、dir 等系统命令的场景,一旦参数过滤不严,攻击者就能通过拼接命令(如 127.0.0.1;ls)让服务器执行非授权操作,最终完全掌控服务器。
2、漏洞复现
使用DVWA靶场复现该漏洞。
常见的命令:
css
A && B: 先执⾏A,如果成功,执⾏B
A || B: 先执⾏A,如果失败,执⾏B
A | B: 管道符,先执⾏A后,将A的结果作为B的输⼊,打印的是B的结果
A & B: 先执⾏A,然后不管成功与否,执⾏B
启动靶场并将安全等级设置为Low
使用下面命令获取当前用户:
bash
127.0.0.1;id
127.0.0.1&id
将靶场设置为 Medium
通过分析源码得知,只过滤了 && 和 ; 所以可以使用其他命令:
bash
127.0.0.1 | id
127 || id
将靶场设置为 High

分析源码得知,过滤了;、&、| 、-、$、(、)、` 、||。可以使用其他格式
bash
127.0.0.1|id

二、文件包含漏洞原理以及日志包含漏洞复现
1、文件包含漏洞的原理
文件包含漏洞的原理可以概括为以下三点:
- 动态包含:PHP 等语言提供了 include() 、 require() 等函数,用于在运行时动态引入并执行其他文件的代码。
- 输入可控:当这些函数的参数(即要包含的文件名)直接来自用户输入(如 GET、POST 参数),而程序又未对输入进行严格过滤或白名单校验时,攻击者就能控制参数值。
- 恶意解析:攻击者通过构造特殊参数,使服务器包含并执行非预期的文件,例如本地敏感文件(如 /etc/passwd )、远程恶意脚本,或利用伪协议(如 php://input )直接注入代码,最终导致敏感信息泄露、远程代码执行或服务器被完全控制。
2、日志包含漏洞复现
通过DVWA复现并观察现象。
DVWA靶场日志默认路径为:/var/log/apache2/access.log。
原理:通过在日志文件中注入恶意代码,再利用文件包含功能将日志文件作为代码执行,从而实现远程命令执行或敏感信息泄露。
第一步:查看当前用户信息,发现没有权限。
靶场默认日志目录是没有读写权限的,所以需要先对⽇志⽂件和⽬录添加权限,执行下面命令:
bash
chmod -R 755 /var/log/apache2
启动靶场
首先正常访问:

使用Burp抓取该数据包:

将该数据发送至Repeater模块,并修改目录:

使用蚁剑测试:
因为DVWA靶场是需要先登录才能使用,所以这里需要配置cookie,将Burp抓包得到的cookie配置到蚁剑的请求信息里面:

添加完成测试连接,发现可以成功访问:

三、SSRF漏洞原理以及靶场ssrf漏洞复现读取文件效果
1、ssrf漏洞原理
SSRF(Server-Side Request Forgery)是"服务器端请求伪造",指攻击者让服务器替自己向内网或本地发起请求,从而突破传统防火墙限制,直接探测或攻击本不可达的目标。当 Web 应用提供了"根据用户输入 URL 获取资源"的功能(如分享、翻译、图片加载、收藏等),但未对目标地址做严格过滤与限制,攻击者便可以构造恶意 URL,利用服务器身份发起请求。
2、使用Pikachu漏洞复现
启动靶场,并选择ssrf:
使用file协议读取文件:

四、xxe漏洞原理,利用dnslog验证xxe漏洞是否存在
1、XXE漏洞原理
XXE(XML External Entity Injection,XML外部实体注入)漏洞是一种针对XML解析器的安全威胁。其核心在于攻击者通过构造恶意的XML文档,利用XML解析器处理外部实体时的缺陷,来读取敏感文件、进行内网探测、发起拒绝服务攻击,甚至在特定情况下执行远程代码。
2、使用dnslog验证xxe漏洞是否存在
使用Burp内置的dnslog验证,打开Burp的dnslog模块:
复制连接:

在浏览器输入复制的连接,或者ping 连接地址:

在Burp查看是否有返回:
或者使用ping:
返回Burp发现有返回的数据,说存在XEE漏洞。
五、Tomcat弱口令漏洞复现
使用vulfocus在线靶场复现tomcat弱口令漏洞,登录靶场搜索找到tomcat弱口令漏洞靶场:

使用蚁剑生成webshell:Tomcat是java开发的所以类型要选择JSP。
将生成的shell保存为shell.jsp文件:
生成war文件,在python2环境下执行下面命令:
jar -cvf shell.war shell.jsp

执行完成后会生成war文件:
Tomcat默认后台路径是/manager/html,访问该目录,将shell.jsp上传:
上传完成后,点击连接。注意:要访问shell.jfp的目录:
使用蚁剑等工具测试: