Pikachu 靶场通关笔记中,有哪些技巧和经验可以分享?

摘要:> 📌 本文记录 Pikachu 靶场各类 Web 漏洞的实战练习过程,涵盖 XSS、CSRF、SQL注入、文件操作、越权、序列化、XXE、SSRF 等常见漏洞类型。
🐾 Pikachu 靶场通关笔记 📌 本文记录 Pikachu 靶场各类 Web 漏洞的实战练习过程,涵盖 XSS、CSRF、SQL注入、文件操作、越权、序列化、XXE、SSRF 等常见漏洞类型。 📚 目录 一、XSS 跨站脚本攻击 1.1 反射型 XSS(DOM型) 1.2 DOM型 XSS-x 1.3 XSS 盲打 1.4 XSS 之过滤绕过 1.5 XSS 之 htmlspecialchars 1.6 XSS 之 href 输出 1.7 XSS 之 JS 输出 二、CSRF 跨站请求伪造 2.1 CSRF(GET) 2.2 CSRF(POST) 2.3 CSRF Token 三、SQL 注入 3.1 数字型注入 3.2 字符型注入 3.3 搜索型注入 3.4 X 型注入 3.5 INSERT / UPDATE 注入 3.6 DELETE 注入 3.7 HTTP 头注入 3.8 基于 Boolean 的盲注 3.9 基于时间的盲注 3.10 宽字节注入(Wide Byte) 四、RCE 远程代码执行 4.1 exec "ping" 4.2 exec "eval" 五、文件操作漏洞 5.1 本地文件包含(LFI) 5.2 远程文件包含(RFI) 5.3 不安全的文件下载 5.4 文件上传 — 客户端校验绕过 5.5 文件上传 — 服务端校验绕过 六、越权漏洞 6.1 水平越权 6.2 垂直越权 七、目录遍历 八、敏感信息泄露 九、PHP 反序列化漏洞 十、XXE 漏洞 十一、不安全的 URL 跳转 十二、SSRF 服务端请求伪造 12.1 SSRF(curl) 12.2 SSRF(file_get_contents) 一、XSS 跨站脚本攻击 🔥 XSS(Cross-Site Scripting)是指攻击者将恶意脚本注入到网页中,使其他用户在浏览时执行该脚本,从而窃取 Cookie、劫持会话等。 1.1 反射型 XSS(DOM型) 🔍 思路: 随便输入内容并查看页面源代码,定位到按钮触发的 JS 函数。 找到按钮所绑定的函数后: 发现参数被拼接到 <a> 标签中,可以利用单引号闭合属性来注入事件。 ⚠️ 注意:一定要使用英文单引号,中文单引号无效! 💣 Payload: ' onclick=eval("alert('xss');">xss</a> 只需构造闭合,再点击 "xss" 链接: 成功触发弹窗 🎉 1.2 DOM型 XSS-x 🔍 思路: 与上一题类似,Payload 相同,但本题还支持通过 URL 参数提交(需手动点击一下触发)。 💣 Payload(URL 提交): ?text=%27%20onclick=eval("alert(%27xss%27);">xss</a># 1.3 XSS 盲打 📖 概念: 盲打就是注入后在当前页面看不到效果,但 Payload 会在后台管理员查看时触发。 🔍 步骤: 在前台随意输入内容提交(包含 XSS Payload) 登录后台查看留言 后台页面触发弹窗 💥 查看源代码,可以看到之前写入的 XSS 代码已被执行 1.4 XSS 之过滤绕过 📖 概念: 服务端对脚本标签进行了简单的关键字过滤,但过滤规则不完整,可通过大小写混用绕过。 💣 Payload(大小写混用绕过): <sCript>alert(1)</sCript> 成功执行 ✅ 1.5 XSS 之 htmlspecialchars 📖 概念: htmlspecialchars 是 PHP 中常见的 XSS 防御函数,可将特殊字符转义为 HTML 实体。但它存在以下几种绕过场景: 场景 说明 ① 用在 href 属性里 javascript:alert(1) 不含特殊字符,不会被转义 ② 未加 ENT_QUOTES 参数 单引号不会被转义,可用于闭合属性 ③ 输出在 JS 代码块中 保护不完整,可通过字符串闭合绕过 🔍 步骤: 输入代码没有反应,查看源代码发现输入被放入了 <a> 标签的属性中。 发现是 <a> 标签中的单引号闭合问题,构造绕过: 💣 Payload: ' onclick=alert(1111) ' 成功触发 🎉 1.6 XSS 之 href 输出 🔍 思路: 查看源代码发现尖括号已被编码转义,无法直接插入标签。
阅读全文