Damn Vulnerable Web Application (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目標は、セキュリティ専門家が法的環境でスキルとツールをテストするのを支援し、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、学生と教師の両方が管理されたクラスで Web アプリケーションのセキュリティについて学ぶのを支援することです。部屋の環境。
DVWA の目的は、シンプルでわかりやすいインターフェイスを使用して、さまざまな難易度の最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアには文書化された脆弱性と文書化されていない脆弱性の両方が存在することに注意してください。これは意図的なものです。できるだけ多くの問題を発見してみることをお勧めします。
まったく脆弱な Web アプリケーションは非常に脆弱です。危険にさらされる可能性があるため、ホスティング プロバイダーのパブリック HTML フォルダーやインターネットに接続されたサーバーにはアップロードしないでください。 NAT ネットワーク モードに設定された仮想マシン (VirtualBox や VMware など) を使用することをお勧めします。ゲスト マシン内で、Web サーバーとデータベース用の XAMPP をダウンロードしてインストールできます。
当社は、誰かがこのアプリケーション (DVWA) を使用する方法については責任を負いません。アプリケーションの目的を明確にしており、悪意のある使用は行わないでください。私たちは警告を発し、ユーザーが稼働中の Web サーバーに DVWA をインストールできないようにする措置を講じました。 DVWA のインストールによって Web サーバーが侵害された場合、それは当社の責任ではなく、DVWA をアップロードしてインストールした人の責任となります。
このファイルは、Damn Vulnerable Web Application (DVWA) の一部です。
Damn Vulnerable Web Application (DVWA) はフリー ソフトウェアです。Free Software Foundation によって公開されている GNU General Public License の条件 (ライセンスのバージョン 3、または (ユーザーの選択による) のいずれか) に基づいて再配布および/または変更することができます。それ以降のバージョン。
Damn Vulnerable Web Application (DVWA) は役立つことを期待して配布されていますが、いかなる保証もありません。商品性や特定目的への適合性についての暗黙の保証もありません。 詳細については、GNU 一般公衆利用許諾書を参照してください。
GNU General Public License のコピーと、Damn Vulnerable Web Application (DVWA) を受け取っているはずです。 そうでない場合は、https://www.gnu.org/licenses/ を参照してください。
このファイルは複数の言語で利用できます。
アラビア語: アラビア語
中国語: 简体中文
フランス語: フランセ
韓国語: 한국어
ペルシア語: فارسی
ポーランド語: ポルスキ
ポルトガル語: Português
スペイン語: スペイン語
トルコ語: テュルクチェ
インドネシア: インドネシア
ベトナム語: ベトナム語
翻訳に貢献したい場合は、PR を送信してください。ただし、これは単に Google 翻訳を実行して送信すれば拒否されるという意味ではないことに注意してください。新しい「README.xx.md」ファイルを追加して、翻訳版を送信します。xx は、希望する言語の 2 文字コードです (ISO 639-1 に基づく)。
DVWA にはさまざまなバージョンがありますが、サポートされている唯一のバージョンは、公式 GitHub リポジトリからの最新ソースです。リポジトリからクローンを作成できます。
git clone https://github.com/digininja/DVWA.git
または、ファイルの ZIP をダウンロードします。
これは公式の DVWA スクリプトではなく、IamCarron によって書かれたものであることに注意してください。スクリプトの作成には多くの作業が費やされており、作成された時点では悪意のあるものは何もありませんでしたが、念のため、システム上でやみくもに実行する前にスクリプトを確認することをお勧めします。バグがある場合は、ここではなく IamCarron に報告してください。
Kali、Ubuntu、Kubuntu、Linux Mint、Zorin OS などの Debian ベースのマシン上の DVWA の自動構成スクリプト
注: このスクリプトには root 権限が必要で、Debian ベースのシステム向けに調整されています。 root ユーザーとして実行していることを確認してください。
オペレーティング システム: Debian ベースのシステム (Kali、Ubuntu、Kubuntu、Linux Mint、Zorin OS)
権限: root ユーザーとして実行
これにより、@IamCarron によって作成されたインストール スクリプトがダウンロードされ、自動的に実行されます。レビューしたときの作成者とスクリプトを信頼していない場合、これはここには含まれませんが、誰かが不正行為を行う可能性は常にあり、そのため、レビューせずに他人のコードを実行するのが安全ではないと感じる場合は、自分で行う場合は、手動のプロセスに従ってください。ダウンロードしたら確認できます。
sudo bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh)"
スクリプトをダウンロードします。
wget https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh
スクリプトを実行可能にします。
chmod +x インストール-DVWA.sh
root としてスクリプトを実行します。
sudo ./Install-DVWA.sh
VirtualBox で実行されている Kali に DVWA をインストールする
XAMPP を使用して Windows に DVWA をインストールする
Windows 10 に脆弱な Web アプリケーション (DVWA) をインストールする
DVWA をインストールする最も簡単な方法は、Web サーバーをまだセットアップしていない場合は、XAMPP をダウンロードしてインストールすることです。
XAMPP は、Linux、Solaris、Windows、および Mac OS X 用の Apache ディストリビューションのインストールが非常に簡単です。パッケージには、Apache Web サーバー、MySQL、PHP、Perl、FTP サーバー、および phpMyAdmin が含まれています。
このビデオでは Windows のインストール プロセスを説明しますが、他の OS でも同様の手順になります。
hoang-himself と JGillam のおかげで、 masterブランチにコミットするたびに Docker イメージが構築され、GitHub Container Registry からプルダウンできるようになります。
取得内容の詳細については、事前に構築された Docker イメージを参照してください。
前提条件: Docker および Docker Compose。
Docker Desktop を使用している場合は、これらの両方がすでにインストールされている必要があります。
Linux 上の Docker Engine を希望する場合は、必ずそのインストール ガイドに従ってください。
上記のように、最新の Docker リリースのサポートを提供します。 Linux と、パッケージ マネージャーに付属の Docker パッケージを使用している場合は、おそらく動作しますが、サポートはベストエフォートでのみ行われます。
Docker をパッケージ マネージャー バージョンからアップストリームにアップグレードするには、Ubuntu、Fedora などのマニュアルに記載されているように、古いバージョンをアンインストールする必要があります。 Docker データ (コンテナー、イメージ、ボリュームなど) は影響を受けませんが、問題が発生した場合に備えて、その間は必ず Docker に通知し、検索エンジンを使用してください。
次に、開始するには:
docker versionとdocker compose version実行して、Docker と Docker Compose が正しくインストールされているかどうかを確認します。出力でバージョンを確認できるはずです。
例えば:
>>> docker version
Client:
[...]
Version: 23.0.5
[...]
Server: Docker Desktop 4.19.0 (106363)
Engine:
[...]
Version: 23.0.5
[...]
>>> docker compose version
Docker Compose version v2.17.3何も表示されない場合、またはコマンドが見つからないというエラーが表示される場合は、前提条件に従って Docker と Docker Compose をセットアップします。
このリポジトリを複製またはダウンロードして抽出します (「ダウンロード」を参照)。
選択した端末を開き、その作業ディレクトリをこのフォルダー ( DVWA ) に変更します。
docker compose up -d実行します。
DVWA はhttp://localhost:4280で利用できるようになりました。
コンテナーで DVWA を実行する場合、Web サーバーは通常のポート 80 ではなくポート 4280 でリッスンしていることに注意してください。この決定の詳細については、「別のポートで DVWA を実行したい」を参照してください。
ローカルで変更を加え、ローカルからプロジェクトをビルドしたい場合は、 compose.ymlに移動し、 pull_policy: alwaysをpull_policy: buildに変更します。
docker compose up -d実行すると、レジストリで利用可能なものに関係なく、Docker がローカルからイメージを構築するようになります。
pull_policyも参照してください。
理想的には、このアプリの開発とテストに使用する PHP の最新の安定バージョンを使用する必要があります。
PHP 5.x を使用しようとする人にはサポートは提供されません。
7.3 より前のバージョンには問題を引き起こす既知の問題があり、ほとんどのアプリは動作しますが、ランダムに動作しない可能性があります。このような古いバージョンを使用する正当な理由がない限り、サポートは提供されません。
Debian ベースの Linux ディストリビューションを使用している場合は、次のパッケージ(または同等のもの)をインストールする必要があります。
apache2
libapache2-mod-php
マリアDBサーバー
マリアDBクライアント
出典: link タグ:phpphp-mysqli 更新時間: 2020-12-01
php-gd
すべての最新バージョンを確実に入手できるように、その前にアップデートを行うことをお勧めします。
適切なアップデート apt install -y apache2 mariadb-server mariadb-client php php-mysqli php-gd libapache2-mod-php
このサイトは MariaDB ではなく MySQL で動作しますが、MySQL を正しく動作させるには変更を加える必要があるのに対し、MariaDB はそのままで動作するため、強くお勧めします。
DVWA には、設定ファイルのダミー コピーが同梱されており、これを所定の場所にコピーして、適切な変更を加える必要があります。 Linux では、DVWA ディレクトリにいると仮定して、これは次のように実行できます。
cp config/config.inc.php.dist config/config.inc.php
Windows では、ファイル拡張子を非表示にしている場合、これは少し難しくなる可能性があります。これについてよくわからない場合は、このブログ投稿で詳しく説明されています。
Windowsにファイル拡張子を表示させる方法
構成ファイルを変更する代わりに、環境変数を使用してほとんどの設定を設定することもできます。 Docker または Kubernetes のデプロイメントでは、これにより、新しい Docker イメージを作成せずに構成を変更できます。変数は config/config.inc.php.dist ファイルにあります。
デフォルトのセキュリティ レベルを「低」に設定する場合は、compose.yml ファイルに次の行を追加するだけです。
環境: - DB_SERVER=db - DEFAULT_SECURITY_LEVEL=低
データベースをセットアップするには、メイン メニューでSetup DVWAボタンをクリックし、次にCreate / Reset Databaseボタンをクリックします。これにより、データが入ったデータベースが作成/リセットされます。
データベースの作成中にエラーが発生した場合は、 ./config/config.inc.php内のデータベースの資格情報が正しいことを確認してください。これは、サンプル ファイルである config.inc.php.dist とは異なります。
変数はデフォルトで次のように設定されています。
$_DVWA[ 'db_server'] = '127.0.0.1';$_DVWA[ 'db_port'] = '3306';$_DVWA[ 'db_user' ] = 'dvwa';$_DVWA[ 'db_password' ] = 'p@ssw0rd ';$_DVWA[ 'db_database' ] = 'dvwa';
MySQL ではなく MariaDB を使用している場合 (Kali では MariaDB がデフォルトです)、データベースの root ユーザーは使用できないため、新しいデータベース ユーザーを作成する必要があることに注意してください。これを行うには、root ユーザーとしてデータベースに接続し、次のコマンドを使用します。
MariaDB [(none)]> create database dvwa;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> create user dvwa@localhost identified by 'p@ssw0rd';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> grant all on dvwa.* to dvwa@localhost;
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)一部のツールは認証で適切に機能しないため、DVWA では使用できません。これを回避するには、認証チェックを無効にする設定オプションがあります。これを行うには、構成ファイルで次のように設定するだけです。
$_DVWA[ '認証無効' ] = true;
また、実行するテストに適したセキュリティ レベルを設定する必要もあります。
$_DVWA[ 'default_security_level' ] = '低';
この状態では、ログインしたり Cookie を設定したりすることなく、すべての機能にアクセスできます。
./hackable/uploads/ - Web サービス (ファイル アップロード用) によって書き込み可能である必要があります。
Linux システムでは、おそらく/etc/php/xx/fpm/php.iniまたは/etc/php/xx/apache2/php.iniにあります。
リモート ファイル インクルード (RFI) を許可するには:
allow_url_include = on [allow_url_include]
allow_url_fopen = on [allow_url_fopen]
PHP ですべてのエラー メッセージが表示されるようにするには:
display_errors = on [表示エラー]
display_startup_errors = on [display_startup_errors]
変更を加えた後は、必ず php サービスまたは Apache を再起動してください。
これは「安全でない CAPTCHA」ラボでのみ必要です。そのラボを使用しない場合は、このセクションを無視してください。
https://www.google.com/recaptcha/admin/create から API キーのペアを生成しました。
これらは、 ./config/config.inc.phpの次のセクションに記述されます。
$_DVWA[ 'recaptcha_public_key' ]
$_DVWA[ 'recaptcha_private_key' ]
デフォルトのユーザー名 = admin
デフォルトのパスワード = password
...簡単に強引に実行される可能性があります ;)
ログインURL:http://127.0.0.1/login.php
注: DVWA を別のディレクトリにインストールした場合、これは異なります。
これらは、Debian、Ubuntu、Kali などの Debian ベースのディストリビューションを使用していることを前提としています。他のディストリビューションの場合は、これに従ってください。ただし、必要に応じてコマンドを更新してください。
Docker Desktop を使用している場合は、グラフィカル アプリケーションからログにアクセスできます。新しいバージョンではいくつかの細かい点が変更される可能性がありますが、アクセス方法は同じであるはずです。


ログにはターミナルからもアクセスできます。
ターミナルを開き、その作業ディレクトリを DVWA に変更します。
マージされたログを表示する
docker 構成ログ
ログをファイル (例: dvwa.logにエクスポートする場合
docker compose ログ > dvwa.log
いくつかの理由により、デフォルトではポート 80 を使用しません。
一部のユーザーはすでにポート 80 で何かを実行している可能性があります。
一部のユーザーはルートレス コンテナ エンジン (Podman など) を使用している可能性があり、80 は特権ポート (< 1024) です。追加の構成 ( net.ipv4.ip_unprivileged_port_startの設定など) が必要ですが、自分で調べる必要があります。
compose.ymlファイルのポート バインディングを変更することで、別のポートで DVWA を公開できます。たとえば、次のように変更できます。
ポート: - 127.0.0.1:4280:80
に
ポート: - 127.0.0.1:8806:80
DVWA はhttp://localhost:8806でアクセスできるようになりました。
自分のデバイスからだけでなく、ローカル ネットワークからも DVWA にアクセスできるようにしたい場合 (ワークショップ用にテスト マシンをセットアップしている場合など)、ポートから127.0.0.1:を削除できます。マッピング (または LAN IP に置き換えます)。このようにして、利用可能なすべてのデバイスでリッスンします。安全なデフォルトは、常にローカル ループバック デバイスでのみリッスンすることです。結局のところ、これはあなたのマシン上で実行される、非常に脆弱な Web アプリケーションです。
付属のcompose.ymlファイルは、Docker の起動時に DVWA とそのデータベースを自動的に実行します。
これを無効にするには、 compose.ymlファイル内のrestart: unless-stopped行を削除またはコメント アウトします。
この動作を一時的に無効にしたい場合は、 docker compose stop実行するか、Docker Desktop を使用してdvwa見つけて [停止] をクリックします。さらに、コンテナーを削除したり、 docker compose down実行したりできます。
Linux システムでは、Apache はデフォルトで 2 つのログ ファイル、 access.logとerror.logを生成します。Debian ベースのシステムでは、これらは通常/var/log/apache2/にあります。
エラー レポートや問題などを送信する場合は、これらの各ファイルの少なくとも最後の 5 行を含めてください。 Debian ベースのシステムでは、次のようにしてこれらを取得できます。
tail -n 5 /var/log/apache2/access.log /var/log/apache2/error.log
この問題が発生した場合は、ファイルの場所を理解する必要があります。デフォルトでは、Apache ドキュメント ルート (Web コンテンツの検索を開始する場所) は/var/www/htmlです。ファイルhello.txtをこのディレクトリに置いた場合、それにアクセスするにはhttp://localhost/hello.txtを参照します。
ディレクトリを作成し、そこにファイルを置いた場合 ( /var/www/html/mydir/hello.txt )、 http://localhost/mydir/hello.txtを参照する必要があります。
Linux はデフォルトで大文字と小文字が区別されるため、上記の例では、これらのいずれかを参照しようとすると、「 404 Not Foundが返されます。
http://localhost/MyDir/hello.txt
http://localhost/mydir/Hello.txt
http://localhost/MYDIR/hello.txt
これはDVWAにどのような影響を与えますか?ほとんどの人は git を使用して DVWA を/var/www/htmlに複製します。これにより、ディレクトリ/var/www/html/DVWA/が作成され、その中にすべての DVWA ファイルが含まれます。次に、 http://localhost/を参照し、 404またはデフォルトの Apache ようこそページを取得します。ファイルは DVWA にあるため、 http://localhost/DVWAを参照する必要があります。
もう 1 つのよくある間違いは、 http://localhost/dvwaを参照すると404返されることです。これは、Linux ディレクトリの一致に関する限り、 dvwaはDVWAではないためです。
したがって、セットアップ後にサイトにアクセスしようとして404発生した場合は、ファイルをインストールした場所、ファイルがドキュメント ルートからの相対位置、および使用したディレクトリの大文字と小文字が何であるかを考えてください。
通常、これは 1 つの構成上の問題であり、別の問題が隠れています。デフォルトでは、PHP はエラーを表示しないため、セットアッププロセス中にエラー表示をオンにするのを忘れた場合、データベースへの接続の失敗など、他の問題が発生するとアプリの読み込みが停止しますが、内容を知らせるメッセージが表示されます。間違っている場合は非表示になります。
これを修正するには、PHP 構成で説明されているように、 display_errorsとdisplay_startup_errorsを設定してから、Apache を再起動してください。
セットアップ スクリプトの実行時に次のメッセージが表示された場合は、構成ファイル内のユーザー名またはパスワードがデータベースに構成されているものと一致しないことを意味します。
Database Error #1045: Access denied for user 'notdvwa'@'localhost' (using password: YES).このエラーは、ユーザー名notdvwaを使用していることを示しています。
次のエラーは、構成ファイルが間違ったデータベースを指していることを示しています。
SQL: Access denied for user 'dvwa'@'localhost' to database 'notdvwa'ユーザーdvwa使用し、データベースnotdvwaに接続しようとしているということです。
最初に行うことは、構成ファイルに入力したと考えているものが実際に存在するものであることを再確認することです。
期待した内容と一致する場合、次に行うことは、コマンド ラインでユーザーとしてログインできるかどうかを確認することです。データベース ユーザーがdvwaで、パスワードがp@ssw0rdであると仮定して、次のコマンドを実行します。
mysql -u dvwa -pp@ssw0rd -D dvwa
注: -p の後にスペースはありません
次のように表示されたら、パスワードは正しいです。
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 14
Server version: 10.3.22-MariaDB-0ubuntu0.19.10.1 Ubuntu 19.10
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [dvwa]>コマンドラインで接続できるため、構成ファイルに問題がある可能性があります。再確認して、それでも動作しない場合は問題を提起してください。
次のようなメッセージが表示された場合は、使用しているユーザー名またはパスワードが間違っています。データベースのセットアップ手順を繰り返し、プロセス全体で同じユーザー名とパスワードを使用していることを確認してください。
ERROR 1045 (28000): Access denied for user 'dvwa'@'localhost' (using password: YES)次のメッセージが表示された場合、ユーザーの資格情報は正しいですが、ユーザーはデータベースにアクセスできません。再度、セットアップ手順を繰り返し、使用しているデータベース名を確認します。
ERROR 1044 (42000): Access denied for user 'dvwa'@'localhost' to database 'dvwa'最終的に発生する可能性のあるエラーは次のとおりです。
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)これは認証の問題ではなく、データベース サーバーが実行されていないことを示しています。以下から始めてください
sudoサービスmysqlの開始
これと同様のエラー:
Fatal error: Uncaught mysqli_sql_exception: Connection refused in /var/sites/dvwa/non-secure/htdocs/dvwa/includes/dvwaPage.inc.php:535データベース サーバーが実行されていないか、構成ファイル内の IP アドレスが間違っていることを意味します。
構成ファイル内の次の行を確認して、データベース サーバーがどこにあると予想されるかを確認してください。
$_DVWA[ 'db_server' ] = '127.0.0.1';
次に、このサーバーにアクセスして、サーバーが実行されていることを確認します。 Linux では、これは次のように実行できます。
systemctl ステータス mariadb.service
そして、あなたはこのようなものを探しています。重要なのは、 active (running)と書かれていることです。
● mariadb.service - MariaDB 10.5.19 データベース サーバー
ロード済み: ロード済み (/lib/systemd/system/mariadb.service; 有効; プリセット: 有効)
アクティブ: 2024-03-14 木 16:04:25 GMT 以降アクティブ (実行中)。 1週間5日前実行されていない場合は、次のコマンドで起動できます。
sudo systemctl mariadb.service を停止します
sudoに注意し、要求された場合は Linux ユーザー パスワードを必ず入力してください。
Windows の場合は、XAMPP コンソールでステータスを確認します。
MySQL の最新バージョンでは、PHP はデフォルト構成でデータベースと通信できなくなりました。セットアップ スクリプトを実行しようとして次のメッセージが表示された場合は、設定があることを意味します。
Database Error #2054: The server requested authentication method unknown to the client.2 つのオプションがあります。最も簡単なのは、MySQL をアンインストールして MariaDB をインストールすることです。以下は MariaDB プロジェクトの公式ガイドです。
https://mariadb.com/resources/blog/how-to-maigrate-from-mysql-to-mariadb-on-linux-in-five-steps/
あるいは、次の手順に従います。
root として、ファイル/etc/mysql/mysql.conf.d/mysqld.cnfを編集します。
[mysqld]行の下に、次の行を追加します: default-authentication-plugin=mysql_native_password
データベースを再起動します: sudo service mysql restart
データベース ユーザーの認証方法を確認します。
mysql> select Host,User, plugin from mysql.user where mysql.user.User = 'dvwa';+-----------+-------------- ----+----------------------+|ホスト |ユーザー |プラグイン |+-----------+---------------------+-------------- -------+|ローカルホスト |ドワワ | caching_sha2_password |+----------+---------------+-------------- -------+1 行セット (0.00 秒)
おそらくcaching_sha2_passwordが表示されるでしょう。その場合は、次のコマンドを実行します。
mysql> ALTER USER dvwa@localhost IDENTIFIED WITH mysql_native_password BY 'p@ssw0rd';
チェックを再実行すると、 mysql_native_password表示されるはずです。
mysql> select Host,User, plugin from mysql.user where mysql.user.User = 'dvwa';+-----------+------+---------- ---------------+|ホスト |ユーザー |プラグイン |+-----------+------+----------------------+|ローカルホスト |ドワワ | mysql_native_password |+-----------+------+----------------------+セット内の 1 行(0.00秒)
これらすべてが完了すると、セットアップ プロセスは通常どおりに動作するようになります。
詳細については、次のページを参照してください: https://www.php.net/manual/en/mysqli.requirements.php。
データベース サーバーが実行されていません。 Debian ベースのディストリビューションでは、これは次のように実行できます。
sudoサービスmysqlの開始
これらのエラーが発生する理由はいくつか考えられますが、最も可能性が高いのは、実行しているデータベース サーバーのバージョンが PHP のバージョンと互換性がないことです。
これは、最新バージョンの MySQL を PHP として実行していて、うまく動作しない場合によく発生します。最善のアドバイスは、MySQL を捨てて MariaDB をインストールすることです。これは私たちがサポートできないことです。
詳細については、以下を参照してください。
https://www.ryadel.com/en/fix-mysql-server-gone-away-packets-order-similar-mysql-関連-errors/
Apache には、Web サーバー上でコマンドを実行するのに十分な権限がない可能性があります。 Linux で DVWA を実行している場合は、root としてログインしていることを確認してください。 Windows では管理者としてログインします。
SELinux で問題が発生している可能性があります。 SELinux を無効にするか、次のコマンドを実行して Web サーバーがデータベースと通信できるようにします。
setsebool -P httpd_can_network_connect_db 1
最新のトラブルシューティング情報については、git リポジトリのオープン チケットとクローズ チケットの両方をお読みください。
https://github.com/digininja/DVWA/issues
チケットを送信する前に、リポジトリから最新バージョンのコードを実行していることを確認してください。これは最新リリースではなく、master ブランチからの最新コードです。
チケットを発行する場合は、少なくとも次の情報を送信してください。
オペレーティング·システム
報告しているエラーが発生した直後の Web サーバー エラー ログの最後の 5 行
データベース認証の問題の場合は、上記の手順を実行し、各手順のスクリーンショットを撮ります。これらを、データベース ユーザーとパスワードを示す構成ファイルのセクションのスクリーンショットとともに送信してください。
何が問題なのか、何が起こると予想されるのか、それを修正するために何をしようとしたのかについての完全な説明。 「ログインが壊れています」というメッセージだけでは、お客様の問題を理解し、解決するのに十分ではありません。
いくつかの脆弱性を詳しく説明し、それらを検出する方法と悪用する方法を示すチュートリアル ビデオをいくつか作成する予定です。これまでに作ったものは次のとおりです。
リフレクション XSS の検索と活用
これに対するサポートは限られているため、問題を提起する前に、単に「動作しない」と主張するのではなく、デバッグに取り組む準備ができていることを確認してください。
デフォルトでは、SQLi とブラインド SQLi はサイトで使用されている MariaDB/MySQL サーバーに対して実行されますが、代わりに SQLite3 に対して SQLi テストを実行するように切り替えることができます。
SQLite3 を PHP で動作させる方法については説明しませんが、 php-sqlite3パッケージをインストールしてそれが有効になっていることを確認するという単純なケースです。
切り替えるには、構成ファイルを編集して次の行を追加または編集します。
$_DVWA["SQLI_DB"] = "sqlite";$_DVWA["SQLITE_DB"] = "sqli.db";
デフォルトでは、ファイルdatabase/sqli.dbが使用されますが、もし失敗した場合は、 database/sqli.db.dist上にコピーするだけです。
課題は MySQL の場合とまったく同じで、代わりに SQLite3 に対して実行されるだけです。
皆様の貢献と、このプロジェクトの更新を続けていただきありがとうございます。
アイデアや何らかの改善がある場合、または単に協力したい場合は、プロジェクトへの貢献や参加を歓迎します。お気軽に PR を送信してください。
簡単に言えば、やめてください!
年に一度くらい、誰かがアプリで見つけた脆弱性についてレポートを提出します。その中にはよく書かれているものもあれば、有料のペネトレーション テスト レポートで見たよりも優れているものもあれば、単に「ヘッダーがありません。お金を払ってください」というものもあります。自分"。
2023 年に、誰かが脆弱性の 1 つに対して CVE を要求することを決定したとき、これはまったく新しいレベルに上昇し、CVE-2023-39848 が与えられました。非常に大騒ぎになり、これを修正するのに時間が無駄になりました。
アプリには脆弱性があり、それは意図的なものです。ほとんどは、レッスンとして取り組むための十分に文書化されたものですが、その他は「隠された」もの、つまり自分で見つけるものです。隠された追加物を見つけるスキルを本当に見せたい場合は、ブログ投稿を書くかビデオを作成してください。おそらく、それらについて、また、どのようにしてそれらを見つけたかについて知りたいと思う人がいるでしょう。リンクをお送りいただければ、そのリンクを参考文献に含めることもあります。
プロジェクトホーム: https://github.com/digininja/DVWA
DVWA チームによって作成されました