Hello there, ('ω')ノ
プライベートeコマースで特権昇格のバグを見つけたのはどうしてか?を。
脆弱性:
特権の昇格
記事:
https://medium.com/infosec/an-interesting-story-of-privilege-escalation-1da021e7fd0
今回は、eコマースWebサイトで特権昇格のバグを見つけた方法に基づいていて。
これにより、管理者がショップに完全にアクセスできるようになって。
このeコマースサイトがredacted.comであると仮定すると。
redacted.comでは、管理者は他のユーザを管理者として追加したり。
他の役割を割り当てたりする権限を持っていて。
今回は、redacted.comで特権昇格のバグを見つけて。
管理者がショップに完全にアクセスできるようにした方法について説明することに。
まず、特権昇格の脆弱性とは何かについて。
特権の昇格は、通常のユーザが通常のユーザからは。
通常、妨げられている昇格されたリソースを取得できる脆弱性で。
redacted.comで、管理者が管理者以外の権限を持つユーザを。
自分のショップに追加すると、リクエストは次のように表示されて。
POST /seller/submitEditUser.json HTTP/1.1
Host: vulnerable.vulnerable.com
Connection: close
Content-Length: 63
Accept: application/json, text/javascript
Origin: https://vulnerable.vulnerable.com
X-XSRF-TOKEN:
User-Agent:
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: XXXX
JSID=JSID value; CSRFT=335131365a3ee; JSESSIONID=value; isg=ISGVALUE
role=4&language=670&active=true&userName=xxxx &userId=1010799
ここで、ISGパラメータはWebサイトにあるショップを開示して。
userIDパラメータは、アップグレードするユーザを開示して。
roleパラメータは、ユーザがショップで。
どの役割を割り当てる必要があるかを開示して。
JSIDパラメータは、自分らがショップの一部であるかどうかをチェックして。
ウェブサイトで3つのアカウントを作成することに。
UserA:ショップ管理者
UserB:ショップで管理者以外の役割を持っている人
UserC:ランダムショップの管理者 (ランダムアカウント)
UserCから、同じリクエストを送信して。
JSIDパラメータをUserBのパラメータに変更して。
そのショップの一部であることをWebサイトに通知して。
roleパラメータを1に変更すると。
自分の役割をadminにアップグレードするようにWebサイトに通知されて。
特権をアップグレードしようとしていたショップに一致するように。
ISGパラメータを変更して。
最後に、useridパラメータをUserBのパラメータに変更して。
UserCからリクエストを送信すると。
UserBの役割は、管理者の操作なしで管理者にアップグレードされて。
そして、自分がショップへの完全な管理者アクセスを取得することができて。
Best regards, (^^ゞ