安全测试之不安全的直接对象引用

一、不安全的直接对象引用的概念

不安全的对象直接引用(Insecure direct object references),指一个已经授权的用户,通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。

二、不安全的直接对象引用出现的原因

  1. Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。

  2. 服务器上的具体文件名、路径或数据库关键字等内部资源被暴露在URL或网页中,攻击者可以尝试直接访问其他资源。

三、不安全的直接对象引用的实例

某网站的新闻检索功能可搜索指定日期的新闻,但其返回的URL中包含了指定日期新闻页面的文件名:http://example.test/online/news.asp?item=28Jan2016.html

攻击者可以尝试不同的目录层次来获得系统文件win.ini,例如,http://example.test/ online/news.asp? item=../../ winnt/win.ini。

澳大利亚税务局网站曾发生一位用户通过修改网站URL中的ABNID号而获得直接访问17000家公司税务信息的事件。

三、不安全的直接对象引用的防御措施

对于此安全风险的防御,主要从使用非直接的对象引用和检查权限来考虑,具体包括以下:

  1. 避免在URL或网页中直接引用内部文件名或数据库关键字。

  2. 可使用自定义的映射名称来取代直接对象名,例如, http://example.test/online/news.asp?item=0245

  3. 锁定网站服务器上的所有目录和文件夹,设置访问权限。

  4. 验证用户输入和URL请求,拒绝包含./或../的请求。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
HTTP参数污染测试是指通过恶意修改URL参数、表单数据或者Cookie中的值,来绕过应用程序的安全防护机制,从而进行非法操作或者获取敏感信息的一种攻击手法。为了测试应用程序是否存在HTTP参数污染漏洞,可以按照以下步骤进行测试: 1. 理解应用程序的业务逻辑和参数处理机制。 2. 构建恶意的URL参数、表单数据或Cookie值,通过修改这些值来观察应用程序的反应。 3. 检查应用程序是否会对URL参数、表单数据或Cookie值进行合理的验证和过滤,防止恶意修改。 4. 尝试提交恶意数据,并观察应用程序的反应。如果应用程序没有对恶意数据进行过滤或验证,可能会导致HTTP参数污染漏洞。 5. 分析应用程序的返回结果,查看是否存在异常行为或者响应报文中包含了敏感信息。 不安全直接对象引用是指应用程序未经过适当的权限验证,就将直接对象引用传递给用户,从而导致用户可以未经授权地访问或修改其他用户的数据。为了测试应用程序是否存在不安全直接对象引用问题,可以按照以下步骤进行测试: 1. 理解应用程序的权限管理机制和对象之间的关系。 2. 尝试直接访问其他用户的数据,检查应用程序是否对权限进行验证,防止未授权访问。 3. 尝试修改其他用户的数据,检查应用程序是否对操作进行验证,防止未授权修改。 4. 观察应用程序的反应,检查是否存在未经授权的访问或者修改操作。 5. 分析应用程序的代码,确认是否存在不安全直接对象引用漏洞。 在测试过程中,需要注意保证测试环境的安全性,避免对真实生产环境或者其他用户的数据造成不必要的损害。同时,测试人员应该具备相关的安全知识和经验,以确保测试的准确性和有效性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值