漏洞产生原理

逻辑越权漏洞就是不同用户之间操作权限的请求数据包没有做验证或验证不完整,导致用户A修改了身份验证的标志后,就有了同权限或高权限的操作权限。

通常用户访问一个应用的大致流程是:登陆—验证权限—数据库查询—数据返回,如果”验证权限”这个阶段出现验证权限不足或没有验证,那么就会导致越权,用户A可以操作其他用户的内容。

逻辑越权分为两类:水平越权和垂直越权

水平越权-同级用户权限共享:用户信息获取时未对用户与ID比较判断直接查询等

垂直越权-低高用户权限共享:数据库中用户类型编号接受篡改或高权限操作未验证等

出现越权漏洞的三种原因:

1.没有验证:没有对触发当前操作的用户权限进行验证。

2.有验证:但是逻辑顺序搞错了——先执行后验证。

3.有验证:验证产生在用户凭据验证上——cookie,jwt,session,token

案例演示:水平越权-YXCMS-检测数据比对弱

搭建好yxcms后注册两个账号:小黑子和小白子

查看数据库可以看到小白子的手机号和QQ号是:

18313278105和3110537987

打开小黑子的会员中心


选择资料完善,填写信息之后抓包


将小黑子用户更改为小白子用户,id更改为小白子的id值2,放包


查看数据库,成功使用小黑子用户水平越权更改了小白子用户的手机号和QQ号

案例演示:垂直越权-minicms-权限操作无验证

搭建好网站之后登录网站后台,选择撰写文章

写好之后选择发布


回到网站后台,在文章的回收处右键复制链接:http://127.0.0.1/mc/mc-admin/post.php?delete=ghm0lm&state=publish&date=&tag=


在另一个浏览器访问回收按钮的链接,弹出了后台登录页面,需要登录才能操作


但是当我们返回原来的浏览器后台刷新页面时,发现文章已经被回收了。


成功执行了需要管理员才能进行的操作

当前这个漏洞属于第二种原因:执行操作时有登录验证,但是是先执行操作在进行登录验证的,这种验证等于无效。

案例演示:未授权—XHCMS-Cookie脆弱验证

搭建完成xhcms,访问管理员后台地址:127.0.0.1/xhcms/admin/?r=index  跳转到登录验证

打开源码查看管理员后台文件,发现引用了验证文件


打开验证文件,发现验证了cookie,只要cookie中的user值不为空即可通过验证


访问管理员后台地址,抓包添加cookie


成功通过验证,进入管理员后台

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本平台和发布者不为此承担任何责任。