WEB漏洞—逻辑越权之验证码与Token及接口

WEB漏洞—逻辑越权之验证码与Token及接口
Yatming的博客WEB漏洞—逻辑越权之验证码与Token及接口
1.验证码安全
分类:图片,手机或邮箱,语音,视频,操作等
原理:验证生成或验证过程中的逻辑问题
危害:账户权限泄漏,短信轰炸,遍历,任意用户操作等
漏洞:客户端回显(已讲),验证码复用,验证码爆破(已讲),绕过等
—验证码爆破:没有次数限制,验证码有效时间内不变
—验证码识别:用工具识别验证码
—复用:用上一次的验证码来绕过下一次的验证
—回显:验证码在前端数据包显示
—绕过:逻辑上的绕过,直接跳过验证码
2.token 安全
#基本上述同理,主要是验证中可存在绕过可继续后续测试
—token 爆破—token后面会跟上一个字符串,如果知道规律可以进行爆破
—token 客户端回显—token的数据会在前端数据包(request)里面显示
—token固定—虽然有token,但是可以通过上一次的token操作下一次的数据包(表面上有,实际没有)
1 | 1、Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。 |
工具介绍
优点:简单易懂,操作方便
缺点:这个不可以和那个burp之类的工具进行联动,还有就是这个不可以安装一些插件,扩展性不太可
这里建议用这个亦思的引擎,这个的准度比另一个高一点,但是还是误报很多
burp安装两个插件
后续操作,这个接口调用的需要充一下钱,就不演示了
pikachu靶场演示
第一个服务端验证
抓包分析,之后发现存在验证码复用的问题,及抓包一个正确的验证码,然后进行爆破,就可以了。
第二个客户端验证
前端验证和后端验证之前说过,后端验证就是看不到源代码,因为抓到的代码是执行之后的代码,前端验证就是将验证代码写在了js中,但是也有一种情况就是引用的js文件,这样的话就需要在抓包的时候留意一下js的文件
摩根金控(网站已经打不开了)
随便给一个变量,然后用burp的模块,使其多次发包
这里只能成功一个包的原因,是因为同一个手机号的只能隔60秒的时间才可以再次发送一个验证码。
pikachu靶场token验证
可以看到这里是有一个token的值的
某URL下载接口ID值调用遍历测试-实例
类似枚举遍历
遇到以上这类请求接口时,可以尝试配合intruder模块,枚举ID值,看能否获取其他编号对应的用户信息
造成这类问题的原因是水平越权
Callback自定义返回调用安全-漏洞测试-实例
callback安全
简要说明:
- 1.由于浏览器的同源策略(域名,协议,ip端口相同),非同源域名之间传递会存在限制。
- 2.JSONP(用于解决跨域数据传输的问题,利用了HTML里元素标签的开放策略src引入Js文件,远程调用动态生成JSON文件来实现数据传递,并以任意javascript的形式传递,一般使用 Callback(回调函数返回,由于没有使用白名单的方法进行限制Callback的函数名,导致攻击者可以自定义Callback内容,从而触发XSS等漏洞)由浏览器的javascript引擎负责解释运行。
原理分析:
- 1.接口开发时,接收回调函数的参数值在进行拼接前未对恶意数据进行合理化处理,导致攻击者插入恶意的HTML标签并在返回的JSON数据格式原样输出;
- 2.同时服务端未**正确设置响应头content-type,**导致返回的json数据被浏览器当做Html内容进行解析,就可能造成xss等漏洞。
测试切入点:
- 1.一个使用jsonp技术的接口,参数中包含回调函数的名称(jasonp,callback,);
- 2.服务端返回的json数据时,响应头为 content-type: text/html;
- 3.服务端未对回调函数参数进行过滤净化。
测试步骤:
- 1.设置代理到burpsuite;
- 2.网站根目录开始爬取,重点关注Ajax异步(一般页面只会局部刷新)处理的网页,关注重点业务;
- 3.在HTTP history 标签页过滤功能过滤关键词 Callback,jasonp,等请求,找到URL带有Callback参数的链接。勾选Filder by file extension中的Hider,隐藏js、gif等后缀的URL);
- 4.查看URL对应得HTTP Response的Content-Type类型是否为text/html且内容是否为json形式(带有json数据的函数调用),如果是我们输入的HTML标签才会被浏览器解析;
- 5.将对应的请求发送到Repeater。在callback参数值的前面加一些类似HTML的标签,如,如callback=Testjsonp1,Go之后发现Response的内容有无影响(HTML有无被转义,没有转义则存在漏洞)。也可将callback参数换为有恶意行为的HTML标签,如callback=<img οnerrοr=alert(document.cookie) src=x />jsonp1
防御修复方案:
- 1.定义HTTP响应中content-type为json数据格式,即Content-type:application/json;
- 2.建立callback白名单,如果传入的callback参数值不在名单内就阻止继续输出,跳转到异常页面;
- 3.对callback参数进行净化,包括不限于html实体编码,过滤特殊字符< > 等。
原文链接:https://blog.csdn.net/weixin_42519551/article/details/104578440
上述在实战中如何做到漏洞发现-bp功能点
爬虫整个网站–>搜索特定关键字(比如cheackcode,id,callback等)–>快速精准找到有逻辑漏洞的点–>针对性测试
1 | https://www.lanzous.com/i1z2s3e 或者 https://sec.kim/wp-content/uploads/2021/01/PKAV-HTTP-Fuzzer-1.5.6.zip |