由于测试过程中很多系统我们能接触到的只有一个登陆界面,所以要充分挖掘漏洞,进行深入操作
登录&注册
SQL注入
万能密码绕过登录
存在SQL注入的情况下,有可能使用万能密码直接登录
admin' or '1'='1'--
admin' OR 4=4/*
"or "a"="a
' or''='
' or 1=1--
有超级多
登录口SQL注入
存在SQL注入的话直接注出账密
有些可以构造用户注入登录,比如熊海cms后台登录处存在sql注入
$login=$_POST['login'];
$user=$_POST['user'];
$password=$_POST['password'];
$checkbox=$_POST['checkbox'];
if ($login<>""){
$query = "SELECT * FROM manage WHERE user='$user'";
$result = mysql_query($query) or die('SQL语句有误:'.mysql_error());
$users = mysql_fetch_array($result);
这里万能密码起不到作用,因为他是通过用户名去数据库查密码,再进行匹配,还有一种方法非常巧妙
user:1' union select 1,2,'test','c4ca4238a0b923820dcc509a6f75849b',5,6,7,8#
password:1
这是mysql的特性, 在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据,就相当于构造了一个虚拟账户,可以使用这个账户登录
未授权访问
后台未授权访问
列举几种找未授权访问的方法
- 使用目录扫描工具,如 dirsearch 等扫描路径,有的可能存在目录遍历
- 查看 js 代码中登录成功后的跳转 url
- 使用 jsfind 找可疑url
- 利用web程序已知漏洞如:druid未授权的urls、springboot mapping等未授权漏洞界面找可疑的 url,访问查看是否存在未授权
- 有些可能在未授权进入后台一瞬间,重定到登录页面,这时可以利用burp抓包把跳转包drop掉
组件未授权
使用的组件可能会出现漏洞,常用的未授权漏洞,对于端口的收集也至关重要,可以提高漏洞利用面
- Redis 未授权访问漏洞
- MongoDB 未授权访问漏洞
- Jenkins 未授权访问漏洞
- Memcached 未授权访问漏洞
- JBOSS 未授权访问漏洞
- VNC 未授权访问漏洞
- Docker 未授权访问漏洞
- ZooKeeper 未授权访问漏洞
- Rsync 未授权访问漏洞
- Atlassian Crowd 未授权访问漏洞
- CouchDB 未授权访问漏洞
- Elasticsearch 未授权访问漏洞
- Hadoop 未授权访问漏洞
- Jupyter Notebook 未授权访问漏洞
其他功能点(注册)(找回密码)
超长用户名注册
注册用户
admin+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++1
覆盖掉原来的admin用户,不常见
任意重置密码
此时客户端会发一个验证码包,这是随意输入验证码,发包,返回包
返回包错误的回显为{“status”:0},将返回包的东西换成{“status”:1},即可重置密码
用户枚举漏洞
找回密码界面,输入用户名抓包,查看返回包中泄露的信息
比如:TerraMaster TOS 用户枚举漏洞 CVE-2020-28185
输入用户名 admin 点击确定,查看Burp捕获的包,其中有一个请求包用于确认用户admin是否存在,存在则返回用户的邮箱信息
验证码问题
验证码不刷新
验证码不会自动刷新,导致一个验证码可以用很多次
验证码失效
验证码无效依然可爆破,在挖掘弱口令的时候,常常会遇到图片验证码无效的情况,此时只需要输入正确的账号密码和验证码,使用burpsuite依然可继续爆破
验证码前端返回
有的平台可能验证码校验在前端进行,错误的将后台的验证码返回到前端,导致攻击者可以抓取返回包中的验证码
验证码爆破
有的平台可能验证码比较简单只有几位数字,可能存在爆破,使用burp抓包爆破
验证码短信轰炸
对于验证码发送次数没有做限制,导致造成短时间内短信重发,使用burp抓取获取验证码的包放到repeater不断重放,更暴力点可以使用intruder
验证码OCR
对登录页面使用工具如 xcode 对验证码进行识别爆破用户账号密码
验证码验证逻辑错误
就是验证码可以修改接收者,将账户修改密码的验证码抓包修改为其他手机号,后台并没有做验证
万能验证码
可能存在万能验证码0000或者9999,不常见
越权
过于简单的cookie
如果用户登录后的cookie并不是随机的,而是如
cookie:Guest
这种过分简单的身份验证方法,可以导致越权,如果又存在用户注册,就可以注册一个普通用户然后越权为admin
HTML源码信息泄露
固定加密的账密
比如:中科网威 下一代防火墙控制系统存在账号密码泄露漏洞,攻击者通过前端获取密码的Md5后解密可获取完整密码登陆后台
fofa语句:body="Get_Verify_Info(hex_md5(user_string)."
F12查看前端发现 admin的md5加密密码
注释泄露信息
必须泄露的url,或者敏感信息
ELSE
URL重定向
经常出现在登录成功跳转中,可以修改参数跳转到任意页面,可用于钓鱼
比如:www.ocean.com?redir=aHR0cDovL2FkbWluLmFhYS5jb20=
redir后面的可能会进行base64编码
redirect、redirect_to、redirect_url、url、jump、jump_to、target、to、link、linkto、Domain
已知漏洞利用
因为一个web服务会用到很多组件,只要一个组件出现漏洞,这个密不透风的墙就被推到了,所以说资产收集是很重要的,收集足够多的信息,知己知彼百战百胜
有条件可以用一个扫描器扫描已知漏洞
- web框架历史漏洞
- cms历史漏洞
- oa历史漏洞
- 使用fofa、浏览器插件wappalyzer等收集资产,然后拿漏洞库的poc去尝试
弱口令
默认密码
很多设备都存在默认的帐号密码
特别是一些厂商设备弱口令很常见
常见设备弱口令整理
一个简单的弱口令就让高昂的设备白给
测试账号未删除
比如 test,ceshi
拼音姓名字典
拼音姓名字典、用户名字典(如root,system,admin1等)+弱口令爆破,使用常规的拼音姓名字典 +123456,123,等弱口令进行爆破
如果网站有注册功能,破解用户密码的时候可以先去注册查看注册机制,如果可以使用123456等
密码那么就用拼音字典去爆破123456等弱口令,如果不行,可根据密码复杂程度制作密码,比如密码需求是字
母加数字的八位,就可以尝试abcd1234等符合密码规则的密码进行爆破
用户名枚举
使用两位字母和三位字母枚举,爆破123456等弱口令,成功爆破出一枚管理员后台账号密码,之前一个学校的后台弱口令没成功,SQL注入后发现用户名全是姓名首字母,密码1111
提示过于详细
当爆破的时候返回包显示密码不正确和用户名不存在的时候,我们可以搜集这些用户名进行专门的弱口令爆破,例如我爆破出存在多个存在的用户名,首先搜集这些用户名,然后设置burpsuite,通过以下格式的方法进行爆破,例如:Lihua,lihua123 lihua lihua lihua lihua@123 lihua lihua1234且注意网站下方是否有建立时间,如果时间是2017年建站的 ,我们的密码可以设置成lihua@2017 lihua@2018等进行专门针对用户名的爆破
域名做字典
截取子域名一部分作为字典挖掘弱口令
比如学校 wlzx(网络中心),tw(团委),jxzl(教学质量)等常见的系统用户名也是子域名
根据网站性质猜测用户名,比如教务类网站常有teacher,student1等用户名,或者企业缩写为用户名
搜集文章发布者姓名
搜集文章发布者姓名,在挖掘弱口令漏洞的时候,我常常会搜集文章发布者的姓名,网页上会有一些文章发布者的名字,我会把它搜集其他作为针对该网站爆破后台的用户名,并且整合前几种方法进行爆破。如果遇到中文名的管理员,我会把它转换为英文名,比如发布者:李刚,我的字典里就会多lilgang,lg,lig,lgang,这几个用户名,配合前几种姿势进行爆破。当然也遇到过比较奇葩的,直接就是中文为用户名
信息收集
不放过细节,qq群号很重要
在以前遇到一个这样的案例,网站上面存在一个客服qq群号码,网站是需要公司用户登录的,验证码也无法爆破,我在了解了网站的业务之后,通过网站上的qq群号码加群,在群公告之中发现了默认密码是xxx@xx1,但是不知道用户名,就在群里问了一句我登录不进去了,然后私聊一些群里的其他用户获取了用户名是企业统一信用代码,而群名片就是企业名字。我通过中国企业统一代码查询网站得知了这些企业的用户名。然后通过该默认密码进入了后台继续深入挖掘。另外在src上也挖到过同类问题,直接通过企业用户名和企业信用代码就可以重置企业用户密码进而查看学生简历,总而言之,任何网页上的信息都可能作为用户名,需要细心搜集
注册账号搜寻信息
在网站登录口无法爆破的时候,可以耐下心来注册,通过后台搜索好友等方法搜集用户名。然后在了解注册密码复杂程度机制之后挨个挨个的去手工尝试用户名密码。比如搜集到了lihao用户名,就可以参照前面的方法手动尝试lihao lihao123等密码进行登录,此方法需要很大耐心,但是十分有效
安装文档
搜集该网站的安装文档,使用文档等寻找默认账号密码或者未打码(也可以通过百度,谷歌,百度网盘等搜集)
Fuzz
工号、学号、身份证号等fuzz,当遇到用户名可能为工号的情况下,fuzz一波数字工号 ,或者寻找有无工号泄露的地方,根据工号继续爆破
各位大佬们多多提高危
本文由Ocean原创发布
转载,请参考转载声明,注明出处:
安全客 - 有思想的安全新媒体