越权漏洞的概念
越权漏洞是一种很常见的逻辑安全漏洞。是由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致修改相关参数就可以拥有了其他账户的增、删、查、改功能,从而导致越权漏洞。 目前存在着两种越权操作类型:横向越权操作(水平越权)和纵向越权(垂直越权)操作。 越权一般分为水平越权和垂直越权。 水平越权是指相同权限下不同的用户可以互相访问 垂直越权是指使用权限低的用户可以访问到权限较高的用户 水平越权测试方法主要就是看看能否通过A用户操作影响到B用户 垂直越权的测试思路就是低权限用户越权使用高权限用户的功能,比如普通用户可使用管理员功能。
1.通过修改GET传参来越权(https://www.uedbox.com/post/9900/)
2.修改POST传参进行越权(https://www.uedbox.com/post/9549/)
3.修改cookie传参进行越权(https://www.uedbox.com/post/12566/) 抓取传参可以在浏览器、APP、应用程序(exe) 还有一类叫做未授权访问,严格意义上而言这个不属于越权漏洞,但是在日常测试中常常会遇见 (只要输入正确的网址就可以直接访问,例如/admin默认是登录,登录后跳转到user.php,然后你直接访问user.php,发现你直接有后台权限) https://www.uedbox.com/post/12151/ Web攻防之业务安全实战指南 (陈晓光 胡兵 张作峰 等 著) 建议下载PDF观看
应用在检查授权时存在纰漏,使得攻击者在获得低权限用户帐后后,可以利用一些方式绕过权限检查,访问或者操作到原本无权访问的高权限功能
一般分为平行越权和垂直越权和交叉越权(交叉就是既可以平行又可以垂直)
平行越权指在同一权限下的越权,比如越权操作其他同权限用户
而垂直越权是权限低的可以访问到权限高的,比如越权操作管理员
越权,是指因为逻辑漏洞而造成的权限控制不当,而提权,一般指的是拿到SHELL之后在服务器上面权限不够
看看A用户的操作能不能影响到B用户,抓取数据包修改参数,看看能不能成功修改或查看其他用户信息
一般在一些订单页面,登陆页面,修改资料页面等等
类似ID,user,uid这类身份标识类传参
修改资料时修改id
订单里遍历订单id
修改密码时修改id,user,修改他人密码
可能在GET,POST,COOKIE里
在app,网页,应用程序里都可以
一般而言没有
Id,user这类身份标识类的参数可能可以越权
会,有些cookie里的传参,就有可能进行加密传参
需要安全配置或权限认证的地址存在缺陷,输入正确地址后可以直接访问
未授权访问是可以直接去访问(不需要任何权限),而越权需要去修改参数去执行(需要低权限)
一般在网页后台页面,某些后期开发的页面 里可能存在未授权访问
扫描路径,直接去访问敏感目录也许就可以直接访问到后台
越权属于逻辑漏洞,一般平行越权可以打个中危,垂直或者交叉给个高危吧。
那么就要想办法尝试出他的加密方法,如果不知道怎么加密的话,这里基本上无法测试越权了
非常常见,并且逻辑类漏洞,漏扫工具无法扫描出来,基本上是高度安全的环境中首测目标
逻辑漏洞是因为业务逻辑出了问题所造成的,他本身单独可能不是漏洞,但是对于业务逻辑而言是漏洞,比如普通用户修改管理员密码,本质上就是执行SQL语句,并不是什么漏洞,但是在业务上面而言就有问题了,他不是技术层面的问题,而是逻辑层面,逻辑漏洞是渗透测试项目上面最最最最常见,也是最最最容易挖到的漏洞(很多比较重视安全的公司就只能挖这种吃饭,因为SQL|XSS|CSRF之类的完全挖不到)。
推荐本书,建议下载PDF观看:Web攻防之业务安全实战指南
越权,是指因为逻辑漏洞而造成的权限控制不当。
提权,一般指的是拿到SHELL之后在服务器上面权限不够。
对于渗透测试,可以对一些请求进行抓包操作,或者查看请求的 URL 地址,对于关键的参数修改下值查看下返回结果来初步判定。随后可以注册两个小号,相互辅助来确定是否存在越权。
常见的越权高发功能点有:根据订单号查订单、根据用户 ID 查看帐户信息、修改 / 找回密码等。
进来靶场看到网页以后
发现有注册和登录的框,并且没有验证码,应该是可以尝试爆破的~
点击注册页面,用户注册这么多窗口,这不得来试一试XXS
alert(1)
注入成功,喜获一个靶场网页高危漏洞
但是这和今天的越权没有半毛钱关系
所以回归正题,来进行越权复现
创建aa账号,然后退出抓包,发现还有弱口令爆破的漏洞
查看aa的cookie信息
realname=aa dlcs=6 username=aa bumen=aa loginname=aa danwei=aa shenfen=2 UserID=106
常见bb账号,使用同步aa
realname=bb dlcs=4 username=bb loginname=bb
UserID=107
假设我拥有的是bb的账号,但我知道有个aa的账号,不考虑爆破这种得到密码再控制的方式。
考虑bb的cookie越权到aa,然后修改aa的设法修改aa的密码,篡改aa里面的内容。
首先登录bb的账号抓包
发现页面能显示的是realname,username ,并且能够控制到底是谁的是UserID
在bb界面里选择修改资料,同时抓包
将realname,username都改为aa,并且将UserID改为106
就发现进入了aa账号下
并且修改资料都是aa的,那就先修改个密码,然后点击修改的按钮
抓包会发现,虽然username=aa 但是cookie还是bb的,
如果这个时候还不及时改变cookie,直接放包的话,虽然会显示修改成功,并且下个包cookie还是bb的,再放包,就发现回到了bb修改资料的界面,退出bb,尝试使用新换的aa的密码
就会发现,密码根本没有改成功。想想得回到修改aa密码后抓包的那步上去,要修改cookie
realname=aa,username=aa,userID=106
这次返回的页面就还是aa
退出重新使用修改过的aa密码登录,然后就成功了
但是我又想了想,这好麻烦呀,要知道对方的realname,username还有UserID
与其这个样子,还不如,知道账号名后爆破密码来的容易
那这样,这个越权就没有什么意义了!!!
应该还有什么方法,我就假设我只有一个aa的账号,我在aa登录后,抓包修改UserID为107,其他的什么都不动
放包发现,账号虽然是aa的但修改的是bb的信息
那我改变bb的密码和答案(也可以是其他的随便改)。然后点击修改抓包
发现cookie的信息还是aa的,继续将userID改为107(bb的),放包
在后面只要是aa的cookie,userID都改为107,直到退出登录
再次使用新的密码登录bb,发现登录成功!!
所以这才是水平越权嘛
当在一个平台上只有一个账号,通过在自己的账号里可以抓到包的ID,使自己虽然用户还是自己的情况下,但可以看到不是其他用户的信息,并且可以篡改这个ID的信息。这才是水平越权吧!!
可以发现在抓的包中不管是aa还是bb,admin都等于0,shenfen都是2,尝试改改数字,试了好几次,只有两个都改的时候,将admin=1,shenfen=1才能到达管理员模式,
当然,每次抓包都得cookie改
BWSsoft%5F2010=realname=bb&phone=bb&CookieDate=&admin=1&wxlb=&danwei=bb&shenfen=1&UserID=107&bumen=bb&loginname=bb&dlcs=8&username=bb&wxqy=
进入后台就可以看到你想看到的东西了。
再次声明,这是靶场,只谈论技巧,不准上升到生活
进去了,我概不负责