Damn Vulnerable Web Application (DVWA) adalah aplikasi web PHP/MySQL yang sangat rentan. Tujuan utamanya adalah untuk menjadi bantuan bagi para profesional keamanan untuk menguji keterampilan dan alat mereka dalam lingkungan hukum, membantu pengembang web lebih memahami proses pengamanan aplikasi web dan untuk membantu siswa & guru untuk belajar tentang keamanan aplikasi web di kelas yang terkontrol. lingkungan ruangan.
Tujuan DVWA adalah untuk mempraktikkan beberapa kerentanan web yang paling umum , dengan berbagai tingkat kesulitan , dengan antarmuka sederhana dan lugas. Harap dicatat, ada kerentanan yang terdokumentasi dan tidak terdokumentasi pada perangkat lunak ini. Ini disengaja. Anda didorong untuk mencoba dan menemukan masalah sebanyak mungkin.
Aplikasi Web yang Sangat Rentan sangat rentan! Jangan mengunggahnya ke folder html publik penyedia hosting Anda atau server apa pun yang terhubung ke Internet , karena akan disusupi. Disarankan menggunakan mesin virtual (seperti VirtualBox atau VMware), yang diatur ke mode jaringan NAT. Di dalam mesin tamu, Anda dapat mengunduh dan menginstal XAMPP untuk server web dan database.
Kami tidak bertanggung jawab atas cara seseorang menggunakan aplikasi ini (DVWA). Kami telah memperjelas tujuan aplikasi dan tidak boleh digunakan untuk tujuan jahat. Kami telah memberikan peringatan dan mengambil tindakan untuk mencegah pengguna menginstal DVWA ke server web aktif. Jika server web Anda disusupi melalui instalasi DVWA, itu bukan tanggung jawab kami, melainkan tanggung jawab orang yang mengunggah dan menginstalnya.
File ini adalah bagian dari Aplikasi Web Rentan Sial (DVWA).
Damn Vulnerable Web Application (DVWA) adalah perangkat lunak gratis: Anda dapat mendistribusikannya kembali dan/atau memodifikasinya berdasarkan ketentuan Lisensi Publik Umum GNU sebagaimana diterbitkan oleh Free Software Foundation, baik versi 3 dari Lisensi tersebut, atau (sesuai pilihan Anda) versi apa pun yang lebih baru.
Aplikasi Web Rentan Sial (DVWA) disebarkan dengan harapan dapat bermanfaat, namun TANPA JAMINAN APAPUN; bahkan tanpa jaminan tersirat mengenai KELAYAKAN UNTUK DIPERDAGANGKAN atau KESESUAIAN UNTUK TUJUAN TERTENTU. Lihat Lisensi Publik Umum GNU untuk lebih jelasnya.
Anda seharusnya sudah menerima salinan Lisensi Publik Umum GNU bersama dengan Aplikasi Web yang Sangat Rentan (DVWA). Jika tidak, lihat https://www.gnu.org/licenses/.
File ini tersedia dalam berbagai bahasa:
Arab: العربية
Cina: 简体中文
Perancis: Français
Korea: 한국어
Persia: فارسی
Polandia: Polski
Portugis: Portugis
Spanyol: Español
Turki: Türkçe
Indonesia: Indonesia
Vietnam: Vietnam
Jika Anda ingin menyumbangkan terjemahan, silakan kirimkan PR. Namun perlu diperhatikan, ini tidak berarti hanya menjalankannya melalui Google Terjemahan dan mengirimkannya, itu akan ditolak. Kirimkan versi terjemahan Anda dengan menambahkan file 'README.xx.md' baru dengan xx adalah kode dua huruf dari bahasa yang Anda inginkan (berdasarkan ISO 639-1).
Meskipun ada berbagai versi DVWA, satu-satunya versi yang didukung adalah sumber terbaru dari repositori resmi GitHub. Anda dapat mengkloningnya dari repo:
git klon https://github.com/digininja/DVWA.git
Atau unduh ZIP file.
Catatan, ini bukan skrip DVWA resmi, ini ditulis oleh IamCarron. Banyak pekerjaan yang dilakukan untuk membuat skrip dan, ketika dibuat, skrip tersebut tidak melakukan sesuatu yang berbahaya, namun Anda disarankan untuk meninjau skrip tersebut sebelum menjalankannya secara membabi buta di sistem Anda, untuk berjaga-jaga. Silakan laporkan bug apa pun ke IamCarron, bukan di sini.
Skrip konfigurasi otomatis untuk DVWA pada mesin berbasis Debian, termasuk Kali, Ubuntu, Kubuntu, Linux Mint, Zorin OS...
Catatan: Skrip ini memerlukan hak akses root dan disesuaikan untuk sistem berbasis Debian. Pastikan Anda menjalankannya sebagai pengguna root.
Sistem Operasi: Sistem berbasis Debian (Kali, Ubuntu, Kubuntu, Linux Mint, Zorin OS)
Keistimewaan: Jalankan sebagai pengguna root
Ini akan mengunduh skrip instalasi yang ditulis oleh @IamCarron dan menjalankannya secara otomatis. Ini tidak akan disertakan di sini jika kami tidak memercayai penulis dan skrip seperti saat kami meninjaunya, namun selalu ada kemungkinan seseorang menjadi nakal, jadi jika Anda merasa tidak aman menjalankan kode orang lain tanpa meninjaunya sendiri, ikuti proses manual dan Anda dapat meninjaunya setelah diunduh.
sudo bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh)"
Unduh skripnya:
dapatkan https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh
Jadikan skrip dapat dieksekusi:
chmod +x Instal-DVWA.sh
Jalankan skrip sebagai root:
sudo ./Install-DVWA.sh
Menginstal DVWA di Kali berjalan di VirtualBox
Menginstal DVWA di Windows menggunakan XAMPP
Menginstal Aplikasi Web Rentan Sial (DVWA) di Windows 10
Cara termudah untuk menginstal DVWA adalah mengunduh dan menginstal XAMPP jika Anda belum memiliki pengaturan server web.
XAMPP adalah Distribusi Apache yang sangat mudah untuk diinstal untuk Linux, Solaris, Windows dan Mac OS X. Paket ini mencakup server web Apache, MySQL, PHP, Perl, server FTP dan phpMyAdmin.
Video ini memandu Anda melalui proses instalasi untuk Windows tetapi harus serupa untuk OS lain.
Terima kasih kepada hoang-dirinya dan JGillam, setiap komitmen ke cabang master
menyebabkan image Docker dibuat dan siap untuk ditarik dari GitHub Container Registry.
Untuk informasi lebih lanjut tentang apa yang Anda dapatkan, Anda dapat menelusuri image Docker bawaan.
Prasyarat: Docker dan Docker Compose.
Jika Anda menggunakan Docker Desktop, keduanya seharusnya sudah terinstal.
Jika Anda lebih suka Docker Engine di Linux, pastikan untuk mengikuti panduan instalasinya.
Kami memberikan dukungan untuk rilis Docker terbaru seperti yang ditunjukkan di atas. Jika Anda menggunakan Linux dan paket Docker yang disertakan dengan manajer paket Anda, ini mungkin akan berfungsi juga, tetapi dukungan hanya akan menjadi upaya terbaik.
Memutakhirkan Docker dari versi manajer paket ke versi upstream mengharuskan Anda menghapus instalan versi lama seperti yang terlihat di manual mereka untuk Ubuntu, Fedora, dan lainnya. Data Docker Anda (kontainer, gambar, volume, dll.) tidak akan terpengaruh, namun jika Anda mengalami masalah, pastikan untuk memberi tahu Docker dan menggunakan mesin pencari untuk sementara waktu.
Kemudian, untuk memulai:
Jalankan docker version
dan docker compose version
untuk melihat apakah Anda telah menginstal Docker dan Docker Compose dengan benar. Anda seharusnya dapat melihat versinya di output.
Misalnya:
>>> 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
Jika Anda tidak melihat apa pun atau mendapatkan kesalahan perintah tidak ditemukan, ikuti prasyarat untuk menyiapkan Docker dan Docker Compose.
Kloning atau unduh repositori ini dan ekstrak (lihat Unduh).
Buka terminal pilihan Anda dan ubah direktori kerjanya ke folder ini ( DVWA
).
Jalankan docker compose up -d
.
DVWA sekarang tersedia di http://localhost:4280
.
Perhatikan bahwa untuk menjalankan DVWA dalam kontainer, server web mendengarkan pada port 4280, bukan pada port biasa 80. Untuk informasi lebih lanjut mengenai keputusan ini, lihat Saya ingin menjalankan DVWA pada port yang berbeda.
Jika Anda membuat perubahan lokal dan ingin membangun proyek dari lokal, buka compose.yml
dan ubah pull_policy: always
menjadi pull_policy: build
.
Menjalankan docker compose up -d
akan memicu Docker untuk membuat image dari lokal terlepas dari apa yang tersedia di registri.
Lihat juga: pull_policy
.
Idealnya Anda harus menggunakan PHP versi stabil terbaru karena pada versi itulah aplikasi ini akan dikembangkan dan diuji.
Dukungan tidak akan diberikan kepada siapa pun yang mencoba menggunakan PHP 5.x.
Versi kurang dari 7.3 memiliki masalah umum yang akan menyebabkan masalah, sebagian besar aplikasi akan berfungsi, tetapi hal-hal acak mungkin tidak berfungsi. Kecuali Anda memiliki alasan kuat untuk menggunakan versi lama tersebut, dukungan tidak akan diberikan.
Jika Anda menggunakan distribusi Linux berbasis Debian, Anda perlu menginstal paket-paket berikut (atau yang setara) :
apache2
libapache2-mod-php
mariadb-server
mariadb-klien
php php-mysqli
php-gd
Saya akan merekomendasikan melakukan pembaruan sebelum ini, supaya Anda memastikan Anda mendapatkan versi terbaru dari semuanya.
pembaruan yang tepat tepat instal -y Apache2 mariadb-server mariadb-klien php php-mysqli php-gd libapache2-mod-php
Situs ini akan bekerja dengan MySQL, bukan MariaDB, tetapi kami sangat menyarankan MariaDB karena ini berfungsi langsung sedangkan Anda harus membuat perubahan agar MySQL berfungsi dengan benar.
DVWA dikirimkan dengan salinan tiruan dari file konfigurasinya yang perlu Anda salin ke tempatnya dan kemudian buat perubahan yang sesuai. Di Linux, dengan asumsi Anda berada di direktori DVWA, hal ini dapat dilakukan sebagai berikut:
cp config/config.inc.php.dist config/config.inc.php
Di Windows, ini bisa menjadi sedikit lebih sulit jika Anda menyembunyikan ekstensi file, jika Anda tidak yakin tentang hal ini, postingan blog ini menjelaskan lebih lanjut tentangnya:
Cara Membuat Windows Menampilkan Ekstensi File
Daripada mengubah file konfigurasi, Anda juga dapat mengatur sebagian besar pengaturan menggunakan variabel lingkungan. Dalam penerapan Docker atau Kubernetes, ini memungkinkan Anda untuk mengubah konfigurasi tanpa membuat image Docker baru. Anda akan menemukan variabel di file config/config.inc.php.dist.
Jika Anda ingin menyetel tingkat keamanan default ke "rendah", cukup tambahkan baris berikut ke file composer.yml:
lingkungan: - DB_SERVER=db - DEFAULT_SECURITY_LEVEL=rendah
Untuk mengatur database, cukup klik tombol Setup DVWA
di menu utama, lalu klik tombol Create / Reset Database
. Ini akan membuat/mereset database untuk Anda dengan beberapa data di dalamnya.
Jika Anda menerima kesalahan saat mencoba membuat database, pastikan kredensial database Anda di ./config/config.inc.php
sudah benar. Ini berbeda dengan config.inc.php.dist yang merupakan file contoh.
Variabel diatur sebagai berikut secara default:
$_DVWA[ 'db_server'] = '127.0.0.1';$_DVWA[ 'db_port'] = '3306';$_DVWA[ 'db_user' ] = 'dvwa';$_DVWA[ 'db_password' ] = 'p@ssw0rd ';$_DVWA[ 'db_database' ] = 'dvwa';
Catatan, jika Anda menggunakan MariaDB dan bukan MySQL (MariaDB adalah default di Kali), maka Anda tidak dapat menggunakan pengguna root database, Anda harus membuat pengguna database baru. Untuk melakukannya, sambungkan ke database sebagai pengguna root lalu gunakan perintah berikut:
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)
Beberapa alat tidak berfungsi dengan baik dengan autentikasi sehingga tidak dapat digunakan dengan DVWA. Untuk menyiasatinya, ada opsi konfigurasi untuk menonaktifkan pemeriksaan otentikasi. Untuk melakukan ini, cukup atur yang berikut ini di file konfigurasi:
$_DVWA[ 'disable_authentication' ] = benar;
Anda juga perlu mengatur tingkat keamanan ke tingkat yang sesuai dengan pengujian yang ingin Anda lakukan:
$_DVWA[ 'default_security_level' ] = 'rendah';
Dalam keadaan ini, Anda dapat mengakses semua fitur tanpa perlu login dan mengatur cookie apa pun.
./hackable/uploads/
- Harus dapat ditulisi oleh layanan web (untuk Unggah File).
Pada sistem Linux, kemungkinan ditemukan di /etc/php/xx/fpm/php.ini
atau /etc/php/xx/apache2/php.ini
.
Untuk mengizinkan Penyertaan File Jarak Jauh (RFI):
allow_url_include = on
[allow_url_include]
allow_url_fopen = on
[izinkan_url_fopen]
Untuk memastikan PHP menampilkan semua pesan kesalahan:
display_errors = on
[display_errors]
display_startup_errors = on
[display_startup_errors]
Pastikan Anda me-restart layanan php atau Apache setelah melakukan perubahan.
Ini hanya diperlukan untuk lab "CAPTCHA Tidak Aman", jika Anda tidak bermain-main dengan lab tersebut, Anda dapat mengabaikan bagian ini.
Menghasilkan sepasang kunci API dari https://www.google.com/recaptcha/admin/create.
Ini kemudian masuk ke bagian berikut dari ./config/config.inc.php
:
$_DVWA[ 'recaptcha_public_key' ]
$_DVWA[ 'recaptcha_private_key' ]
Nama pengguna default = admin
Kata sandi bawaan = password
...dapat dengan mudah dipaksakan;)
URL Masuk: http://127.0.0.1/login.php
Catatan: Ini akan berbeda jika Anda menginstal DVWA ke direktori lain.
Ini mengasumsikan Anda menggunakan distro berbasis Debian, seperti Debian, Ubuntu dan Kali. Untuk distro lain, ikuti terus, tetapi perbarui perintah jika perlu.
Jika Anda menggunakan Docker Desktop, log dapat diakses dari aplikasi grafis. Beberapa detail kecil mungkin berubah dengan versi yang lebih baru, tetapi metode aksesnya harus sama.
Log juga dapat diakses dari terminal.
Buka terminal dan ubah direktori kerjanya menjadi DVWA
Tampilkan log yang digabungkan
buruh pelabuhan menulis log
Jika Anda ingin mengekspor log ke file, misalnya dvwa.log
buruh pelabuhan menulis log > dvwa.log
Kami tidak menggunakan port 80 secara default karena beberapa alasan:
Beberapa pengguna mungkin sudah menjalankan sesuatu pada port 80.
Beberapa pengguna mungkin menggunakan mesin kontainer tanpa root (seperti Podman), dan 80 adalah port yang memiliki hak istimewa (<1024). Konfigurasi tambahan (misalnya pengaturan net.ipv4.ip_unprivileged_port_start
) diperlukan, tetapi Anda harus melakukan riset sendiri.
Anda dapat mengekspos DVWA pada port yang berbeda dengan mengubah pengikatan port di file compose.yml
. Misalnya, Anda bisa berubah
port: - 127.0.0.1:4280:80
ke
port: - 127.0.0.1:8806:80
DVWA sekarang dapat diakses di http://localhost:8806
.
Jika Anda ingin DVWA tidak hanya dapat diakses secara eksklusif dari perangkat Anda sendiri, namun juga di jaringan lokal Anda (misalnya karena Anda menyiapkan mesin uji untuk bengkel), Anda dapat menghapus 127.0.0.1:
dari port pemetaan (atau ganti dengan IP LAN Anda). Dengan cara ini ia akan mendengarkan di semua perangkat yang tersedia. Default yang aman adalah hanya mendengarkan di perangkat loopback lokal Anda. Bagaimanapun, ini adalah aplikasi web yang sangat rentan, berjalan di mesin Anda.
File compose.yml
yang disertakan secara otomatis menjalankan DVWA dan databasenya saat Docker dimulai.
Untuk menonaktifkan ini, Anda dapat menghapus atau mengomentari baris restart: unless-stopped
di file compose.yml
.
Jika Anda ingin menonaktifkan perilaku ini untuk sementara, Anda dapat menjalankan docker compose stop
, atau gunakan Docker Desktop, temukan dvwa
dan klik Stop. Selain itu, Anda dapat menghapus kontainer, atau menjalankan docker compose down
.
Pada sistem Linux, Apache menghasilkan dua file log secara default, access.log
dan error.log
dan pada sistem berbasis Debian, ini biasanya ditemukan di /var/log/apache2/
.
Saat mengirimkan laporan kesalahan, masalah, dan sebagainya, harap sertakan setidaknya lima baris terakhir dari masing-masing file ini. Pada sistem berbasis Debian Anda bisa mendapatkan ini seperti ini:
tail -n 5 /var/log/apache2/access.log /var/log/Apache2/error.log
Jika Anda mengalami masalah ini, Anda perlu memahami lokasi file. Secara default, root dokumen Apache (tempat ia mulai mencari konten web) adalah /var/www/html
. Jika Anda meletakkan file hello.txt
di direktori ini, untuk mengaksesnya Anda perlu menelusuri http://localhost/hello.txt
.
Jika Anda membuat direktori dan meletakkan file di sana - /var/www/html/mydir/hello.txt
- Anda perlu menelusuri http://localhost/mydir/hello.txt
.
Linux secara default peka huruf besar-kecil dan dalam contoh di atas, jika Anda mencoba menelusuri salah satu dari ini, Anda akan mendapatkan 404 Not Found
:
http://localhost/MyDir/hello.txt
http://localhost/mydir/Hello.txt
http://localhost/MYDIR/hello.txt
Bagaimana pengaruhnya terhadap DVWA? Kebanyakan orang menggunakan git untuk mengkloning DVWA ke /var/www/html
, ini memberi mereka direktori /var/www/html/DVWA/
dengan semua file DVWA di dalamnya. Mereka kemudian menjelajah ke http://localhost/
dan mendapatkan halaman selamat datang 404
atau default Apache. Karena file berada di DVWA, Anda harus menelusuri http://localhost/DVWA
.
Kesalahan umum lainnya adalah menelusuri http://localhost/dvwa
yang akan menghasilkan 404
karena dvwa
bukan DVWA
sejauh menyangkut pencocokan direktori Linux.
Jadi setelah pengaturan, jika Anda mencoba mengunjungi situs tersebut dan mendapatkan 404
, pikirkan di mana Anda menginstal file tersebut, di mana lokasinya relatif terhadap root dokumen, dan bagaimana direktori yang Anda gunakan.
Ini biasanya merupakan satu masalah konfigurasi yang menyembunyikan masalah lain. Secara default, PHP tidak menampilkan kesalahan, jadi jika Anda lupa mengaktifkan tampilan kesalahan selama proses pengaturan, masalah lain, seperti kegagalan untuk terhubung ke database, akan menghentikan pemuatan aplikasi tetapi pesan yang memberitahu Anda apa salah akan disembunyikan.
Untuk memperbaikinya, pastikan Anda mengatur display_errors
dan display_startup_errors
seperti yang tercakup dalam Konfigurasi PHP dan kemudian restart Apache.
Jika Anda melihat hal berikut saat menjalankan skrip pengaturan, itu berarti nama pengguna atau kata sandi di file konfigurasi tidak cocok dengan yang dikonfigurasi di database:
Database Error #1045: Access denied for user 'notdvwa'@'localhost' (using password: YES).
Kesalahan ini memberi tahu Anda bahwa Anda menggunakan nama pengguna notdvwa
.
Kesalahan berikut mengatakan Anda telah mengarahkan file konfigurasi ke database yang salah.
SQL: Access denied for user 'dvwa'@'localhost' to database 'notdvwa'
Dikatakan bahwa Anda menggunakan pengguna dvwa
dan mencoba terhubung ke database notdvwa
.
Hal pertama yang harus dilakukan adalah memeriksa ulang apa yang menurut Anda Anda masukkan ke dalam file konfigurasi, apakah sebenarnya ada di sana.
Jika sesuai dengan yang Anda harapkan, hal selanjutnya yang harus dilakukan adalah memeriksa apakah Anda dapat login sebagai pengguna di baris perintah. Dengan asumsi Anda memiliki pengguna database dvwa
dan kata sandi p@ssw0rd
, jalankan perintah berikut:
mysql -u dvwa -pp@ssw0rd -D dvwa
Catatan: Tidak ada spasi setelah -p
Jika Anda melihat yang berikut ini, kata sandinya benar:
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]>
Karena Anda dapat terhubung pada baris perintah, kemungkinan ada yang salah pada file konfigurasi, periksa kembali dan ajukan masalah jika Anda masih tidak dapat menyelesaikannya.
Jika Anda melihat hal berikut, berarti nama pengguna atau kata sandi yang Anda gunakan salah. Ulangi langkah-langkah Pengaturan Basis Data dan pastikan Anda menggunakan nama pengguna dan kata sandi yang sama selama proses berlangsung.
ERROR 1045 (28000): Access denied for user 'dvwa'@'localhost' (using password: YES)
Jika Anda mendapatkan yang berikut ini, kredensial pengguna sudah benar tetapi pengguna tidak memiliki akses ke database. Sekali lagi, ulangi langkah pengaturan dan periksa nama database yang Anda gunakan.
ERROR 1044 (42000): Access denied for user 'dvwa'@'localhost' to database 'dvwa'
Kesalahan terakhir yang bisa Anda dapatkan adalah ini:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
Ini bukan masalah otentikasi tetapi memberitahu Anda bahwa server database tidak berjalan. Mulailah dengan yang berikut ini
sudo layanan mysql mulai
Kesalahan serupa dengan yang ini:
Fatal error: Uncaught mysqli_sql_exception: Connection refused in /var/sites/dvwa/non-secure/htdocs/dvwa/includes/dvwaPage.inc.php:535
Berarti server database Anda tidak berjalan atau Anda mendapatkan alamat IP yang salah di file konfigurasi.
Periksa baris ini di file konfigurasi untuk melihat di mana server database diharapkan berada:
$_DVWA[ 'db_server' ] = '127.0.0.1';
Lalu pergi ke server ini dan periksa apakah itu berjalan. Di Linux hal ini dapat dilakukan dengan:
status sistemctl mariadb.service
Dan Anda mencari sesuatu seperti ini, yang penting ada tulisan active (running)
.
● mariadb.service - server basis data MariaDB 10.5.19 Dimuat: dimuat (/lib/systemd/system/mariadb.service; diaktifkan; preset: diaktifkan) Aktif: aktif (berjalan) sejak Kam 14-03-2024 16:04:25 GMT; 1 minggu 5 hari yang lalu
Jika tidak berjalan, Anda dapat memulainya dengan:
sudo systemctl menghentikan mariadb.service
Catat sudo
dan pastikan Anda memasukkan kata sandi pengguna Linux Anda jika diminta.
Di Windows, periksa status di konsol XAMPP.
Dengan MySQL versi terbaru, PHP tidak dapat lagi berkomunikasi dengan database dalam konfigurasi defaultnya. Jika Anda mencoba menjalankan skrip pengaturan dan mendapatkan pesan berikut, itu berarti Anda memiliki konfigurasi.
Database Error #2054: The server requested authentication method unknown to the client.
Anda memiliki dua pilihan, yang paling mudah adalah menghapus MySQL dan menginstal MariaDB. Berikut panduan resmi dari proyek MariaDB:
https://mariadb.com/resources/blog/how-to-migrate-from-mysql-to-mariadb-on-linux-in-five-steps/
Sebagai alternatif, ikuti langkah-langkah berikut:
Sebagai root, edit file berikut: /etc/mysql/mysql.conf.d/mysqld.cnf
Di bawah baris [mysqld]
, tambahkan yang berikut: default-authentication-plugin=mysql_native_password
Mulai ulang basis data: sudo service mysql restart
Periksa metode autentikasi untuk pengguna database Anda:
mysql> pilih Host,User, plugin dari mysql.user dimana mysql.user.User = 'dvwa';+-----------+--------------- ----+--------+| Tuan rumah | Pengguna | plugin |+-----------+---+---------------- -------+| host lokal | dvwa | caching_sha2_password |+-----------+---+---------------- -------+1 baris dalam set (0,00 detik)
Anda mungkin akan melihat caching_sha2_password
. Jika ya, jalankan perintah berikut:
mysql> ALTER USER dvwa@localhost DIIDENTIFIKASI DENGAN mysql_native_password OLEH 'p@ssw0rd';
Menjalankan kembali pemeriksaan, Anda sekarang akan melihat mysql_native_password
.
mysql> pilih Host,User, plugin dari mysql.user dimana mysql.user.User = 'dvwa';+-----------+------+------- ----------------+| Tuan rumah | Pengguna | plugin |+-----------+------+---------+| host lokal | dvwa | mysql_native_password |+-----------+------+-----------------------+1 baris dalam set (0,00 detik)
Setelah semua itu, proses penyiapan sekarang akan berfungsi seperti biasa.
Jika Anda ingin informasi lebih lanjut lihat halaman berikut: https://www.php.net/manual/en/mysqli.requirements.php.
Server basis data tidak berjalan. Di distro berbasis Debian hal ini dapat dilakukan dengan:
sudo layanan mysql mulai
Ada beberapa alasan mengapa Anda mendapatkan kesalahan ini, tetapi kemungkinan besar adalah versi server database yang Anda jalankan tidak kompatibel dengan versi PHP.
Hal ini paling sering ditemukan ketika Anda menjalankan MySQL versi terbaru sebagai PHP dan tidak berjalan dengan baik. Saran terbaik, tinggalkan MySQL dan instal MariaDB karena ini bukan sesuatu yang dapat kami dukung.
Untuk informasi lebih lanjut, lihat:
https://www.ryadel.com/en/fix-mysql-server-gone-away-packets-order-similar-mysql-related-errors/
Apache mungkin tidak memiliki hak istimewa yang cukup tinggi untuk menjalankan perintah di server web. Jika Anda menjalankan DVWA di Linux pastikan Anda login sebagai root. Di bawah Windows, masuklah sebagai Administrator.
Anda mungkin mengalami masalah dengan SELinux. Nonaktifkan SELinux atau jalankan perintah ini untuk mengizinkan server web berbicara dengan database:
setsebool -P httpd_can_network_connect_db 1
Untuk informasi pemecahan masalah terbaru silakan baca tiket terbuka dan tertutup di repo git:
https://github.com/digininja/DVWA/issues
Sebelum mengirimkan tiket, pastikan Anda menjalankan kode versi terbaru dari repo. Ini bukan rilis terbaru, ini kode terbaru dari cabang master.
Jika mengajukan tiket, harap kirimkan setidaknya informasi berikut:
Sistem Operasi
5 baris terakhir dari log kesalahan server web langsung setelah kesalahan apa pun yang Anda laporkan terjadi
Jika ini masalah otentikasi basis data, lakukan langkah-langkah di atas dan ambil tangkapan layar setiap langkahnya. Kirimkan ini bersama dengan tangkapan layar bagian file konfigurasi yang menunjukkan pengguna database dan kata sandi.
Penjelasan lengkap tentang apa yang salah, apa yang Anda harapkan akan terjadi, dan apa yang telah Anda coba lakukan untuk memperbaikinya. "login rusak" tidak cukup bagi kami untuk memahami masalah Anda dan membantu memperbaikinya.
Saya akan mencoba mengumpulkan beberapa video tutorial yang menjelaskan beberapa kerentanan dan menunjukkan cara mendeteksinya, lalu cara mengeksploitasinya. Inilah yang saya buat sejauh ini:
Menemukan dan Memanfaatkan XSS yang Tercermin
Dukungan untuk hal ini terbatas, sebelum mengajukan masalah, harap pastikan Anda siap melakukan debugging, jangan hanya mengklaim "itu tidak berhasil".
Secara default, SQLi dan Blind SQLi dilakukan terhadap server MariaDB/MySQL yang digunakan oleh situs, namun dimungkinkan untuk beralih untuk melakukan pengujian SQLi terhadap SQLite3.
Saya tidak akan membahas cara membuat SQLite3 bekerja dengan PHP, tetapi ini adalah kasus sederhana dengan menginstal paket php-sqlite3
dan memastikan paket tersebut diaktifkan.
Untuk beralih, cukup edit file konfigurasi dan tambahkan atau edit baris berikut:
$_DVWA["SQLI_DB"] = "sqlite";$_DVWA["SQLITE_DB"] = "sqli.db";
Secara default menggunakan file database/sqli.db
, jika Anda mengacaukannya, cukup salin database/sqli.db.dist
dari atas.
Tantangannya sama persis dengan MySQL, mereka hanya menghadapi SQLite3 saja.
Terima kasih atas semua kontribusi Anda dan terus memperbarui proyek ini.
Jika Anda mempunyai ide, semacam perbaikan atau hanya sekedar ingin berkolaborasi, Anda dipersilakan untuk berkontribusi dan berpartisipasi dalam Proyek, silakan kirimkan PR Anda.
Sederhananya, tolong jangan!
Setahun sekali atau lebih, seseorang akan mengirimkan laporan tentang kerentanan yang mereka temukan di aplikasi, ada yang ditulis dengan baik, terkadang lebih baik daripada yang pernah saya lihat di laporan pengujian pena berbayar, ada pula yang hanya "header Anda hilang, bayar Saya".
Pada tahun 2023, hal ini meningkat ke tingkat yang baru ketika seseorang memutuskan untuk meminta CVE untuk salah satu kerentanan, mereka diberikan CVE-2023-39848. Banyak kegembiraan terjadi dan waktu terbuang untuk memperbaikinya.
Aplikasi ini memiliki kerentanan, itu disengaja. Sebagian besar adalah hal-hal yang terdokumentasi dengan baik yang Anda kerjakan sebagai pelajaran, yang lain adalah hal-hal yang "tersembunyi", yang dapat Anda temukan sendiri. Jika Anda benar-benar ingin memamerkan keahlian Anda dalam menemukan tambahan tersembunyi, tulis postingan blog atau buat video karena mungkin ada orang di luar sana yang tertarik untuk mempelajarinya dan bagaimana Anda menemukannya. Jika Anda mengirimkan tautannya kepada kami, kami bahkan mungkin menyertakannya dalam referensi.
Beranda Proyek: https://github.com/digininja/DVWA
Dibuat oleh tim DVWA