MENU

逻辑漏洞学习

March 31, 2022 • Read: 626 • Web

逻辑漏洞学习

思维导图
2022-03-15-11-00-34.png

水平越权和垂直越权

原理:

通常来讲,就是由于逻辑上的缺陷,对用户的权限没有做出严格的限制,使得用户A可以通过修改数据包达到访问同级用户B的页面,用户A也可以通过修改数据包访问管理员用户C的页面。即(浏览器对用户提交的数据请求没有经过严格的权限设置,导致用户可以拥有观察或更改其他用户信息的功能。)

水平越权 :用户在权限相同级别下的组,可以进行越权访问、修改、删除数据。
垂直越权 :用户在不同权限下的组,可以进行高级别的权限使用。
2022-03-15-19-39-23.png

漏洞成因:

前端原因:

只对页面进行更高权限的隐藏
实际上并没有对后端的进行一个权限过滤,只是对前端进行隐藏。根据用户权限的判断,进行选择显示,但是功能点还是可以触发。

正确的做法应该是用户权限与功能点进行绑定。

例子:pikachu的越权源码,这里只是对输入的参数username判断不为空即可进行数据查询,没有与用户的登录状态进行绑定,burp抓包就可以修改请求参数即可看到别的用户数据

if(isset($_GET['submit']) && $_GET['username']!=null){
    //没有使用session来校验,而是使用的传进来的值,权限校验出现问题,这里应该跟登录态关系进行绑定
    $username=escape($link, $_GET['username']);
    $query="select * from member where username='$username'";
后端成因:

1.没有进行权限设置(通常来说我们是判断用户组编号、用户等级、用户组来确定权限)
2.没有进行参数过滤
3.数据库中同组成员不同权限

墨者靶场实操

URL:https://www.mozhe.cn/bug/detail/eUM3SktudHdrUVh6eFloU0VERzB4Zz09bW96aGUmozhe

要求:通过越权得到某位会员的信息
2022-03-15-19-42-38.png

登录test测试账号并抓包分析,一共两个包,
第一个可以看到明显的uid应该是要绑定用户账号名,而第二个则是根据ID来查询
2022-03-15-19-44-29.png
2022-03-15-19-44-46.png

这里测试根据用户名来爆破不行,然后查看首页的图片地址,可以发现跟card_id很像,于是使用burp爆破card_id查看
2022-03-15-19-47-09.png

爆破最后两位
2022-03-15-19-49-32.png
2022-03-15-19-50-00.png

爆破之后可以一个个试,也可以直接找图片那个id
2022-03-15-19-59-40.png

相关工具:

逻辑漏洞之支付漏洞

参考文章:https://www.secpulse.com/archives/67080.html

登录点安全测试

登录框暴力破解
  • 查看账号密码是否明文传输,若非则猜解加密方式,并且使用burp的爆破模块来进行爆破
    2022-03-16-22-01-46.png
cookie脆弱性

某个熊海cms后台登录处的源码,这里仅仅只判断了cookie中的user参数值是否为空,不为空则能登录,这便是cookie脆弱性
2022-03-16-22-06-57.png

常见支付漏洞学习

  • 商品购买流程: 选择商品和数量-选择支付及配送方式-生成订单编号-订单支付选择-完成支付
  • 常见篡改参数:
    商品编号 ID,购买价格,购买数量,支付方式,订单号,支付状态等
  • 常见修改方法: 替换支付,重复支付,最小额支付,负数支付,溢出支付,优惠券支付等

niushop存在商品数量支付漏洞
大米cms 用户下单位置存在漏洞

逻辑漏洞

  • 找回密码验证码逻辑-爆破测试-实例
  • 墨者靶场密码重置-验证码套用-靶场
  • 手机邮箱验证码逻辑-客户端回显-实例
  • 绑定手机验证码逻辑-Rep 状态值篡改-实例  某 APP 短信轰炸接口乱用-实例接口调用发包

验证安全

burp图片验证码爆破

captcha-killer的配置
  1. 下载
    burp2020前使用:

https://github.com/c0ny1/captcha-killer/tree/0.1.2
burp2020后的版本使用:
https://github.com/Ta0ing/captcha-killer-java8

  1. 使用burp抓取获取验证码数据包(逐步放包直到有验证码的包就行了),然后右键captcha-killer -> send to captcha panel发送数据包到插件的验证码请求面板。
    2022-03-29-16-29-46.png
  2. 配置识别接口的地址和请求包
    这里使用图鉴:http://www.ttshitu.com/

然后配置充好积分,填好自己的账户密码,然后右键保存该模板

POST /predict HTTP/1.1
Host: api.ttshitu.com
Accept: application/json;

 
{"username":"xxx","password":"xxxx","typeid":"3","image":"<@BASE64><@IMG_RAW></@IMG_RAW></@BASE64>"}

2022-03-29-16-36-24.png
点击识别,然后双击结果会自动生成正则
2022-03-29-16-38-34.png
然后就有了正常的识别结果了

爆破使用注意:

验证码绕过服务端,客户端

token爆破

token定义

token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。
当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。(简单的说就是在爆破密码的时候,若是需要携带token,则不好去进行爆破)

简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。
更多token解释:https://www.cnblogs.com/ahaMOMO/p/12373287.html

  1. 选择密码和token作为爆破目标
    2022-03-28-23-33-16.png
  2. token前的参数正常设置爆破所需的参数
  3. 新版中在线程池中设置爆破线程为1,因为只能从body中的token一一匹配,不能多线程发包
    2022-03-28-23-34-54.png
  4. 在option中的正则匹配中添加新的正则来匹配出所需token,若添加时没显示返回包,则点击refetch response重新获取返回包,随后搜索token,双击需要的字符串就会自动生成正则,并且需要复制下刚刚的token作为待会首次token。
    2022-03-28-23-37-46.png
  5. 设置返回包中要显示body内容
    2022-03-28-23-42-05.png
  6. 返回payload设置中设置第二个参数
    2022-03-28-23-49-51.png

callback 存在跨站

burp爬虫模块
https://blog.csdn.net/weixin_41489908/article/details/117601996

Leave a Comment

本站总访问量 32660 次