一、基础知识
水平越权
水平越权是指用户在系统中拥有超出其权限范围的访问权限。这可能导致安全漏洞和潜在的风险,因为用户可以访问他们不应该有权访问的敏感信息或执行他们不应该执行的操作。
垂直越权
垂直越权是指用户或攻击者利用系统中的漏洞或错误配置,获取比其权限等级更高的权限。这可能导致对系统中敏感数据或功能的访问和控制。
二、实验
实验步骤
使用工具:windows7系统 (ip:10.1.1.3)
工具路径:C:/tools
水平越权修改任意用户密码
访问 http://10.1.1.3/demo1
首先使用帐号密码 test/hetian 进行登录,会提示登录错误,请重新登录
使用帐号密码 tom/123456 登录进入后台
点击更改密码输入旧密码,要修改的新密码(hetian),以及确认密码(hetian),
进行抓包
将抓取到的数据包中的 username 字段的 tom 值修改为 test,然后点击forward发送数据包,修改密码后成功进入后台
easytalk 垂直权限提升
访问 http://10.1.1.3/easytalk/ 注册普通用户
通过代理设置,burpsuite进行拦截
访问后台地址:http://10.1.1.3/easytalk/admin.php使用test123 用户成功登录后台
aspcms 登录绕过
漏洞点: C:/phpstudy/www/aspcms/inc/AspCms_CommonFun.asp 。此系统系统通过 checkLogin 函数,来判断是否登录成功。
第一个判断,如果adminname的值为空,则跳出循环,并弹窗提示登录。这里只是判断了值是否为空,我们可以给adminname随意赋一个值,就可以跳过这层的判断。
第二个判断,定义了一个Permissions,他从cookie中取groupMenu的值,如果不等于all,并且为空,就会拒绝访问。因为cookie是用户可控的,这里只需将groupMenu的值改为all,就可以跳过这层判断。
第三个判断,如果adminrand的值不是数字,然后就会跳出。系统下面进行了sql查询,但是其中的adminrand用户可控,并且无过滤,接下来判断是否返回了一个1,如果返回1,则证明数据库中有我们传入的值。因此可以给adminName赋值为 admin’ or ‘1’='1 这样就能绕过第三层验证了。
按下F12->控制台,输入以下语句
![img](https://study-cdn2.yijinglab.com/guide-img/ECIDee9320adea6e062018031511354800001/b690281e-ca79-4f3d-b0ca-1c560fb0e2bc.png) document.cookie="groupMenu=all;"; document.cookie="adminrand=1;"; document.cookie="adminName=admin' or '1'='1;";