web applicationpenetrationtest その1_解答
TRANSCRIPT
![Page 1: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/1.jpg)
1 /42
Web Application Penetration Testその 1 解答長谷川
![Page 2: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/2.jpg)
2 /42
1. Web アプリのペネトレーションテストのスキルアップ
目的
![Page 3: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/3.jpg)
3 /42
ツール、言語◦ ブルートフォース特化系
Hydra ★会社で使うと多分怒られる◦ プロキシ系
Burp Suite ★会社で使うと多分怒られる◦ スクリプト言語系
Python ★使い方次第 問題 & 解き方 & 解答
もくじ
![Page 4: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/4.jpg)
4 /424
問題Pentester Academy の無料の問題からいくつか出題ツール使うか、プログラミングして解いてください。ツール: Hydra 、 Metasploit 、 IronWASP 、 ZAP などなど、、単純な認証突破の問題なので Python とかでも解けます。
![Page 5: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/5.jpg)
5 /42
プロキシ型の WAP ツール。◦ Burp Proxy
ブラウザ -target アプリケーション間の MITM 。◦ Burp Spider
トラフィックの調査、脆弱性の発見等。◦ Burp Web Vulnerability Scanner
脆弱性のチェック。◦ Burp Sequencer
シーケンス番号のランダム性のチェック。などなど 便利なところ
◦ 勝手にチェックしてくれる。大体何でもできる。 イマイチなところ
◦ フリー版は機能制限あり。
Burp Suite
画面
![Page 6: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/6.jpg)
6 /42
パスワードクラッカー。◦ http 、 telnet 、 ftp 、 mysql 、、、等に対応。◦ http://www.thc.org/thc-hydra/
基本的な使い方# hydra –l ユーザー名 – p パスワード server protocol path# hydra –L ユーザー名リスト .txt –P パスワードリスト .txt server protocol pathprotocol の例: ftp ftps http[s]-{head|get} http[s]-{get|post}-form
便利なところ◦ 認証方式とかをある程度勝手に認識してくれる。高速。
イマイチなところ◦ 柔軟性に欠ける。
Hydra
![Page 7: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/7.jpg)
7 /42
Python 3 を使いました。 使ったライブラリ
◦ Requests ⇒ http 通信用◦ Hashlib ⇒ MD5 の計算用◦ base64 ⇒ Base64 の計算用◦ Itertools ⇒ パスワード文字列生成
Python
(使用例)def makePwList(str, n): pwList = [] a = list(itertools.product(str, repeat = n)) for b in a: pwList.append(''.join(b)) return pwList
def mymd5(str): return hashlib.md5(str.encode()).hexdigest()
![Page 8: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/8.jpg)
8 /42
情報収集: Reconnaissance◦ 情報を収集する。(データフロー、フィンガープリント、ソース)
Wireshark 、 Blind Elephant 、 httprint
マッピング: Mapping◦ ターゲットアプリケーションの検査。
Burp Spider 、 SprAJAX 、 WebScarab
発見: Discovery◦ ターゲットアプリケーションの脆弱性の発見。
エクスプロイト: Exploit◦ 脆弱性を実証する。
問題の解き方
SANS SEC542 より
![Page 9: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/9.jpg)
9 /42
http://pentesteracademylab.appspot.com/lab/webapp/1
上記のページにサインインしてください。ペネトレーションテスト練習サイトなので多少負荷かけても OK です。 ヒント 文字白にしてあるので、見たい人は見てください①Company Domain: PentesterAcademy.com② ユーザー名のヒント : jack, admin③ パスワードは 5 文字で xyz のみが使われている。 (例: xxyyz, xyzxy, xyxxx 、、、)
問題 1
![Page 10: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/10.jpg)
10 /42
情報収集: Reconnaissance◦ ヒントを使う。◦ パケット内容とソースから GET メソッド+ FORM 認証とわかる。◦ クエリストリング key= email, password
解き方
![Page 11: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/11.jpg)
11 /42
マッピング: Mapping 発見: Discovery
◦ Burp Suite 、ブラウザのプロキシ設定。◦ 1 回通信してパケットを取得。
解き方
![Page 12: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/12.jpg)
12 /42
マッピング: Mapping 発見: Discovery
◦ xyz でブルートフォース。
解き方Response の length が他と違って、内容に Failed の無いユーザー名、パスワードの組み合わせが 1 つ見つかる。
![Page 13: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/13.jpg)
13 /42ログイン成功!
![Page 14: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/14.jpg)
14 /42
http://pentesteracademylab.appspot.com/lab/webapp/basicauth
上記のページにサインインしてください。ペネトレーションテスト練習サイトなので多少負荷かけても OK です。 ヒント 文字白にしてあるので、見たい人は見てください①Company Domain: PentesterAcademy.com② ユーザー名のヒント : nick, admin③ パスワードは 5 文字で asd のみが使われている。 (例: asddd,aassd, ssdaa 、、、)
問題 2
![Page 15: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/15.jpg)
15 /42
情報収集: Reconnaissance◦ ヒントを使う。◦ パケット内容とソースから POST メソッド+ BASIC 認証とわかる。
解き方
![Page 16: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/16.jpg)
16 /42
マッピング: Mapping 発見: Discovery
◦ crunch でパスワードファイルを生成。◦ Hydra でユーザー名、パスワードを探す。
解き方
![Page 17: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/17.jpg)
17 /42ログイン成功!
![Page 18: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/18.jpg)
18 /42
http://pentesteracademylab.appspot.com//lab/webapp/auth/1/login
上記のページにサインインしてください。ペネトレーションテスト練習サイトなので多少負荷かけても OK です。 ヒント 文字白にしてあるので、見たい人は見てください①Company Domain: PentesterAcademy.com② ユーザー名のヒント : nick, admin③ パスワードは 5 文字で mno のみが使われている。 (例: mmmmm, nmonm, oooom 、、、)Location ヘッダーに注目。
問題 3
![Page 19: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/19.jpg)
19 /42
情報収集: Reconnaissance◦ ヒントを使う。◦ パケット内容とソースからメソッド不明+ BASIC 認証とわかる。◦ クエリストリング key= email, password
解き方
![Page 20: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/20.jpg)
20 /42
マッピング: Mapping 発見: Discovery
◦ Burp Suite 、ブラウザのプロキシ設定。◦ 1 回通信してパケットを取得。
解き方
メソッドが指定されていない場合 ⇒メソッドをいろいろ試す。 HEAD 、 GET 、 POST 、 PUT 、 PATCH 、、、
![Page 21: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/21.jpg)
21 /42
マッピング: Mapping 発見: Discovery
◦ mno でブルートフォース。
解き方Response の length 、Location header が他と違うのが 1 つ見つかる。
![Page 22: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/22.jpg)
22 /42ログイン成功!
![Page 23: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/23.jpg)
23 /42
http://pentesteracademylab.appspot.com//lab/webapp/digest
上記のページにサインインしてください。ペネトレーションテスト練習サイトなので多少負荷かけても OK です。 ヒント 文字白にしてあるので、見たい人は見てください①Company Domain: PentesterAcademy.com② ユーザー名のヒント : nick, admin③ パスワードは 5 文字で asd のみが使われている。 (例: asddd,aassd, ssdaa 、、、)
問題 4
![Page 24: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/24.jpg)
24 /42
情報収集: Reconnaissance◦ ヒントを使う。◦ パケット内容とソースから GET メソッド+ DIGEST 認証とわかる。
解き方
![Page 25: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/25.jpg)
25 /42
マッピング: Mapping 発見: Discovery
◦ crunch でパスワードファイルを生成。◦ Hydra でユーザー名、パスワードを探す。
解き方
![Page 26: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/26.jpg)
26 /42ログイン成功!
![Page 27: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/27.jpg)
27 /42
http://pentesteracademylab.appspot.com//lab/webapp/digest2
上記のページにサインインしてください。ペネトレーションテスト練習サイトなので多少負荷かけても OK です。 ヒント 文字白にしてあるので、見たい人は見てください①Company Domain: PentesterAcademy.com② ユーザー名のヒント : nick, admin③ パスワードは 5 文字で xyz のみが使われている。 (例: xxxyx,xyzxy, zzzzx 、、、)
問題 5
![Page 28: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/28.jpg)
28 /42
情報収集: Reconnaissance◦ ヒントを使う。◦ パケット内容とソースから GET メソッド+ DIGEST 認証とわかる。
解き方
![Page 29: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/29.jpg)
29 /42
マッピング: Mapping 発見: Discovery
◦ パケット情報をもとに Response パケットを生成する。 realm = "Pentester Academy" opeque = "" uri = "/lab/webapp/digest2/1" qop(qop-option) = 無し
解き方
quality of protection が無い場合の設定パラメーター( RFC 2617 )cnoncenonce-count This MUST NOT be specified if the server did not send a qop directive in the WWW-Authenticate header field.
![Page 30: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/30.jpg)
30 /42解き方Request の計算方法( RFC 2617 3.2.2 )MD5( MD5( ユーザー名 ":" realm ":" パスワード ) ":" nonce ":" MD5(HTTP のメソッド ":" コンテンツの URI))ヘッダの生成方法"Authorization" Digest username= ユーザー名 , realm=realm, nonce=nonce, uri=url, response=response
パケット内容を当てはめた結果MD5( MD5( ユーザー名 :Pentester Academy: パスワード ) : サーバーから取得した nonce: MD5(GET:/lab/webapp/digest2/1))ヘッダの生成方法"Authorization" Digest username= ユーザー名 , realm= Pentester Academy, nonce= サーバーから取得した nonce, uri=/lab/webapp/digest2/1, response= 上記で計算した response
![Page 31: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/31.jpg)
31 /42解き方
結果
![Page 32: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/32.jpg)
32 /42ログイン成功!
![Page 33: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/33.jpg)
33 /42
http://pentesteracademylab.appspot.com/lab/webapp/auth/form/1
上記のページにサインインしてください。ペネトレーションテスト練習サイトなので多少負荷かけても OK です。 ヒント 文字白にしてあるので、見たい人は見てください①Company Domain: PentesterAcademy.com② ユーザー名のヒント : nick, admin③ フォームのパスワードは 5 文字で mno のみが使われている。④BASIC 認証のパスワードは 5 文字で vie のみが使われている。
問題 6
![Page 34: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/34.jpg)
34 /42
情報収集: Reconnaissance◦ ヒントを使う。◦ パケット内容とソースから POST メソッド+ BASIC 認証とわかる。◦ Basic realm="PainGames 1.0 :)"
解き方
![Page 35: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/35.jpg)
35 /42
マッピング: Mapping 発見: Discovery
◦ プログラム
解き方
結果
![Page 36: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/36.jpg)
36 /42ログイン成功!
![Page 37: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/37.jpg)
37 /42
http://pentesteracademylab.appspot.com//lab/webapp/digest3
上記のページにサインインしてください。ペネトレーションテスト練習サイトなので多少負荷かけても OK です。 ヒント 文字白にしてあるので、見たい人は見てください① ユーザー名のヒント: nick, jack, vivek, admin, webadmin, sqladmin, jill, natasha② パスワードは 6 文字で 123xyz のみが使われている。③ 盗聴した pcap ファイルの情報を使ってよい。
問題 7
http-digest.pcap
![Page 38: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/38.jpg)
38 /42
情報収集: Reconnaissance◦ ヒントを使う。◦ パケット内容からGET メソッド+ FORM 認証とわかる。
◦ パケットの内容 username="webadmin" realm="Pentester-Academy" nonce="X95LDujmBAA=9c8ec8a0aeee0ddf7f24a5a75c57d0f90245d0f5" uri="/" algorithm=MD5 response="0fd7c603fdf61e89bfc9c95fb73e343a" qop=auth nc=00000001 cnonce="89b024ea3adb54ec"
解き方
![Page 39: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/39.jpg)
39 /42
マッピング: Mapping 発見: Discovery
◦ DIGEST 認証のパケットから、パスワードを算出する。
解き方
Request 計算方法( RFC 2617 3.2.2 )MD5( MD5( ユーザー名 ":" realm ":" パスワード ) ":" nonce ":" nc ":" cnonce ":" qop ":" MD5(HTTP のメソッド ":" コンテンツの URI))
パケットの内容をあてはめた結果MD5( MD5(webadmin:Pentester-Academy: パスワード ) : X95LDujmBAA=9c8ec8a0aeee0ddf7f24a5a75c57d0f90245d0f5: 00000001:89b024ea3adb54ec:auth:MD5(GET:/))
![Page 40: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/40.jpg)
40 /42
マッピング: Mapping 発見: Discovery
◦ プログラム
◦ 実行結果
解き方
![Page 41: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/41.jpg)
41 /42ログイン成功!
![Page 42: Web applicationpenetrationtest その1_解答](https://reader035.vdocuments.net/reader035/viewer/2022081505/589e219f1a28ab605b8b6b29/html5/thumbnails/42.jpg)
42 /42
SQL インジェクション ブラインド SQL インジェクション 反射型 XSS ( Reflected XSS ) 格納型 XSS ( Stored XSS ) DOM based XSS
CSRF
次回予告