大家好,欢迎来到IT知识分享网。
浅谈越权
越权(或者说权限提升,Privilege Escalation)是指攻击者能够执行其本身没有资格执行的一些操作,属于“访问控制”的问题。用大白话讲,越权就是“超越了本身拥有的权限,干了本来不可能干的事儿”
漏洞叙述
越权访问分为垂直越权访问和水平越权访问。垂直越权是指不同用户级别之间的越权,如普通用户执行管理员用户的权限。水平越权是指相同级别用户之间的越权操作。这里重点叙述水平越权访问,其实垂直越权差不多,只是权限不同。
假设用户A和用户B属于同一角色X,拥有相同的权限等级,都能获取自己的私有数据(数据A和数据B),但如果系统只验证了能访问数据的角色,而没有对数据做细分或者校验,导致用户A能访问到用户B的数据(数据B),那么用户A访问数据B的这种行为就叫做水平越权访问,如图所示。
漏洞原理
Web程序未对用户提交的参数进行权限校验。比如,某个订单系统,用户可以查询自己的订单信息。A用户查询订单时,发送的HTTP请求中包含参数“orderid=A”,订单系统取得orderid后最终会查询数据库,查询语句类似于“select * from tablename where orderid = A”。B用户查询订单时,发送的HTTP请求中包含参数“orderid=B”,系统查询数据库语句类似于“select * from tablename where orderid = B”。正常情况下,每个用户只会查询到自己的订单。但是,当B用户将自己的HTTP请求参数修改为“orderid=A”,那么最终B用户执行的数据库语句变成了“select * from tablename whereorderid = A”,导致A的订单信息被B用户获取到了。
Web应用程序如果存在越权访问漏洞,可能导致以下危害:
1、导致任意用户敏感信息泄露。
2、导致任意用户信息被恶意修改或删除。
越权访问漏洞属于Web应用的业务逻辑漏洞。对于此类漏洞,第三方检测防护技术尚不成熟。所以,发现越权访问漏洞,需及时通知Web应用设计者修改程序,对用户提交的参数做权限校验。
漏洞例子 —— yxcms越权修改任意用户资料
Yxcms是一款高效,灵活,实用,免费的企业建站系统,基于PHP和mysql技术,让您拥有更加专业的企业建站和企业网站制作服务。然而基于YXcms1.2.6建站系统修改用户资料时,对用户身份没有进行验证,导致越权操作,这里对yxcms建站系统进行一次漏洞复现。
事先准备两个账号和BP
1、打开网站首页,点击登录,使用账号lisi,密码lisi登陆,点击会员中心
2、进入到资料完善页面,可以看见并没有手机号和号
3、注销当前账号,登陆zhangsan账号,进入会员中心资料完善界面
4、打开bp,准备好抓包,返回浏览器输入手机号和号
5、点击修改进行抓包,可以看见当前攻击者用户zhangsan的id值为“1”
6、修改id值为受害者的id值,lisi用户的id值为“2”,即修改为“2”。点击“forward”发送
7、注销当前用户,登录lisi用户后,点击“会员中心”,进入完善资料,发现已经修改成功
漏洞防范
1)永远不要相信来自客户端(用户)的输入。
2)执行关键操作前必须验证用户身份,多阶段功能的每一步都要验证用户身份。
3)对于直接对象引用,加密资源ID,以防止攻击者对ID进行枚举。
4)在前端实现的验证并不可靠,前端可以验证用户的输入是否合规,在服务器端验证用户权限。
思考总结
就拿yxcms越权这个例子来说吧,既然我们能够修改他的资料,那么我们肯定可以进行后一步操作的,比如说找回密码时可以通过邮箱找回,这样也就造成了用户密码的泄露,账号被窃取了,总之,越权属于危害较高的那种漏洞吧。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144327.html