找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1583

积分

0

好友

228

主题
发表于 6 天前 | 查看: 28| 回复: 0

渗透测试的世界里,测试人员常被称为代码世界的“侦探”,手握Burp Suite这类工具对目标资产进行探测。常规操作往往是在页面中疯狂修改参数、发送请求,却时常只收到平淡的响应,如同石沉大海;或是请求被直接拦截,令人无可奈何。特别是在登录框这类“经典场景”中,测试者需要同时扮演研究正常逻辑的用户和设计攻击载荷的研究者,还要时刻提防WAF的拦截。

最近挖掘到的几个中高危漏洞,并没有依赖0day漏洞或复杂的利用链,纯粹依靠细致的“人工审查”——逐行比对请求参数与系统响应,不放过任何细节。在某个下午,当修改了一个深藏在JSON数据结构中的参数后,系统反馈了异常的信息,一个未授权访问的漏洞就此显露。这让人深刻体会到,耐心的观察与分析往往比复杂的利用技术更为有效。

案例一:无限抽奖币漏洞

新的功能点往往被常规功能所掩盖,在黑盒测试中,只有通过不断的“点点点”,坚持到隐蔽功能出现的那一刻,漏洞可能就呼之欲出。

在某厂商资产中,发现一个不起眼的抽奖活动,每次抽奖消耗20币,并有实物奖品。
抽奖活动界面

初始拥有100币。在尝试修改投币数量、拦截返回包控制奖品、并发签到等操作后,漏洞尚未找到,游戏币却已所剩无几。
游戏币余额

在最后一次尝试抓娃娃并修改请求包无果后,已经准备放弃。然而,当游戏币耗尽时,界面出现了“分享赚币”的新功能点。
分享赚币功能

点击分享后,在Burp Suite历史记录中分析数据包,凭借经验锁定/app/point/doll/share接口。该接口中存在一个控制获得金币数量的参数。
关键数据包

思路清晰后,直接重放该请求,并将金币数量参数修改为极大值。
修改参数

操作成功,获得了大量游戏币。这个案例告诉我们,在测试中不要轻易放弃,必须穷尽所有功能点。许多测试者在遇到鉴权后就断定目标不存在越权漏洞,这是不严谨的。一次完整的渗透测试应力求覆盖所有测试思路。

案例二:可控优惠券漏洞

某些服务在购买后会赠送优惠券,但通常只有购买高价服务才能获得高额优惠券。本案例通过手法,找到高等级优惠券对应的token,并在购买低级服务时进行替换,从而达到“刷券”效果。

省略前期信息收集步骤,直接进入数据分析阶段。选择一个商品服务下单,使用Burp Suite抓取所有流量。通过逐一分析,定位到创建订单的关键接口。

https://xxxxx/restapi/soa2/19691/orderCreate?_fxpcqlnired...

创建订单接口

查看已创建的订单,发现支付成功后系统会赠送相应的优惠券,但都是面额很小的“福利券”。
小额优惠券

将创建订单的请求发送到重放器,仔细观察数据包。这种涉及多流程的业务请求通常参数繁多,需要人工识别关键参数。最终,在data数据体中发现了记录优惠券token的字段。
数据包中的token字段

通过一系列方法,找到了其他高价值优惠券的token,并将其替换到原始请求中对应的三个位置。这意味着,可以通过购买低级服务,自定义获取任意已知token的高价值优惠券,并且可以重复叠加。
替换token后的数据包

替换后再次提交订单,原本的三张小额券被替换成了三张大额打车减免券。
攻击成功

案例三:CSRF漏洞利用

在逻辑漏洞、云攻防成为主流的今天,最基础的CSRF漏洞常被忽略。实际上,任何需要主观意愿才能执行的操作(如修改信息、添加地址、发送邮件等),如果请求中没有token或其他有效的校验机制,都可能存在CSRF风险。

在某站点中,正常修改绑定邮箱需要输入交易密码。但另一个“个人信息”接口却可以直接修改邮箱,且无二次验证。
个人信息修改界面

为不影响业务,使用两个已实名的小号进行测试。修改个人信息并抓包,定位到更新信息的接口。

/fund/apl/postUserinfo

更新信息数据包

该请求直接携带新邮箱,跳过了交易密码验证,并且请求包中没有tokenreferer校验等状态码字段,符合CSRF漏洞的条件。

使用Burp Suite的“Engagement tools” -> “Generate CSRF PoC”功能,将POST请求转换为CSRF攻击代码。
生成CSRF PoC

将生成的代码保存为HTML文件,让已登录的受害者小号浏览器访问该文件。点击执行后,页面返回修改成功。
CSRF攻击执行

刷新目标站点,发现个人信息和邮箱已被修改为攻击者预设的内容,CSRF攻击成功。
攻击成功效果

案例四:信息泄露导致网站被接管

从企业SRC转向实际工作渗透测试,面对的不再是少数指定目标,而是海量的资产。分享一个近期通过信息泄露成功接管网站管理员权限的案例。

工作渗透测试通常有授权,目标可能是某一地区的大量单位。海量资产的梳理是关键第一步。
资产梳理

资产测绘与处理

众多单位中,只有部分存在备案网站。使用hunter网络测绘平台,可以通过企业备案名称精准查询资产,这是其他平台不具备的优势。
查询语法示例:icp.name="xxx"
Hunter查询

为了批量处理,编写了一个Python脚本,调用hunter的API进行自动化查询。脚本会读取单位名称列表,逐一查询并整理结果。

import requests
import base64
import time
import json
import pandas as pd
# ... (脚本代码较长,此处省略,保留核心逻辑展示)
# 主要功能:读取公司名文件,调用Hunter API,处理返回的JSON数据,并输出Excel报告。

脚本运行后,会生成包含所有有效资产的JSON文件和Excel表格,便于后续分析。
脚本运行结果

收集到域名资产后,通常先保留状态码为200的地址。随后使用nucleiafrog等工具进行自动化扫描,快速发现诸如swagger泄露、目录遍历、已知CVE漏洞等问题,为进一步手工测试提供入口点。
自动化扫描结果

渗透实战过程

在对某个单位网站进行手工测试时,首页功能看似简单。首先进行目录扫描。
目录扫描

扫描结果中出现了/Admin/目录,很可能是后台管理入口。

http://xxxxx.com/Admin/

访问该目录,返回301状态码并跳转到登录页面,说明存在鉴权。尝试常用弱口令未果。
后台登录框

常规思路穷尽后,重新审视目录扫描结果。发现一个名为password.txt的文件。
发现password.txt

直接访问该文件,成功获取到明文的管理员密码。
获取密码

使用获取到的密码成功登录网站后台,获得管理员权限。
登录成功

总结

漏洞挖掘往往没有华丽的技巧,而是源于对无数个数据包的重复测试与细致观察。第100个数据包带来的惊喜,可能就藏在前99次的枯燥尝试之中。渗透测试的本质是坚持与细心,在看似穷尽的思路之外,或许就隐藏着突破的关键。保持严谨的测试流程和永不放弃的心态,是每个安全研究者最重要的品质。




上一篇:Python自动化运维工具库大全:30个核心库实战指南提升DevOps效率
下一篇:CPU虚拟化技术原理与硬件实现:详解VT-x/AMD-V如何驱动云计算
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-24 20:52 , Processed in 0.196867 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表