暴力破解
1. LOW等级
打开BP,并开启BP
随意输入用户名和密码,使用BP抓包
抓到包后,右键send to intruder
send to intruder在intruder的positions选择中,先点击clear$清除所有的变量。然后分别给username和password这两个字段后面的内容添加add$,添加变量并将attack type的值设置为cluster bomb
在payloads选择中分别给payload 1和payload 2设置字典路径
然后点击右上方的start attack
开始枚举破解。通过length的长度判决即可
2. Medium等级
相比Low级别的代码,Medium级别的代码主要增加了mysql_real_escape_string函数,这个函数会对字符串中的特殊符号(x00,n,r,,’,",x1a)进行转义,把其中的字符串给过滤掉了,基本上能够抵御sql注入攻击,那低等级时候用到的注入就失效了,需要注意的是中级的暴力破解相对来说较慢是因为有个sleep函数,在破解失败后会使程序停止运行两秒。所以我们**直接用爆破方法即可,和low级的一样**
3. HIGH等级
使用草叉模式
High级别的代码加入了Token,可以抵御CSRF攻击,同时也增加了爆破的难度,通过抓包,可以看到,登录验证时提交了四个参数:username、password、Login以及user_token。
在该模块任意输入密码,用burp中抓包
发现多了一个token参数。将抓到的包发送到intrude
选择攻击模式为pitchfock,并且给要破解的项带上美元符号
点击payload(攻击载荷),payload set第一个代表密码,第二个代表user_token;payload set选择第一个,加载密码字典1000.txt;选择第二个,选择payload type选择阵则表达(recursive grep)
选择options,选择Grep - Extract点击add,选择fetch response(获取该页面代码)选择user_token值生成表达式;找到Redirections选择总是重定向。
选择线程池(Resource Pool),选择单线程,必须设置一个user_token爆破一个密码,如果像原来选择多线程,拿一个user_token爆破十个密码可能爆破时会报错
点击爆破
使用宏爆破
点击Project options,点击Sessions
在Sessions中添加宏,在Macros中点击add添加原本的没有尝试登录的网址,在网页中重新点击Brute Force,再在Sessions中Macros中点击add添加网址
添加完网址后点击ok,点击Response,点击Configure item
因为要添加的是user_token所以命名为user_token
获取到当前页面信息后找到token值,双击token值后点击ok
找到Session Handling Rules点击add
点击add再点击run a macro,点击刚才配置的宏,点击更新到刚才的页面
点击ok,点击Scope,点击URL Scope中的Include all URLs,点击ok
方包后重新抓包进行爆破,发送到重发器(Send to Repeater),在Repeater界面点击send,查看token值会不会变化,变化的话证明宏设置成功
测试成功后将抓包的信息发送至测试器进行密码爆破,选择爆破模式为集束炸弹,选择用户名和密码进行标记
Payload Sets中第一个是用户第二个是密码,第一个中加载用户字典,第二个中加载密码字典
单线程
总是重定向
爆破
总结
- 首先访问有user token的页面,bp拦截到当前页面链接
- 使用宏配置,正则表达过滤user token,
- 输入账号密码拦截,将拦截的内容先放到重发器里面测试一下,user token是否会变,如果变了,表面之前的宏设置成功
- 最后使用测试器,进行密码爆破,使用集束炸弹模式