浅谈渗透漏洞思路分享-水平越权
2024-3-13 22:45:31 Author: mp.weixin.qq.com(查看原文) 阅读量:28 收藏

漏洞思路分享-水平越权

不秃头的安全

      记一次外出渗透项目的水平越权漏洞记录分享,本人安全技术的一名小学生,仍在学习中,大佬有意见可指点,不喜勿喷,感谢指点!!!

1

漏洞描述

       由于应用系统中Id参数可控并未经校验导致信息被越权修改,攻击者可通过遍历Id参数批量删除、更改其他用户数据。

2

漏洞记录

(1).一个购物服务平台,首先创建了两个账户分别为cs1与cs,

页面中加入购物车,burp拦包后看到账户

cs1的userId=ef49e5124fc44ab38701566

2f6fb8195、账户cs的userId=497b596cd042

419583e8cfb7b94b6eac,在看到这里时想到的就是能否去实现水平越权操作,

用户为cs1,添加商品数量为3,添加购物车拦包将userid值改为用户cs的userid,放包,

放包后发现userid为原测试账户cs1的,再次更改为cs的userId放包,页面显示添加成功,

发现原用户cs1购物车中没有商品,

而用户cs的购物车中出现该商品数量为3。

(2).无独有偶,也是一个综合服务平台,但是和上面有一点不太一样的地方是这里不仅修改了id值,还将返回错误的500和false修改成正确响应码的状态码200及true信息,下面是具体记录,涉及敏感信息就打了厚码。

       刚开始客户给了两个账户分别为test2、test3,test2的id值为14e6d3b9a

3bc43ca90338ac9ad5f04b8,

test3的id值为a726c28802744d17

bc2df108f36adafc,

        在test3个人信息修改账户用户名处随意输入为test5并抓包,

       并修改test3的id值为test2的id值后,拦截返回包请求,当看到这里时明显就一种感觉可以水平越权成功,不要问是为什么,可能就是第六感(手动狗头)

       修改返回包中信息为200、true、修改成功,放包,

      在登录处使用原来用户名test2登录发现用户名不存在,使用test5可以登录,

      使用用户名test5,test2原密码可直接登录原test2账户,登录成功。

3

解决方案

  • 在进行每个敏感操作时判断用户登录状态和权限,避免越权修改信息

  • 水平权限参数不要用自增值,用id加密、随机数或GUID,但搜索引擎或攻击者可以同样用这个随机数和连接去进行操作

  • web层检查发起请求的用户权限,比如从session信息中获取

  • 数据库表增加ownerId字段,增删改查询时加上其作为where语句条件(即每一个信息增加一个发布人的字段,修改的人必须与发布的人为同一个人才可以访问)

如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247493831&idx=1&sn=6586cd1b5f207d86a1b40c9dc9a70dfc&chksm=e8a5e2a4dfd26bb2fe37b5ecd69513866815798c87202fa79a2fe08e9de5fb5351a6e75df60e&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh