在做渗透测试的时候,当其他’OWASP TOP 10’漏洞挖掘的差不多的时候,这时候就可以进行大批量的暴力破解或者是小批量的弱口令(因为怕网页被扫挂了),如果该系统或者是该url拥有一个管理后台的页面,那么就可以利用一些方法来登录后台,接下来我来一一列举如何方便有效的登录网站后台!
前言
在做渗透测试的时候,当其他OWASP TOP 10
漏洞挖掘的差不多的时候,这时候就可以进行大批量的暴力破解或者是小批量的弱口令(因为怕网页被扫挂了),如果该系统或者是该url拥有一个管理后台的页面,那么就可以利用一些方法来登录后台,接下来我来一一列举如何方便有效的登录网站后台!
一、前端系统绕过
前端系统绕过就是利用后台登录框的逻辑代码错误或者是存在注入漏洞来登录网站后台
1.后台登录框需要连接数据库,以至于需要与数据库交互,验证账号密码的正确性,如果验证SQL代码语句没有构造好的,就会造成SQL万能密码绕过,例如select * from user where from username=’$POST[‘user’]’ and ‘password=$POST[‘pass’]’
。构造万能密码1’ or ‘1’=’1
,sql查询语句变成select * from user where from username=’1’ or ‘1’=’1’ and password=(任意字符)
,
这样逻辑上是正确的,绕过验证登录后台
2.该网站存在XSS注入
,能够获取用户的cookie
信息或者session
信息,联合固定会话攻击尝试构造请求包登录后台
3.网站后台目录没有做session或者cookie的一个身份验证,可以直接以未登录的状态访问网站后台的路径信息,直接访问后台模块
4.通过伪造cokkie信息伪造其他用户进行登录,开发者为了方便将身份信息或者登录信息存放在cookie中,通过cookie进行授权或者身份验证,在url或者请求包中修改cookie的值,例如cookie=1
即为管理员登录
5.垂直越权或者水平越权,系统的用户权限通过userid来验证,通过修改userid进行越权操作,访问其他用户的页面模块
二、密码暴力破解
下面只展示无登录次数限制的才能进行暴力破解,有登录次数限制的可以尝试弱口令,后台登录界面有以下几种情况(师傅们如果还有其他的可以补充在评论区)
1.有登录验证码
(1)验证码绕过
(2)前端验证码非必须参数,可省略
(3)验证码不失效,可多次使用
(4)验证码问题集合答案有限,可以遍历后破解
2.前端无验证码
(1)账号密码以GET方式传输
(2)账号密码以POST方式传输
(3)账号或者密码进行编码后传输
三、暴力破解思路---前端有登录验证码
1.图形验证码不刷新的话,可以直接利用
burpsuite
软件抓包进行暴力破解
2.图形验证码参数可直接绕过,例如验证码空值绕过,user=admin&pass=123456&code=
;或者是删除验证码参数,user=admin&pass=123456
3.万能验证码,系统会存在一个万能验证码,只要输入万能验证码,即可无视验证码的验证进行暴力破解
4.验证码失效,前端不对验证码进行验证操作,仅对账号密码进行验证操作(比较少见)
5.验证码可被工具识别,有些验证码的像素线条过于简单,使用验证码识别工具可以识别出每次刷新的验证码,PKAV HTTP Fuzzer
就是一款自动化暴力破解工具
接下来介绍一下PKAV HTTP Fuzzer
,工具下载可访问
https://sec.kim/2019/01/07/%E6%B8%97%E9%80%8F%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7%EF%BC%9Apkav-http-fuzzer/
步骤一
打开软件后,填入如下的数据,首先是分析地址,就是你要登录的后台路径;然后是请求包(可通过burpsuite
括账号、密码、验证码的参数);接着添加标记,例如我对密码和验证码进行暴力破解,我就需要对密码参数进行标记,对验证码参数进行验证码标记(注意查看标记选项);最后就是对标记的参数进行字典的添加,在右边的模块是添加字典的模块选项。
步骤二
选择图片型验证码识别,然后输入验证码url地址,在识别范围模块可以选择验证码的规则,有的是数字型的,有的是字母型的,有的是混合型的,然后点击测试查看是否能够识别出来
步骤三
在重放选项模块选择验证码识别重放的线程模式,选择验证码的长度(这里我的后台验证码长度为4,所以我选择固定4位)
步骤四
发包器模块会自动生成主机,前提是你要把前面的模块填好了,然后点击启动即可自动化的对密码参数和验证码参数进行暴力破解,可以通过状态码来判断登录成功和登录失败的页面状态
四、暴力破解思路---前端无登录验证码
在网站的登录框只有账号和密码模块,没有验证码的验证,也没有登录次数的限制,这个时候就可以进行暴力破解,但是有时候账号和密码的组成条件如果有点苛刻的话,正常是暴力破解不出来的,这个时候就可以结合注册页面模块的注册要求(用户名、密码等规则)
使用burpsuite
软件直接暴力破解,比较页面返回包长度来判断登录成功或者登录失败,最后得到账号密码为admin/1
五、暴力破解思路---前端参数加密传输
现在的系统登录页面都进行了加密的处理,如果没有进行加密处理就造成了http明文传输
,正常的加密方式有md5加密、sha1加密、rsa加密
以及系统建立初期自定义的加密方法,这个可以放到在线解密平台进行尝试解密,然后再来判断是用了什么加密方法。
1.利用burpsuite
软件的intruder
模块将字典加密后暴力破解,可以自定义将字典转换成需要的编码或者其他形式
2.利用pydictor字典生成工具生成加密字典,工具下载链接
https://codeload.github.com/LandGrey/pydictor/zip/refs/heads/master
工具学习链接:https://www.ddosi.com/b172/
python pydictor.py -b ase dL --len 2 3 --encode md5 生成2-3为由数字和小写字母组成的字典(md5编码
)
-b ase 生成基础字典
dl 生成数字和小写字母组成的所字典
--len 2 3 生成长度对2-3的字典
--encode md5 字典编码为md5格式
将这个加密为md5格式的字典放到工具中即可自动化暴力破解
六、暴力破解思路---忘记密码重置
1.网站后台如果存在忘记密码模块页面的话,攻击者可以尝试利用该页面的模块功能重置密码,例如有些网站与数据库交互的代码没有做好验证,可以使用SQL万能密码绕过前端验证,这个时候就可以用1’ or ‘1’=’1这种万能密码插入”旧密码”模块,然后输入我们想要输入的新密码
2.如果不是通过旧密码验证的话,是通过手机验证码验证,这个时候可以尝试下面的操作
(1)输入自己的手机号获取的验证码能不能登录成功
(2)如果有手机号是否限制,可以尝试万能密码对手机号模块或者验证码模块进行插入,如果能够成功回显的弹窗也是不一样的
(3)有些忘记密码输入账号会自动写入手机号,这时候可以发送验证码,然后抓包看能不能在请求包中获取验证码,或者看能不能在验证码周期内对验证码进行暴力破解
(4)验证码参数可以绕过,例如codetype=1构造验证码状态正确,或者类似于status=false,将其改为status=true绕过验证
总结
web前端登录界面的登录有的时候尝试上面的思路可以登录进去,但也有经历过一遍又一遍的渗透测试把限制做的很好的,所以这需要另一种新的思路需要去挖掘。这是一篇学习和参考的文章,请勿用来做违法违规的操作。
- 本文作者: 和风
- 本文来源: 奇安信攻防社区
- 原文链接: https://forum.butian.net/share/333
- 版权声明: 除特别声明外,本文各项权利归原文作者和发表平台所有。转载请注明出处!