前言
Burp Suite是一款用于Web应用程序的集成测试工具,它由PortSwigger开发。它提供了一个完整的测试环境,包括代理服务器、扫描器和攻击工具,用于评估Web应用程序的安全性。
Burp Suite的主要特点包括:
1. 代理服务器:Burp Suite充当客户端和服务器之间的中间人,拦截所有的HTTP/HTTPS请求和响应。这使得用户可以查看和修改请求和响应,以便进行安全测试和利用。
2. 扫描器:Burp Suite内置了强大的扫描器,可以自动检测常见的Web应用程序,如跨站脚本(XSS)、SQL注入、命令注入等。用户可以根据需要进行配置,并查看扫描结果以及建议的修复措施。
3. 工具:Burp Suite提供了多种攻击工具,如、发包器和字典工具。这些工具可以帮助用户发现Web应用程序中的,如敏感信息泄露、文件上传等。
4. 扩展性:Burp Suite支持使用扩展来增强其功能。用户可以编写自己的扩展,以满足特定的需求,或者使用其他开发者编写的扩展。这使得Burp Suite可以适应不同的测试环境和需求。
总而言之,Burp Suite是一款功能强大的测试工具,可以帮助用户发现和修复Web应用程序中的安全。它被广泛应用于测试、安全评估和利用等领域。
验证码
验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序
验证码作用:
验证码可以防止恶意破解密码、刷票、论坛灌水,有效防止某个对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。
这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
验证码五花八门,有中文字,纯数字,点击字符、数学运算、滑动方块……
验证码机制原理:
->客户端发起请求,
->服务端响应并创建一个新的SessionID同时生成随机验证码,
->服务端将验证码和SessionID一并返回给客户端,
->客户端提交验证码连同SessionID给服务端,
->服务端验证验证码同时销毁当前会话,返回给客户端结果。
验证码绕过的常见方式:
设置了验证码并不是完全可靠,在很多情况存在验证码绕过的情况(举例是在登录处)
一、前端验证验证码,并没有后端验证。直接抓包然后进行跑数据包,反正有没有验证码的阻碍;
二、验证码设置了但是并没有效验,乱输验证码也能够成功的登录;
三、验证码可重复使用,如果验证码认证成功后没有将session及时清空,将会导致验证码首次认证成功之后可重复使用; http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-083092
四、空验证码绕过,验证码空值绕过,可以通过直接删除验证码参数或者Cookie中的值来绕过判断,进行暴力破解;cmseasy后台暴力破解验证码绕过 | wooyun-2014-083050| WooYun.org
五、验证码干扰过低,轻松使用脚本识别;银行业(招商银行)设计缺陷可被穷举 | wooyun-2015-092497| WooYun.org
六:验证码会在HTML页面输出;索尼验证码实现缺陷 | wooyun-2012-06634| WooYun.org
七、验证码可控制,比如他的验证码包含在URL里面,是一个URL传参,我们可以把URL设置定,那么验证码则可控制;凡客某处验证码绕过漏| wooyun-2012-014563| WooYun.org
八、验证码有规则,比如是时间戳的后6位(rand函数进行随机数);
九、有万能验证码,验证码无论是什么,只要输入000000就能直接绕过;百度空间用户登录绕过验证码验证 | wooyun-2012-05095| WooYun.org
十、验证码有的时候会藏在cookie里面,分析一下是不是存在验证码的参数;5173验证码可被绕过 | wooyun-2012-05151| WooYun.org
十一、图片验证码,自动识别;139邮箱图验证码绕过(目前图形验证码的可预测案例) | wooyun-2013-025245| WooYun.org
多次登录后才出现验证码绕过:
基于session:美囤妈妈登陆验证码可绕过进而可撞库(影响宝宝树) | wooyun-2015-0114450| WooYun.org
基于ip: http://wy.zone.ci/bug_detail.php?wybug_id=wooyun-2014-080327
基于 用户: 爆破用户名,而非爆破密码
一、绕过前端验证码
打开靶场,开启拦截
输入错误的验证码提交查看结果
发现并没有抓到包,因为它在前端就对验证码进行了验证,不正确是不会提交的
只能输入正确的验证码再提交,发现抓到了包
右键 Send Introder 设置参数
添加字典
成功爆破出用户名和密码
二、绕过后端验证码
输入错误的值提交查看发现能抓到包
这种的话有两种爆破方法:
1. 因为验证码在某段时间内是不会刷新的(可能是几秒也可能是几分钟),所以可以分批次枚举爆破
2. 强行爆破它后端的所有验证码,但是时间成本会大大增加.
这里的话可以将这个包发到重放模块
通过多次 Send 判断它的刷新时间(大概几分钟吧)
更改验证码参数使其正确然后发送到 Introder 模块攻击
成功爆破出用户名及密码