登录框攻击面思路
参考链接:
1、用户名
'
=> 没反应
"
=> 密码错误
存在SQL注入==> 尝试万能账户 ' or '1' = '1
=> 爆破密码
例子:
- (1) 正常登录报错
- (2) 加一个引号
- (3) 修改payload,以此返回数据包不同来判断存在SQL注入。
2、逻辑漏洞
- 短信轰炸/邮箱轰炸
- 一般在发送验证码后抓包,不断
repeate
即可。
- 一般在发送验证码后抓包,不断
- 绕过:
- 添加空格或者
\n
、\r
、\r\n
mobile1=XXXXXX
变成mobile1= XXXXXX
或者mobile1=XXXXXX
或者mobile1=XXXXXX\n
空格
或者\n
可以叠加,比如:mobile1=XXXXXX\n\n
- 添加空格或者
- 参数污染绕过
- 参数污染,就是说后台发送短信的时候会取数字那部分,当你混入其他字符之后绕过了对已经发送的手机号码的限制的校验。
tel=+)WAFXE#!18888888888&uid=11
- 参数污染绕过
- +86 或者 086
mobile=+86 18888888888
或者mobile=086 18888888888
- +86 或者 086
- 变量污染绕过
- 后台可能校验了第一个变量的内容是否超过限制,但是当数据包在传递到后台过去的时候,如果多个参数名是一样的时候,是会以第二个、第三个、第四个…最后那个参数为基准去传递,因此绕过了后台的限制。
mobile=17777777777(绕过限制的号码)&mobile=18888888888(真正接收短信的号码)
- 变量污染绕过
- 数据长度绕过
- 手机号码的定义是 11 位数,但是后台没有对传递的手机号码做校验长度,比如123=0123=00123,通过该方法来进行一个手机号码的绕过: 【狗的一个漏洞】
- 数据长度绕过
- 修改变量参数绕过
- 比如这样的请求参数:
terminal=01&Mobile=XXXXXXX
,前面的接口是调用短信发送内容的接口,比如terminal
参数值为01
是调用注册成功的短信提示,02
是调用密码重置成功的短信提示,03
是调用注册成功的短信提示等等,当修改这个接口值时,也就达到了短信轰炸或邮箱轰炸的目的。
- 比如这样的请求参数:
- 比如
apitype=1&phone=18888888888
,1
代表注册接口,2
代表注册成功接口,3
代表密码重置接口,那我们就可以爆破apitype
参数,这样一个手机号就会不断的经历注册,注册成功,密码重置成功的短信轰炸。所以,在漏洞挖掘的时候,关注参数以及参数之间的关联是十分必要的。
- 比如
- 比较常见就是发送验证码的时候前端带入一个状态,通过修改这个状态可以来绕过系统的限制,如已注册的用户不能发送短信或者相反未注册的用户不能发送短信
- 把
mobile=188&checkFlag=Flase
改成mobile=188&checkFlag=True
- 把
- 比较常见就是发送验证码的时候前端带入一个状态,通过修改这个状态可以来绕过系统的限制,如已注册的用户不能发送短信或者相反未注册的用户不能发送短信
- 修改变量参数绕过
- 修改响应包
- 比如发送成功后返回值是
success
,发送失败的返回值是error
,那么当达到次数后,可以通过修改返回值为正确的返回值:success
,从而绕过限制,达到发送成功的目的。
- 比如发送成功后返回值是
- 修改响应包
- 修改IP绕过短信&邮箱轰炸限制
- 有些同样是验证当前IP的,如果当前IP短时间内获取短信或邮件频繁或者达到一定次数的话就会出现限制,那么就可以利用修改IP或者代理IP来进行绕过限制。
- 修改IP绕过短信&邮箱轰炸限制
- 利用大小写绕过邮箱轰炸限制:前面说到了关于加空格的绕过限制,邮箱也可以用,但还有一种方式可以绕过邮箱轰炸限制,那就是通过修改大小写,通过修改邮箱后面字母的大小写就可绕过限制,比如参数是这样的:
Email=XXXX@qq.com
当次数达到限制时,随便修改一个字母为大写:Email=XXXX@Qq.com
就可绕过限制。
- 利用大小写绕过邮箱轰炸限制:前面说到了关于加空格的绕过限制,邮箱也可以用,但还有一种方式可以绕过邮箱轰炸限制,那就是通过修改大小写,通过修改邮箱后面字母的大小写就可绕过限制,比如参数是这样的:
- 抓包删除或修改cookie信息(
Cookie:xxxxxxxxx
全部删掉或删除中间一部分xxx
) -> 空数值发包多次
- 抓包删除或修改cookie信息(
- 绕过:

- 任意用户注册
- 爆破注册页面的验证码,即可任意用户注册
- 通过邮箱验证,构造验证链接
- 先按正常流程发送验证链接到邮箱,去邮箱查看验证链接格式,可能就是由注册时所填信息构成的 -> 再次注册新账户,直接构造验证链接,用浏览器打开即可成功验证。
- 通过邮箱验证,构造验证链接
- 任意密码重置
- 随意输入验证码 -> 发包 -> 返回包,修改
{"status":0}
为{"status":1}
-> 成功重置密码
- 随意输入验证码 -> 发包 -> 返回包,修改
- 验证码为4位的话,可抓包爆破验证码
- wooyun-2013-039809
- 不完全的登录(登录绕过)
- 在登录页面,随意输入任意的账户和密码,然后抓包,修改返回包,骗过前端,从而获得一定的权限,这种登录绕过的方式很可能导致后台功能不完善或者数据为空 -> 将标识身份的信息制空,可以看到许多敏感数据。
- 修改响应包状态码为200直接绕过
- 修改响应包内容绕过
- 🌰 登录失败时,返回包中有数据
0|sjhdfao
-> 思考0
有什么意义? -> 查找js文件,发现判断置1
的时候可以成功登录。
- 🌰 登录失败时,返回包中有数据
- 修改响应包内容绕过
- 在登录页面,随意输入任意的账户和密码,然后抓包,修改返回包,骗过前端,从而获得一定的权限,这种登录绕过的方式很可能导致后台功能不完善或者数据为空 -> 将标识身份的信息制空,可以看到许多敏感数据。
3、禁用JS插件,查看页面源代码12
- 禁用JS和查看页面源代码,有时候会有意想不到的惊喜。
- 例如某些重定向,某些权限缺失,在我们未授权进入后台一瞬间,就会重定向回去登录页面,而如果此时我们禁用了JS,则可以进行一定权限的控制。
Ctrl + U
查看源代码,在源代码里可能会泄露一些秘密,例如测试账号、一些网站的后台结构、JS接口、源码仓库地址等。
4、URL重定向
- 一般出现在以下参数里,而登录时常常也有这个URL重定向到后台网站,我们修改这个后台网站的URL即可跳转到任意页面,可用于钓鱼页面的制作
- http://www.aaa.com?url=aHR0cDovL2FkbWluLmFhYS5jb20=
- url后面常会进行base64编码处理
- http://www.aaa.com?url=aHR0cDovL2FkbWluLmFhYS5jb20=
- 常见URL跳转参数
- redirect
- redirect_to
- redirect_url
- url
- jump
- jump_to
- target
- to
- link
- linkto
- Domain
- 常见URL跳转参数
5、明文传输/用户名可枚举/爆破弱口令
- 用户名可枚举
- 因为页面对所输入的账号密码 进行的判断 所回显的数据不一样
- 举例:用户名不存在,密码错误
- 修复:用户名或密码错误
- 因为页面对所输入的账号密码 进行的判断 所回显的数据不一样
- 爆破弱口令
- 工具推荐
- Hydra
- 超级弱口令:链接:https://pan.baidu.com/s/1mkwnxu19Aq-KEVCWOZn99w 提取码:blj3
- 工具推荐
- 根据信息收集进行定制化爆破
- 举例:发现了管理员的名字缩写为crj,然后我就生成了一堆密码,最后成功登陆账号密码为crj112233
- 定制化生成字典: http://tools.mayter.cn/
- 根据信息收集进行定制化爆破
- 防火墙默认账户密码
- 防火墙默认账户密码

6、扫描
- 目录扫描
- 御剑
- 多次爆破,遍历访问多级域名的目录
- js扫描
- chrome插件:FindSomething
- 多次爆破,遍历访问多级域名的JS
- nmap扫描
- 举例:使用Nmap对批量网段的探测,获得了一个登陆网站,并且在网站中遍历目录,获得了一个test页面,最后在这个页面的JS文件中,获取到了一个接口,通过这个接口重置了主登录页面的密码。
7、框架漏洞
寻找CMS,或者网页框架,以及某些厂商的服务存在漏洞。可以提取特征指纹,去fofa找同类型站打。
8、各种未授权、免登录进入后台
9、验证码问题
- 验证码可修改接受者
可将A账号的修改密码验证码接受者修改为B,这样A账号的验证码就会发到B的手机上,从而B可以重置A的账号密码
例如A账号moblephone=13333888888 ,这点是可控的,我们修改为moblephone=18888888888,即可收到A账号的重置验证码
- 验证码可修改接受者

- 登录验证码可绕过
可能存在万能验证码0000或者9999,不过此类情况较为罕见。更多的情况为修改返回包,可能会出现可绕过逻辑判断。
- 登录验证码可绕过
- 验证码可爆破
验证码失效的时间过长,并且为纯数字或者过短字符,导致可被爆破。
- 验证码可爆破
- 验证码回显前端
有的网站验证码会回显到前端,只需要抓包即可获得验证码
- 验证码回显前端
- 验证码复用
验证码不会自动刷新,导致我们可一码多次使用,我们只需要输入一次验证码就可以让我们能够开始进行暴力破解。
- 验证码复用
- 验证码识别
- 识别验证码burp插件:https://github.com/f0ng/captcha-killer-modified
- 源码zip和jar包都要下载。
- 识别验证码burp插件:https://github.com/f0ng/captcha-killer-modified
- 验证码插件使用教程:https://www.cnblogs.com/4geek/p/17145385.html
- 下载依赖库:网上看到的教程都说
ddddocr
不支持 Mac M1,M1用户需要自己编译onnxruntime
才行,于是我找到了这个项目 https://github.com/cansik/onnxruntime-silicon ,亲测有效。
- 下载依赖库:网上看到的教程都说
pip3 install onnxruntime-silicon
pip3 install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com ddddocr aiohttp
© 版权声明
文章版权归作者所有,转载请标明出处。
THE END
暂无评论内容