您的位置:首页 > 其它

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

2016-01-28 13:37 316 查看

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

不安全的对象直接引用(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家公司税务信息的事件。

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

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

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

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

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

验证用户输入和URL请求,拒绝包含./或../的请求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: