目录
四、越权检测-Burpsuite插件Authz安装测试(插件使用)
四、某商场系统商品支付逻辑测试-数量,订单(购买--截包--改包--放包)
33、逻辑越权之水平垂直越权
原理
1.垂直越权访问
普通用户->计划专员->超级查看员->超级管理员
水平越权访问
用户A->用户B->用户C->用户D
2.水平,垂直越权,未授权访问
解释,原理,检测,利用,防御等
水平越权:通过更换的某个 ID 之类的身份标识,从而使 A 账号获取(修改、删除等)B 账号数据(权限相同)。
逻辑越权:使用低权限身份的账号,发送高权限账号才能有的请求,获得其高权限的操作。
未授权越权:通过删除请求中的认证信息后重放该请求,依旧可以访问或者完成操作(有些操作要管理员才行)。
3.原理:
*前端安全造成:界面
判断用户等级后,代码界面部分进行可选显示
根据用户权限,显示不同的网页。即普通用户与管理员使用相同页面,只是部分内容对普通用户隐藏。应该在操作功能时判断权限,决定给不给与执行,而不是在显示页面时,且只隐藏网页内容
*后端安全造成:数据库
user 表(管理员和普通用户同表)
id,username,password,usertype
1,admin,123456,1
2,xiaodi,11111,2
在user表(管理员和普通用户同表)中使用一项数据的值(如usertype、groupid)判断用户的权限
4.检测
登录用户 admin 或 xiaodi 时,代码是如何验证这个级别?(usertype 判断)
如果在访问数据包中有传输用户的编号、用户组编号或类型编号的时候,那么尝试对这个值进行修 改,就是测试越权漏洞的基本。
5.获取高权限操作的数据包
*修改当前页面的数据包实现越权,用于当前页面有对应选项但无操作权限时
*下载网站源码,本地搭建,模拟抓取
6修复防御方案
*前后端同时对用户输入信息进行校验,双重验证机制--后端数据库,将用户权限写入数据库
*调用功能前验证用户是否有权限调用相关功能--loginedit.php对用户权限校验
*执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
*直接对象引用的加密资源 ID,防止攻击者枚举 ID,敏感数据特殊化处理--在参数值进行加密,如对card_id的值加密
*永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤
一、Pikachu-本地水平垂直越权演示(漏洞成因)
1.水平越权
输入账号kobe,密码123456登录
登陆进去后点击查看个人信息抓包
这里看到有username参数,可以更改用户,这里更改为lucy放包
发现个人信息已经更改,水平越权成功
#查看源代码
---判断了是否登录就没有再做检查(猜测这里检查的cookie)
---检测传参submit和username,只有两者不为空就行
---具体显示的信息为username参数传递的用户名
2.垂直越权
先用admin/123456账户登录,管理界面可以添加删除用户
创建用户后使用用burp抓包发送到repeter模块当中,在proxy模块中将数据包丢弃。
切换普通用户pikachu/000000登录,只有读取权限
浏览器获取cookie,将获取的cookie的替换为repeater中的cookie最后发送
刷新网站发现xiaoD用户创建成功,垂直越权成功(条件,获取管理员添加用户的数据包)
(获取数据包的信息方法)
---前端有操作,可以直接抓包
---盲猜添加用户的数据包信息
---获取网站的源码,在本地进行测试
---漏洞有些鸡肋,但是在用户登录的时候,可以利用该漏洞直接进入管理员界面。
3.越权漏洞产生的原理解析:
#前端安全造成:界面
---代码在这里只有判断用户是不是管理员,然后进行展示(判断用户等级后,代码界面部分进行可选显示)(不安全)
---user.php界面和admin.php界面的区别(可以添加用户)
---但是只是前端解密有区别,并没有说非管理员用户不能编辑添加用户。因为:在adminedit.php文件中,只是判断了是否登录,没有再次判断级别问题就将数据插入数据库(也就是在代码层面判断等级,没有写入数据库)。
---pikachu靶场的垂直越权是通过游客的cookie,去访问管理员的添加用户的文件(也就是adminedit.php文件),由于adminedit.php只验证是否登录,所以存在越权漏洞。而在登录跳转是(login.php文件)存在等级验证,所以跳转到了普通用户的前端界面(PHP前端和脚本写在一个文件里面),因此,普通用户前端无法编辑添加用户。
#后端安全造成:数据库
---user 表(管理员和普通用户同表)中,存在如id,username,password,usertype的列名,其中,通过usertype这种列名来判断用户的等级。
二、墨者水平-身份认证失效漏洞实战(漏洞成因)
身份认证失效漏洞实战_身份认证和会话管理_在线靶场_墨者学院_专注于网络安全人才培养
输入test/test登陆抓包
放包看到uid参数和card_id参数可以利用,这里利用card_id这是每个用户的id
将代码发送给intruder,将后两位设置为攻击参数
长度不一样的有用户
点击马春生的图片发现地址
将card_id 改为相应的值发送
得到用户名和密码,密码用MD5解密
得到密码,登录
成功水平越权,获取key
---本关是通过test用户的cookie,水平越权到马春生用户
---切换用户的参数是什么?uid还是card_id或者都有(这里需要判断)
---获取到马春生的card_id(这里是通过图片获取(这一点不确定),大部分网站可能以用户网站的参数)
补充:
真实网站用户切换的特点(discuz)
#网站的用户的切换是根据uid来进行
三、越权检测-小米范越权漏洞检测工具(工具使用)
1.设置监听端口8999,获取数据包
2.更改浏览器代理端口
3. 在pikachu水平越权下登录kobe 123456
4. 在工具的浏览器中登录lucky 123456
获取到了登录信息和cookie
5.将kobe的get路径复制到lucy的浏览器访问
用lucy的cookie(还有post内容)访问kobe个人信息(URL路径)
这里按理说应该更换为kobe的登陆信息
这里报错了真奇怪
工具功能总结
---相当于多个浏览器,而且可以抓包查看,设置/获取cookie等等(鸡肋)
四、越权检测-Burpsuite插件Authz安装测试(插件使用)
1.在burpsuite中插件管理找到Authz安装
2.登录mozhe靶场test用户抓包,抓取card_id
发送给intruder设置参数攻击,同上
将攻击结果全部发送给authz,并且将test的cookie复制到authz中
选取所有数据包,右键run
下面没有拦截的,都可能存在越权漏洞
---这里显示都存在,但是有些返回没信息,因为:这里检查的是是否有拦截,而这里都没拦截
---判断越权漏洞的原理:根据状态码200来判断,因为:越权是你用自己的cookie去访问别的用户,如果访问失败,会跳转到登录界面,状态码就是以300或者400开头。
3.pikachu中测试
登录Kobe抓包
---分别将username修改为Kobe,lucy,1,2,lili发送到authz,还有关卡登陆页面
修改authz的cookie为Kobe用户的cookie
选取全部数据包,然后点run
200都能访问到,也就是存在越权漏洞,302不能访问没有越权
34、逻辑越权之支付数据篡改安全
原理
#登录应用功能点安全问题
检测功能点,检测,危害,修复方案等检测:存在登录功能点的地方
危害:不用账号密码直接登录
登陆点越权方法:
1.登录点暴力破解:如果数