首先我们来讲一下什么是关键可控参数,也就是说像我们的一些关键参数,例如use ID order by ID就是一些关键的参数,必须是你的这么一个测试者,是能够去对其控制的。如果这个参数已经挟持了,或者说他有固定的这个值。那此时的话就不称为可控参数了。而关键就是你的改动必须能造成这个越权效果的一种称为关键参数。我们一定要快速定位到这种关键可控的这个参数之后,我们才能够更快速的去找到对应的这么一个越权漏洞。
那后面讲的这个坚持参数同变同控原则是什么意思,因为我们在一个请求信息里面可能会出现多个变量,或者说多个参数的这种情况。那我们一般就是先考虑的就是变化一个参数,其他的参数是不变化的。来看一下这个响应信息的变化情况。然后如果没有出现你想要的情况,你就可以考虑说再变一个变量,就是变两个变量,然后直到把全部变量变完,或者说去删除某些变量,这个就是称为我们的这个同变同控原则。
这里看得到控制其他变量不变,改变关键变量或同时变化,可能听完我讲大家可能觉得这些都是概念性的,大家可能会觉得很懵,那么我们就来看一下实例去讲解一下。在看实例之前我差点忘记了要跟大家提一提我们怎么去找这个关键变量,但这么一个参数来看一下。首先第一种,我把它归类为用户身份的ID,它里面主要的网络赋予用户的一个唯一标识,通过这个标识可以确定这个用户的,例如你的手机号、身份证号,或者说你证件号,用户ID这些是不是都是唯一的,因为你想一下一个网站,你注册的这个用户名肯定不会重复,因为它写入数据库,它肯定会去教育你的中这个用户是否存在,如果有的话,就不要你继续注册,所以用户ID也是他们的唯一的这么一个标识他身份的这么一个参数,这种就是用于去标识我们这个使用者在网站里面的这个用户身份了,就称为用户身份来的。
那第二个叫用户属性ID,用户属性ID也就是用户在使用网站时候所产生的这么一个属性ID,例如他在下订单的时候,是不是就会造成有这个订单号,或者说它在打开个人中心的时候,是不是可以修改它的一些资料,可能会有一些参数的值的变化。还有什么地址ID。记录号ID。这些你可以理解为他这个身份所成熟的这么一个ID,或者说它属性,例如我们人的属性是不是可以思考,可以去跑步,可以去唱歌,可以去游泳。就是我们人的这个属性,而这里的用户属性ID也就是根据我们在进行某个某类操作,而产生的这个属性aid大家要清楚。
好,我们来看一下,水平越权基于身份ID等。看到这个例子,我们可以看得到,在这里的话,我们看到这个关键的参数,它这个是get方式,get方式我们就将目标或者说将重心去看它的这个 URL,因为我们都知道参数数值的时候是放在这个 URL上面去的,而我们post方式是放在请求正文里面去的,这一点大家一定要区别开来。我们看到这里只有两个参数,我们怎么去确定哪个是关键参数,我们可以从它的一个语义化,大部分程序员他在编写代码的时候,都是遵循着语义化的这么一个概念。
还没有评论,来说两句吧...