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

关注我们的人都能找到高薪工作

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

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

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

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

服务器上的具体文件名、路径或数据库关键字等内部资源被暴露在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请求,拒绝包含./或../的请求。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180406B0VYLC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券