当前位置: 首页 > news >正文

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),它对各种编码环境兼容性更好。

http://www.jsqmd.com/news/683342/

相关文章:

  • STM32物联网设备免配置联网:用CubeMX+LwIP实现DHCP自动获取IP(含HostName设置避坑指南)
  • 架构设计 Skill
  • 初中数学提分利器:手把手教你搞定因式分解的十字相乘和公式法(附口诀)
  • 别再让图像有暗角了!用OpenCV和Python给工业相机做个平场校正(附完整代码)
  • 从康复理疗到智能假肢:sEMG特征提取如何在实际项目中落地?我的5个踩坑经验分享
  • TwitchDropsMiner完整教程:零带宽自动获取游戏掉落奖励
  • 别再死记硬背了!用DSP28335的ADC+DMA实现多通道数据采集,这份配置清单请收好
  • 别再只会打两拍了!手把手教你搞定跨时钟域信号处理的三种实战场景(单bit/多bit/异步FIFO)
  • 3步实现知网文献批量下载:CNKI-download自动化工具完全指南
  • AngularJS SQL
  • 用STM32F1的定时器玩点花的:PWM呼吸灯、编码器测速、输入捕获测频一站式搞定
  • 告别PyInstaller打包DLL缺失:从ImportError到一键部署的实战指南
  • 2026年生物技术论文降AI工具推荐:基因研究和生物工程部分降AI攻略 - 还在做实验的师兄
  • d2s-editor:5分钟学会暗黑破坏神2存档修改,轻松打造完美角色
  • 移动网络下,为何你的公网IP成了‘隐形地址’?
  • 【仅限首批200家认证企业开放】:2026规范合规自检工具链V1.0正式解禁——含静态分析规则包、运行时防护桩、以及NASA/JPL验证过的37个边界用例
  • 从PCIe 2.0到5.0:时钟电平HCSL与LP-HCSL的演进史,以及如何为你的新设计选型
  • 从暗电流到信噪比:手把手教你用Python+Arduino搭建PD(光电二极管)性能测试平台
  • 在Windows上用Anaconda配置BiSeNet V2训练环境,避开Linux依赖的坑
  • 【VASP】QVASP 实战:从安装到 ELF 电荷局域函数计算
  • ORAN前传延迟实战:手把手教你配置O-DU与O-RU的时间窗(含eCPRI测量避坑)
  • 3步解决方案:使用s7netplus实现西门子PLC数据采集与自动化控制
  • Project Eye护眼工具:拯救数字工作者视力的智能守护者
  • 从GitHub Issues到个人学习计划:Mermaid甘特图的5个意想不到的实用场景
  • Semi Design v2.95.0 发布:Input 等组件功能更新,多组件问题修复
  • 2026年电子商务论文降AI工具推荐:平台运营和用户行为研究降AI方案 - 还在做实验的师兄
  • 别再只用递归了!C语言实现斐波那契数列的三种高效算法对比(附性能测试)
  • 损失函数‘混搭’指南:我是如何用MS-SSIM+L1组合,在Kaggle图像比赛中提升排名的
  • 保姆级教程:用MQTTX和EMQX从零搭建一个物联网消息收发Demo(含WebSocket监控)
  • 明日方舟素材库:创作者与开发者的专业资源宝典