Burpsuite靶场练习历程(一)--Authentication.Vulnerabilities in password-based login
一、前言
博主本人从普通测试转职安全测试已有一年多,之前的公司项目是个嵌入式平台,工作中更多相关安全流程及前移,最终跳槽。现在工作现内容为web测试与SDL流程相结合,虽有更多机会进行安全渗透,但也愈感半路出家的自己自身能力之不足。
一方面工作同时磨练自己技术,一方面网上学习大佬们的博客开拓眼界。逐渐萌生自己创作博客的念头,刚好最近空闲时刷burp靶场打磨基础,遂将自己的学习过程分享出来,也算是对自己学习的一种激励和记录。
burp靶场地址:Learning path | Web Security Academy - PortSwigger
靶场内全英文,但例题内说明不难理解,碰见不懂的直接百度翻译也能解决
二、Vulnerabilities in password-based login
Anthentication模块分为三个实验组,各自包含多个实验项目,第一个为“基于密码登录的漏洞”。

Lab1:Username enumeration via different response
“基于不同响应的用户枚举”,字面意思,通过response的不同回显,枚举存在的用户名,最后使用附带的密码字典爆破登录
点击实验页面的My account,登录后burp获取交互报文,发送至burp的intruder模块,第一次对用户名进行枚举:
使用lab附带的用户名字典进行爆破:

点击start attack开始爆破。最终按response长度排序,获取正确用户名pi

下一步,使用pi用户名,对密码进行爆破,同上,使用lab附带的密码字典,最终得:
最终使用对应用户名密码登录,过关(每次实验组合随机):

Lab2:Username enumeration via subtly different responses
“基于细微回应差别的用户名枚举”,相比上一次实验回应报文差别明显,直接能通过报文长度判断。这次实验的回应报文长短不一,无法辨别(报文中携带随机字符串)

因此需要找到报文中的关键差异点,这里涉及intruder的option用法,学艺不精之前没做过了解,惭愧,在这里顺便总结一下相应选项作用:
Request Headers:爆破时某些报文头的设置,如报文长度等,默认勾选就行
Request Engine:爆破的并发进程数、重传、速率等设置
Attack Results:对爆破结果的处理,其中denial-of-service模式类似为tcp synflood攻击
Grep-Match:对response做匹配,标记特定字符串
Grep-Extract:与上一项类似,匹配提取特定正则格式的内容
Grep-Payloads:对response做匹配,标记原payload字段,用于反射检测
Redirections:设置burp对重定向response的处理
此次试验用到上述的Grep-Extract选项,对response中的错误回显做提取,便于观察不同报文间的区别:
勾选Grep-Extract选项,在弹框中选中相关的错误回应,然后开始爆破:

对warning进行排序,发现有一包不包含句号'.' ,锁定为用户枚举:

继续对密码进行爆破(继续勾选extract option),最终使用正确用户登录:


Lab3:Username enumeration via response timing
基于相应时间的用户枚举。照例首先对用户名进行爆破,发现最后返回“You have made too many incorrect login attempts. ”,登录太多被锁定了,遂考虑对报文X-Forwarded-For头进行伪造同时爆破
这里选择爆破方式为pitchfork草叉,意为不同爆破点像多根叉尖并行工作,一一对应。在初始报文内添加XFF头,内容随意ip地址并添加爆破点,同时对用户名添加爆破点(这里密码长度需要长点,不然最终时间差别不大)

payloads选项中,选择第一组为numbers,从1-100步进1;第二组选择为burp提供的用户字典

爆破之后,在column栏中点选response receiced和response complete,查看对比报文时延,最终发现有一包时延明显更大。

使用用户名adam,这次对密码进行爆破,直接根据长度判断:
使用正确用户名密码登录页面,仍提示用户锁定,虽用burp intercept拦截,添加XFF后forward,显示完成:
更多推荐



所有评论(0)