在实战给客户做网站漏洞测试服务的时候发现客户网站存在一些越权漏洞。那样的话是会造成威胁的。甚至可以说我买东西,但是扣的是别人的钱,这样的话大家可能更加能理解一些。有的时候它是会有 这样的一些危害处理的,这里的话只是积分问题,所以还可以,但是要是涉及到这个人民币的话,那它就是一个比较危害很大的一个漏洞,针对于他的这个防范思路的话,仍然是百年不变的这样一个原则,就是说不要信任你的用户,对于一些敏感的数据,你一定要是验证了用户身份之后再去处理,这个验证用户身份,不要从前端当中去获取。
那这里的话它是通过uid直接去确认用户身份,是不可以的,我们是要从c者当中去获取用户数据,然后去进行一个验证的。还有就是你可以去写一些代码,然后来确定这个用户是否为他本人的这样一些用户。这个代码的写的话,要根据客户具体的功能去写,主要是要提醒大家注意这样一些问题,还有就是这个垂直越权的话其实更加直观一些,和未授权访问有相似之处,但是它可能会有一些验证,但是这些验证可能比较脆弱一些。
第一种情况无任何验证,这个的话就像我们的这个未授权访问一样,向访问的第一种情况,我们以本来不应该被我们执行的东西,然后我们以这个任意用户未授权访问去访问了,然后并且有权限去执行,那这个就属于一个垂直越权向上越全然后还有他仅仅用了这个前端的JS去进行一个验证,也就是他验证用户身份的时候,只用js验证,那么显然我们是可以将这个代码直接删掉,那这个验证就不存在了。
然后第三个它是用cookie来获取用户身份了,也就是你在登录的时候,我本来登录的应该是我自己的账号,但是我是修改了我账号的Poe信息,也就是这个服务端,它只是从会议当中去判断我是哪个用户了,所以这个的话,不再把它展开来讲,因为我们的那个会话认证中我已经说过很多次了,所以这在这里的话只是说它涉及到越权方面了,所以跟大家稍微提一下,这个就是将cookie值当中的 s给它修改成了我的名,然后直接去登录,就以管理的身份登录了这种工作。比较睿智了,但是可能更加直观一些,那目前的话也是存在这样一些垂直越权的,但更多情况下可能是他接口本来自信可能不会被这个为用户访问的,但是却被用户访问到了,那访问到之后一般他是没有做任何的处理的,导致我们直接越权进去就可以了。
改如何防范越权漏洞的发生呢,在这我可以给大家讲一下简单的办法,就是功能代码中一定要先验证用户的权限,是否属于这个用户,如果属于就执行,不属于就返回报错,如果想要全面的漏洞修复可以向网站漏洞修复公司寻求技术支持。