news 2026/4/22 19:01:08

pikaqiu靶场实战笔记(1):从暴力破解到文件上传的渗透路径

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
pikaqiu靶场实战笔记(1):从暴力破解到文件上传的渗透路径

1. 暴力破解实战:从入门到绕过

暴力破解是渗透测试中最基础的攻击手段之一,但往往被初学者低估其技术含量。我在pikaqiu靶场实战中发现,现代Web应用通常会采用多种防护措施,这就需要我们掌握不同的绕过技巧。

1.1 基础表单爆破四步法

最简单的表单爆破就像用钥匙串开锁。首先用Burp Suite拦截登录请求(建议使用Firefox浏览器,它的开发者工具对新手更友好)。我习惯在用户名和密码栏输入"test"这类测试字符,这样在Burp的Proxy模块能快速定位到登录请求。把捕获的POST请求发送到Intruder模块后,需要特别注意两个细节:

  1. 在Positions标签页清除默认变量,只保留username和password两个爆破点
  2. 在Payloads标签页加载字典时,推荐使用SecLists字典库中的rockyou.txt精简版,这个字典包含常见弱口令且体积适中

爆破过程中有个实用技巧:在Options标签页设置"Grep - Extract"可以自动标记成功响应。我遇到过一个案例,成功登录的响应包长度与其他请求仅相差3个字节,肉眼很难察觉,但这个功能帮我准确识别出了正确凭证。

1.2 验证码绕过的两种姿势

靶场中验证码绕过分为服务端(on server)和客户端(on client)两种类型,我最初练习时经常混淆。服务端验证码漏洞的特点是:虽然页面显示新验证码,但服务器实际只检查第一次提交的验证码。通过Burp Repeater重放请求5-6次就能确认是否存在此漏洞。而客户端验证码则是完全依赖前端JS验证,用Burp拦截请求后直接删除captcha参数就能绕过。

有个易错点:某些系统会在服务端session中存储验证码,但不会自动清除。这时可以先获取有效验证码,然后在Intruder中固定这个验证码值进行爆破。我在某次实战中,用这个方法配合密码喷洒(Password Spraying)技术,成功突破了企业OA系统。

1.3 Token防护的破解之道

遇到token防爆破机制时,新手常会束手无策。pikaqiu靶场的token案例非常典型,需要用到Burp的宏(Macro)功能。具体操作分五步:

  1. 在Project options→Sessions标签页添加新会话处理规则
  2. 选择"从宏派生"并创建新宏,录制获取token的请求流程
  3. 设置token参数提取规则(建议用正则表达式匹配)
  4. 在Intruder的Resource Pool中将线程数设为1(避免并发导致token混乱)
  5. 启用"Update token in real time"选项

这里有个坑:某些系统会检查token来源IP,需要配合X-Forwarded-For头使用。我写过一个Python脚本自动维护token池,将爆破速度从原来的2次/秒提升到15次/秒。

2. XSS攻击的九种变形记

跨站脚本攻击看似简单,但在实际渗透中需要根据防护措施灵活变通。我在pikaqiu靶场中遇到的XSS变种,基本涵盖了Web安全竞赛中的常见题型。

2.1 反射型XSS的突破技巧

遇到前端长度限制时,Chrome开发者工具的Override功能比直接修改HTML更方便。具体操作:在Sources面板创建本地覆盖,找到校验函数直接注释掉。对于更复杂的DOM型XSS,我总结出一个调试公式:

  1. 在Console执行monitorEvents(window)监听事件
  2. 使用debugger语句在可疑函数处断点
  3. 观察document.writeinnerHTML的调用栈

最近遇到个有趣案例:某CMS使用AngularJS的$sanitize过滤输入,但忘记转义ng-init属性。最终通过构造<div ng-init="alert(1)">成功执行代码。

2.2 存储型XSS的持久化攻击

留言板类型的存储型XSS要注意闭合原有HTML标签。我常用的测试向量是:

</textarea><script>alert(1)</script>

这个payload能有效绕过大多数富文本编辑器过滤。对于更严格的过滤,可以尝试Unicode编码:

\u003cscript\u003ealert(1)\u003c/script\u003e

在真实渗透测试中,存储型XSS要配合CORS和CSRF综合利用。我曾通过一个商品评论XSS,最终获取到管理员Cookie接管整个电商平台后台。

2.3 高级过滤绕过实战

当遇到htmlspecialchars过滤时,重点要测试哪些上下文没有被转义。pikaqiu靶场中的href属性就是个典型案例。除了常规的javascript:协议,还可以尝试:

<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">点击</a>

对于JS输出点的利用,需要仔细分析源码上下文。有个快速判断方法:在Chrome调试器中设置"Pause on caught exceptions",然后尝试各种闭合方式观察报错信息。

3. SQL注入的十八般武艺

SQL注入是Web安全的经典课题,但不同数据库、不同注入点需要采用不同技术。我在pikaqiu靶场中实践了从基础到高级的各种注入技巧。

3.1 联合查询注入的精准判断

数字型注入最容易识别,但字符型注入需要耐心测试闭合符号。我的测试顺序通常是:

  1. 输入单引号'观察报错
  2. 尝试'")'))等组合
  3. --+#/*测试注释符号

有个实用技巧:当order by不确定字段数时,可以二分法快速定位。比如先试order by 10,如果报错再试order by 5,逐步缩小范围。

3.2 报错注入的另类用法

在pikaqiu靶场的insert注入场景中,updatexml报错注入是最佳选择。但要注意MySQL 5.7+版本对报错信息长度有限制。我改进后的payload:

1' and updatexml(1,concat(0x7e,substring(hex(user()),1,20),0x7e),1) and '1'='1

对于Delete语句注入,要注意URL编码问题。Burp的Decoder模块可以快速转换:

原语句:delete from comments where id=1 注入点:1+and+updatexml(1,concat(0x7e,database(),0x7e),1)

3.3 盲注的时间优化技巧

布尔盲注虽然可靠但效率低下。我通常先用ascii(substring(database(),1,1))>100快速确定大致范围,再用二分法精确定位。对于时间盲注,推荐使用:

1' and if(ascii(substring(database(),1,1))>100,sleep(2),0) and '1'='1

有个提升效率的小技巧:在Burp Intruder的Grep-Extract设置匹配规则,自动标记响应时间超过阈值的请求。我在某次实战中,用这个方法将盲注速度提升了3倍。

4. 文件上传的终极绕过

文件上传漏洞看似简单,但要突破各种防护需要系统化的绕过思路。pikaqiu靶场提供了从客户端校验到服务端检测的完整挑战链。

4.1 客户端校验的三种突破方式

当遇到JS文件类型校验时,我常用的绕过方法有:

  1. 拦截请求修改Content-Type(如改image/jpeg
  2. 先上传合法文件再修改后缀名
  3. 使用Burp的"Paste from file"功能直接上传恶意文件

对于前端图片预览检测,可以制作包含恶意代码的图片:

exiftool -Comment='<?php system($_GET["cmd"]); ?>' test.jpg

4.2 服务端检测的深度绕过

MIME类型检测容易被image/jpeg等头信息欺骗,但更严格的getimagesize检测需要特殊处理。我的制作方法是:

  1. 用GIMP创建1x1像素的透明图片
  2. 在文件末尾追加PHP代码
  3. 使用Hex编辑器修改文件头保持完整性

对于内容检测,可以采用二次渲染绕过:

<?php $img = imagecreate(1,1); imagecolorallocate($img,0,0,0); imagestring($img,1,0,0,'<?php eval($_POST["x"]); ?>',0xFFFFFF); imagepng($img,'shell.png'); ?>

4.3 解析漏洞的综合利用

上传后的文件能否执行,还取决于服务器解析规则。我收集的常见解析漏洞包括:

  • IIS的shell.jpg;.php分号解析
  • Nginx的shell.jpg%00.php截断
  • Apache的shell.php.xxx多后缀解析

在pikaqiu靶场最后一步,需要结合文件包含漏洞执行上传的webshell。这里有个细节:使用中国菜刀连接时,要注意编码问题。我更喜欢用蚁剑(AntSword),它对各种编码环境兼容性更好。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 19:01:07

Project Eye护眼工具:拯救数字工作者视力的智能守护者

Project Eye护眼工具&#xff1a;拯救数字工作者视力的智能守护者 【免费下载链接】ProjectEye &#x1f60e; 一个基于20-20-20规则的用眼休息提醒Windows软件 项目地址: https://gitcode.com/gh_mirrors/pr/ProjectEye 你是否曾在深夜加班后感到双眼干涩、视线模糊&am…

作者头像 李华
网站建设 2026/4/22 18:59:58

MySQL迁移过程如何避免数据不一致_利用强一致性备份方案

mysqldump加--single-transaction不保证强一致&#xff0c;仅对InnoDB表有效&#xff0c;且依赖REPEATABLE READ隔离级别&#xff1b;MyISAM表、DDL操作或隔离级别变更均破坏一致性。mysqldump 加 --single-transaction 不等于强一致很多人以为加了 --single-transaction 就能拿…

作者头像 李华
网站建设 2026/4/22 18:59:14

不止于仿真:如何用Simulink ABS模型优化PID参数,让制动距离更短?

从曲线解读到参数优化&#xff1a;Simulink ABS模型PID调参实战指南 当ABS系统的仿真模型初步搭建完成后&#xff0c;真正的挑战才刚刚开始。面对屏幕上跳动的速度曲线和滑移率数据&#xff0c;许多工程师会陷入这样的困境&#xff1a;模型能跑通&#xff0c;但性能总差那么一点…

作者头像 李华
网站建设 2026/4/22 18:59:09

IP定位API接口怎么选?在线、离线还是混合?一套决策框架

你需要的不是“谁家最准”&#xff0c;而是把IP定位能力放在正确的链路里。不同业务对延迟、吞吐、可审计的要求完全不同&#xff0c;选错路线会导致要么费用失控&#xff0c;要么数据漂移无法复盘。 行业数据&#xff1a;IP定位市场在增长&#xff0c;但误用仍然普遍 根据百…

作者头像 李华
网站建设 2026/4/22 18:55:35

3步解决方案:使用s7netplus实现西门子PLC数据采集与自动化控制

3步解决方案&#xff1a;使用s7netplus实现西门子PLC数据采集与自动化控制 【免费下载链接】s7netplus S7.NET -- A .NET library to connect to Siemens Step7 devices 项目地址: https://gitcode.com/gh_mirrors/s7/s7netplus 你是否在为工业自动化项目中如何高效连接…

作者头像 李华