THM学习笔记——IDOR

IDOR是不安全直接对象引用的缩写,是一种访问控制漏洞。

这种漏洞可能发生在Web服务器接收用户提供的输入以检索对象(文件、数据、文档)时,对输入数据过于信任且未在服务器端进行验证以确认请求的对象是否属于请求它的用户。

想象一下你刚刚注册了一个在线服务,你想要更改个人资料。你点击的链接是http://online-service.thm/profile?user_id=1305。

好奇心让你尝试将user_id的值改为1000(http://online-service.thm/profile?user_id=1000)你发现你能够看到另一个用户的信息。这就是一个IDOR漏洞!

在编码的ID中查找IDORs

在页面之间传递数据时,无论是通过post数据、查询字符串还是cookie,Web开发人员通常会首先对原始数据进行编码。编码确保接收端的Web服务器能够理解内容。编码将二进制数据更改为ASCII字符串,通常使用a-z,A-Z,0-9和=字符进行填充。Web上最常见的编码技术是base64编码,通常很容易识别。您可以使用诸如https://www.base64decode.org/之类的网站解码字符串,然后编辑数据,然后再次使用https://www.base64encode.org/重新编码,然后重新提交Web请求,看看响应是否发生变化。

在散列的ID中查找IDORs

与编码的ID相比,散列的ID要复杂一些,但它们可能遵循可预测的模式,比如是整数值的散列版本。例如,如果使用md5哈希,编号123的ID将变为202cb962ac59075b964b07152d234b70。

通过将任何发现的哈希值放入https://crackstation.net/之类的Web服务中(该服务具有数十亿哈希到值的结果数据库),看看是否能找到任何匹配项,这是值得的。

在不可预测的ID中查找IDORs

如果无法使用上述方法检测ID,那么一个很好的IDOR检测方法是创建两个帐户并交换它们之间的ID号码。如果您可以在使用其他用户的ID号码查看其内容的同时仍然以不同的帐户登录(或根本未登录),则找到了有效的IDOR漏洞。

IDORs的位置

你正在针对的易受攻击的端点可能并不总是出现在地址栏中。它可能是浏览器通过AJAX请求加载的内容,或者是JavaScript文件中引用的内容。

有时端点可能具有未引用的参数,这在开发过程中可能会有些用处,但最终被推送到生产环境。例如,您可能会注意到对**/user/details的调用显示您的用户信息(通过您的会话进行身份验证)。但通过一种称为参数挖掘的攻击,您可以发现一个名为user_id的参数,您可以使用它来显示其他用户的信息,例如/user/details?user_id=123**。

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值