目录
越权漏洞
1、越权原理概述
2、越权分类
2.1、平行越权
2.2、垂直越权
3、越权防范:
逻辑漏洞
1、常见的逻辑漏洞
2、逻辑漏洞概述
3、逻辑漏洞防范:
越权漏洞
1、越权原理概述
如果使用A用户的权限去操作B用户的数据,A的权限小于B的权限,如果能够成功操作,则称之为越权操作。 越权漏洞形成的原因是后台使用了不合理的权限校验规则导致的。 一般越权漏洞容易出现在权限页面(需要登录的页面)增、删、改、查的的地方,当用户对权限页面内的信息进行这些操作时,后台需要对当前用户的权限进行校验,看其是否具备操作的权限,从而给出响应,而如果校验的规则过于简单则容易出现越权漏洞。
2、越权分类
2.1、平行越权
A用户和B用户属于同一级别用户,但各自不能操作对方个人信息,A用户如果越权操作B用户的个人信息的情况称为平行越权操作。
2.2、垂直越权
A用户权限高于B用户,B用户越权操作A用户的权限的情况称为垂直越权。
3、越权防范:
用户对权限页面进行操作时,后台需要对当前用户的权限进行校验,查看是否具备操作权限
逻辑漏洞
1、常见的逻辑漏洞
1.1、交易支付(修改金额为负数或为0)、密码修改(是否有原密码)、密码找回(1、改数据包跳过步骤 2、用自己的用户身份找回密码,在最后修改密码的时候抓包修改成其它用户 3、修改返回包,把0改成1或false改成true 4、手机号密码找回看一下返回包里面是否有手机验证码、5、邮箱密码找回的时候,试试修改邮箱,用别人的帐号找回,发邮件填写自己的邮箱、6、验证码长度短,纯数字可以直接burp暴破 7、同一验证码可以登录不同帐号 8、验证码纯数字,无时间限止 9、密码找回答案比较简单 或参数判断不严格)、越权修改、越权查询、突破限制等各类逻辑漏洞
环境准备:虚拟机windows2003 phpstudy2016 webug3.0靶场环境
访问webug靶场环境:
http://10.0.0.105/
选择第六关:这关需要RMB购买哦
用户名为:tom
密码为:123456
输入购买数量的金额大于余额,无法购买:
用bp抓包修改单价为0或负数,成功购买:(购买的金额大于余额)
bill1=10&bill2=20&num1=5&num2=6&uid=1
修改为:
bill1=0&bill2=0&num1=5&num2=6&uid=1
Shop7z
http://10.0.0.101:89/QuicklyCheck.asp
注册个账号:
找回密码--输入不存在的账号--点确定提醒用户名不存在:
攻击者可以通过此方式猜测存在的用户名
bp抓包发到重发器--重发几次请求测试验证码--发现验证码不过期,因此验证码不需要绕过。
请求包发到测试器--设置用户名变量--添加用户名字典进行爆破用户名:
成功破解存在的用户名:(lan123)
输入正确的用户名--bp抓包--提交--把请求包保存在bp重发器--然后放包--跳转到第2页(getpassword2.asp)
http://10.0.0.101:89/getpassword2.asp
输入正确的密码提示答案及邮箱--bp抓包--提交--把请求包保存在bp重发器--然后放包--跳转到第3页(getpassword3.asp)
http://10.0.0.101:89/getpassword3.asp
此页可尝试绕过:
再此页面用bp改包--输入错误用户名进行测试此页面对用户名是否做校验
此页面已对用户名做校验无法绕过,跳转到首页(getpassword.asp)
输入错误密码提示答案、电子邮件跳转到第三页并报错(getpassword3.asp)
http://10.0.0.101:89/getpassword3.asp
填写修改新的密码--bp抓包--提交--把请求包保存在bp重发器--然后放包--跳转到第admin页(changepasswordadmin.asp)
http://10.0.0.101:89/changepasswordadmin.asp?active=findpass
修改成功:
2、逻辑漏洞概述
我们对常见的漏洞进行过统计,发现其中越权操作和逻辑漏洞占比最高,在我们所测试过的平台中基本都有发现,包括任意查询用户信息、任意删除等行为;最严重的漏洞出现在账号安全,包括重置任意用户密码、验证码暴力破解等。
在OWASP Top 10中也有所提及,分别为不安全对象引用和功能级别访问控制缺失。
其中不安全对象引用指的是平行权限的访问控制缺失,比方说,A和B两个同为一个网站的普通用户,他们之间的个人资料是相互保密的,A用户的个人资料可以被B用户利用程序访问控制的缺失恶意查看,由于A用户和B用户之间是一个同级的账号,因此称为平行权限的访问控制缺失。功能级别访问控制缺失指的是垂直权限的访问控制缺失,比方说,A账号为普通账号、B账号为管理员账号,B账号的管理页面时必须是以管理员权限登录后方可查看,但A账号可通过直接输入管理页面URL的方式绕过管理员登录限制查看管理页面,由于A用户和B用户的权限是垂直关系,因此称为垂直权限的访问控制缺失。该类型属于业务设计缺陷的安全问题,因此传统的扫描器是无法发现的,只能通过手工的渗透测试去进行检查。在金融平台中以平行权限的访问控制缺失较为常见。
3、逻辑漏洞防范:
-
越权操作:
防范措施:实施严格的权限控制,确保每个操作都有对应的权限检查。使用最小权限原则,用户只能访问和操作其权限范围内的资源。 -
条件竞争:
防范措施:在并发环境下,使用锁机制或事务来保证数据的一致性,避免多个线程或进程同时修改同一资源。 -
参数校验不足:
防范措施:对所有输入参数进行严格的校验,确保其符合预期的格式和范围,防止非法输入导致的逻辑错误。 -
业务流程跳转:
防范措施:设计合理的业务流程,确保用户必须按照预定义的顺序完成操作,防止跳过必要的验证步骤。 -
状态机管理不当:
防范措施:使用状态机模型来管理业务状态,确保状态转换的合法性,防止非法状态转换。 -
异常处理不当:
防范措施:编写健壮的异常处理代码,确保所有可能的异常都被捕获并妥善处理,避免程序崩溃或泄露敏感信息。 -
重放攻击:
防范措施:使用一次性令牌、时间戳或序列号等机制,防止攻击者重复提交请求。 -
逻辑判断错误:
防范措施:仔细审查和测试逻辑判断语句,确保所有条件都被正确评估,避免因逻辑错误导致的安全漏洞。 -
会话管理不当:
防范措施:使用安全的会话管理机制,定期刷新会话ID,防止会话劫持。 -
依赖关系管理:
防范措施:定期检查和更新第三方库和框架,避免使用存在已知漏洞的组件。
声明:
- 此文章只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试留言私信,如有侵权请联系小编处理。