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

知识点

验证码安全
分类:图片,手机或者邮箱,语音,视频,操作等
原理:验证生成或验证过程中的逻辑问题
危害:账户权限泄露,短信轰炸,遍历,任意用户操作等
漏洞:客户端回显(已讲),验证码复用,验证码爆破(已讲),绕过等

Token安全
基本上述同理,主要验证中可存在绕过可继续后续测试
token爆破,token客户端回显等

验证码识别插件工具使用
captcha-killer,Pkav-Http-Fuzz,reCAPTCHA等
    captcha-killer下载:https://github.com/c0ny1/captcha-killer/releases/tag/0.1.2
    reCAPTCHA下载:https://github.com/bit4woo/reCAPTCHA/releases/tag/v1.0

接口安全问题
调用,遍历,未授权,篡改等

调用案例:短信轰炸
遍历案例:UID等遍历
callback回调:JSONP
参数篡改:墨者靶场

未授权访问与越权漏洞区别

Jboss、Jenkins、ldap、Radis、elasticsearch、MenCache、
Mongodb、Rsync、Zookeeper、Docker等未授权访问

本课重点

  • 案例1:验证码识别插件及工具操作演示-实例
  • 案例2:验证码绕过本地及远程验证-本地及实例
  • 案例3:Token客户端回显绕过登录爆破演示-本地
  • 案例4:某URL下载接口ID值调用遍历测试-实例
  • 案例5:Callback自定义返回调用安全-漏洞测试-实例
  • 案例6:上述在实战中如何做到漏洞发现-bp功能点

案例1:验证码识别插件及工具操作演示-实例

验证码识别测试网址:https://manage.yyxueche.com//panel/login.php

<1>Pkav HTTP Fuzzer验证码识别工具

  • 优点:免费,简单,方便
  • 缺点:无法集成到burp等第三方工具上使用,只能在本工具上发包

<2>captcha-killer burp验证码识别插件

参考:

https://www.cnblogs.com/cwkiller/p/12659549.html

https://www.cnblogs.com/nul1/p/12071115.html

案例2:验证码绕过本地及远程验证-本地及实例

演示案例1&2靶场环境:pickachu

演示案例1:验证码复用

验证码可以一直使用,不需要更新

原因是验证码用过后未及时销毁

演示案例2:验证码绕过

这里验证码的生成和验证都是在前端进行,绕过方法是直接屏蔽掉前端相关的JS代码即可。

演示案例3:真实案例

这里有一个注册功能,给手机号发验证短信时需要输入验证码。

第一次输入正确的验证码成功后,抓包,将验证码字段值设置为空,可以一直向手机发送短信。

案例3:Token客户端回显绕过登录爆破演示-本地

靶场环境:pickachu

登录请求包有一个隐藏字段token防止重放,这个字段值由前一个请求从后端返回

绕过方法:可以重放两个请求,从第一个请求响应中取token值,放到第二个请求(登录请求)中,对登录进行暴力破解。、

参考:https://www.cnblogs.com/zhengna/p/12703113.html

案例4:某URL下载接口ID值调用遍历测试-实例

类似枚举遍历

http://www.grasp.com.cn/DownFiles.aspx?id=591

遇到以上这类请求接口时,可以尝试配合intruder模块,枚举ID值,看能否获取其他编号对应的用户信息

造成这类问题的原因是水平越权

案例5: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

案例6:上述在实战中如何做到漏洞发现-bp功能点

爬虫整个网站-->搜索特定关键字(比如cheackcode,id,callback等)-->快速精准找到有逻辑漏洞的点-->针对性测试

原文地址:https://www.cnblogs.com/zhengna/p/15657016.html