前言
Pikachu是一个带有漏洞的Web应用系统,它包含常见的各种各种web安全漏洞。由于各种现实因素,在公网上进行渗透测试是不实际的,因此我们可以在pikachu靶场(漏洞练习平台)进行针对性的练习。
Pikachu上的漏洞类型列表如下:
- Burt Force(暴力破解漏洞)
- XSS(跨站脚本漏洞)
- CSRF(跨站请求伪造)
- SQL-Inject(SQL注入漏洞)
- RCE(远程命令/代码执行)
- Files Inclusion(文件包含漏洞)
- Unsafe file downloads(不安全的文件下载)
- Unsafe file uploads(不安全的文件上传)
- Over Permisson(越权漏洞)
- …/…/…/(目录遍历)
- I can see your ABC(敏感信息泄露)
- PHP反序列化漏洞
- XXE(XML External Entity attack)
- 不安全的URL重定向
- SSRF(Server-Side Request Forgery)
一、暴力破解
1. 基于简单的暴力破解
- 使用bp开启抓包状态
- 登录实验平台http://127.0.0.1/pikachu
- 返回bp,能看到刚刚输入的username和password
- 然后点击Action,继续点击给攻击者
- 点击intruder进入入侵者
- 把攻击类型切换成集束炸弹
- 首先清楚掉所有的变量
- 找到username(用户名)双击后面的值,点击Add添加
- 再找到password同样的操作添加
- 切换到payloads
设置有效载荷 Payloads,并开始攻击。
payload set 1:
加载用户名的字典
payload set 2:
加载密码的字典
-
开始攻击
点击start attack
- 点击Length按照长度来排序
admin 123456
和test abc123已经猜出来了
这里就不做其他尝试了
- 返回登录界面,输入密码
login success 登录成功
2.验证码绕过(on server)
- 先做一个尝试登录
- 这边提升错误,说明这个验证码还是有作用的
- 打开bp拦截,输入错误的账户密码,正确的严重码,看看信息有没有被发出去
- 能看到这个vcode是后台验证过的
- 然后发送给Repeater,在把它放掉
- 回到登录界面刷新一个验证码
- 点击Repeater把刷新的验证码改到vcode
- 多次运行send就能看到在重复使用同一个验证码,接着爆破就可以
- Raw的内容复制到Positions里面,同样的操作爆破就可以了
2.验证码绕过(on client)
- on client本地验证
- 验证码是一个input框
打开bp拦截一下
发点击Action送给Response,然后放掉
切换到Repeater
- 在vcode后面改成错误的验证码或者不改
- 多次运行Red能看到也只是提示用户密码错误
- 所以这个vcode根本没有在前端做校验
还是和之前一样的操作就能继续爆破了
3.token防爆破?
- 一样的操作,随便输入账户密码,np拦截
- 发送到intruder,然后松掉
- 切换到intruder
- 使用鱼叉
- 添加用户,密码和token
- Payloads set 1
- Payloads set 2
- 加载字典
- 和之前的操作一样
- Payloads set 3
找到token
回到payload set 3
运行破解
还是通过Length长度来排序得到账户密码
至此试验结束
总结
理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略,