mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-12-11 02:09:04 +00:00
Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e17babe7b | ||
|
|
fc9875fc12 | ||
|
|
bfaa4cbf8d | ||
|
|
ad7da11946 | ||
|
|
08cb06fb65 | ||
|
|
cceb5319ef | ||
|
|
8a57002b26 | ||
|
|
e7315ccd4d | ||
|
|
e435d1e712 | ||
|
|
f0194a8814 | ||
|
|
e03404283c | ||
|
|
18013bc8b2 | ||
|
|
0517979e0a | ||
|
|
a3100ff069 | ||
|
|
b65c17608f | ||
|
|
aec527dbee | ||
|
|
e9d7a770e1 | ||
|
|
182c06e26b | ||
|
|
c4680b7e04 | ||
|
|
f1621d0d89 | ||
|
|
69900a6c6e | ||
|
|
7d31de1124 | ||
|
|
59bd03f1a9 | ||
|
|
7f7e78a517 | ||
|
|
9ac251142c | ||
|
|
c712e9c22f |
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
@@ -10,7 +10,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||||
python-version: [ '2.x', '3.x', 'pypy-2.7', 'pypy-3.6', 'pypy-3.7' ]
|
python-version: [ '2.x', '3.10', 'pypy-2.7', 'pypy-3.7' ]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up Python
|
- name: Set up Python
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Preferably, you can download sqlmap by cloning the [Git](https://github.com/sqlm
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap works out of the box with [Python](http://www.python.org/download/) version **2.6**, **2.7** and **3.x** on any platform.
|
sqlmap works out of the box with [Python](https://www.python.org/download/) version **2.6**, **2.7** and **3.x** on any platform.
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
----
|
----
|
||||||
@@ -46,7 +46,7 @@ Links
|
|||||||
* User's manual: https://github.com/sqlmapproject/sqlmap/wiki
|
* User's manual: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Frequently Asked Questions (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Frequently Asked Questions (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demos: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demos: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Screenshots: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Screenshots: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|
||||||
Translations
|
Translations
|
||||||
|
|||||||
@@ -2674,6 +2674,7 @@ jeda
|
|||||||
jenis
|
jenis
|
||||||
jml
|
jml
|
||||||
judul
|
judul
|
||||||
|
jumlah
|
||||||
kata_kunci
|
kata_kunci
|
||||||
kata_sandi
|
kata_sandi
|
||||||
katakunci
|
katakunci
|
||||||
@@ -2686,6 +2687,7 @@ kunci
|
|||||||
lahir
|
lahir
|
||||||
nama
|
nama
|
||||||
nama_akun
|
nama_akun
|
||||||
|
nama_ibu_kandung
|
||||||
nama_pengguna
|
nama_pengguna
|
||||||
namaakun
|
namaakun
|
||||||
namapengguna
|
namapengguna
|
||||||
@@ -2695,6 +2697,7 @@ pengguna
|
|||||||
penjelasan
|
penjelasan
|
||||||
perusahaan
|
perusahaan
|
||||||
ponsel
|
ponsel
|
||||||
|
profesi
|
||||||
ruang
|
ruang
|
||||||
sandi
|
sandi
|
||||||
soal
|
soal
|
||||||
@@ -2702,6 +2705,7 @@ surat_elektronik
|
|||||||
surel
|
surel
|
||||||
tanggal
|
tanggal
|
||||||
tanggal_lahir
|
tanggal_lahir
|
||||||
|
telepon
|
||||||
tempat
|
tempat
|
||||||
tempat_lahir
|
tempat_lahir
|
||||||
tmp_lahir
|
tmp_lahir
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ sqlmap e инструмент за тестване и проникване, с
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap работи самостоятелно с [Python](http://www.python.org/download/) версия **2.6**, **2.7** и **3.x** на всички платформи.
|
sqlmap работи самостоятелно с [Python](https://www.python.org/download/) версия **2.6**, **2.7** и **3.x** на всички платформи.
|
||||||
|
|
||||||
Използване
|
Използване
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ sqlmap работи самостоятелно с [Python](http://www.python.org
|
|||||||
* Упътване: https://github.com/sqlmapproject/sqlmap/wiki
|
* Упътване: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Често задавани въпроси (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Често задавани въпроси (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Демо: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Демо: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Снимки на екрана: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Снимки на екрана: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Vorzugsweise kannst du sqlmap herunterladen, indem du das [GIT](https://github.c
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap funktioniert sofort mit den [Python](http://www.python.org/download/) Versionen 2.6, 2.7 und 3.x auf jeder Plattform.
|
sqlmap funktioniert sofort mit den [Python](https://www.python.org/download/) Versionen 2.6, 2.7 und 3.x auf jeder Plattform.
|
||||||
|
|
||||||
Benutzung
|
Benutzung
|
||||||
---
|
---
|
||||||
@@ -45,5 +45,5 @@ Links
|
|||||||
* Benutzerhandbuch: https://github.com/sqlmapproject/sqlmap/wiki
|
* Benutzerhandbuch: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Häufig gestellte Fragen (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Häufig gestellte Fragen (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demonstrationen: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demonstrationen: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Screenshots: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Screenshots: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ Preferentemente, se puede descargar sqlmap clonando el repositorio [Git](https:/
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap funciona con las siguientes versiones de [Python](http://www.python.org/download/) **2.6**, **2.7** y **3.x** en cualquier plataforma.
|
sqlmap funciona con las siguientes versiones de [Python](https://www.python.org/download/) **2.6**, **2.7** y **3.x** en cualquier plataforma.
|
||||||
|
|
||||||
Uso
|
Uso
|
||||||
---
|
---
|
||||||
@@ -45,5 +45,5 @@ Enlaces
|
|||||||
* Manual de usuario: https://github.com/sqlmapproject/sqlmap/wiki
|
* Manual de usuario: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Preguntas frecuentes (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Preguntas frecuentes (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demostraciones: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demostraciones: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Imágenes: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Imágenes: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -80,5 +80,5 @@
|
|||||||
* راهنمای کاربران: https://github.com/sqlmapproject/sqlmap/wiki
|
* راهنمای کاربران: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* سوالات متداول: https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* سوالات متداول: https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* تویتر: [@sqlmap](https://twitter.com/sqlmap)
|
* تویتر: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* رسانه: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* رسانه: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* عکسها: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* عکسها: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ De préférence, télécharger __sqlmap__ en le [clonant](https://github.com/sql
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap fonctionne sur n'importe quel système d'exploitation avec la version **2.6**, **2.7** et **3.x** de [Python](http://www.python.org/download/)
|
sqlmap fonctionne sur n'importe quel système d'exploitation avec la version **2.6**, **2.7** et **3.x** de [Python](https://www.python.org/download/)
|
||||||
|
|
||||||
Utilisation
|
Utilisation
|
||||||
----
|
----
|
||||||
@@ -45,5 +45,5 @@ Liens
|
|||||||
* Manuel de l'utilisateur: https://github.com/sqlmapproject/sqlmap/wiki
|
* Manuel de l'utilisateur: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Foire aux questions (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Foire aux questions (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Démonstrations: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Démonstrations: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Les captures d'écran: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Les captures d'écran: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
Το sqlmap λειτουργεί χωρίς περαιτέρω κόπο με την [Python](http://www.python.org/download/) έκδοσης **2.6**, **2.7** και **3.x** σε όποια πλατφόρμα.
|
Το sqlmap λειτουργεί χωρίς περαιτέρω κόπο με την [Python](https://www.python.org/download/) έκδοσης **2.6**, **2.7** και **3.x** σε όποια πλατφόρμα.
|
||||||
|
|
||||||
Χρήση
|
Χρήση
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@
|
|||||||
* Εγχειρίδιο Χρήστη: https://github.com/sqlmapproject/sqlmap/wiki
|
* Εγχειρίδιο Χρήστη: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Συχνές Ερωτήσεις (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Συχνές Ερωτήσεις (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demos: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demos: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Εικόνες: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Εικόνες: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Po mogućnosti, možete preuzeti sqlmap kloniranjem [Git](https://github.com/sql
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap radi bez posebnih zahtjeva korištenjem [Python](http://www.python.org/download/) verzije **2.6**, **2.7** i/ili **3.x** na bilo kojoj platformi.
|
sqlmap radi bez posebnih zahtjeva korištenjem [Python](https://www.python.org/download/) verzije **2.6**, **2.7** i/ili **3.x** na bilo kojoj platformi.
|
||||||
|
|
||||||
Korištenje
|
Korištenje
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ Poveznice
|
|||||||
* Korisnički priručnik: https://github.com/sqlmapproject/sqlmap/wiki
|
* Korisnički priručnik: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Najčešće postavljena pitanja (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Najčešće postavljena pitanja (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demo: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demo: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Slike zaslona: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Slike zaslona: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Sebagai alternatif, Anda dapat mengunduh sqlmap dengan men-_clone_ repositori [G
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap berfungsi langsung pada [Python](http://www.python.org/download/) versi **2.6**, **2.7** dan **3.x** pada platform apapun.
|
sqlmap berfungsi langsung pada [Python](https://www.python.org/download/) versi **2.6**, **2.7** dan **3.x** pada platform apapun.
|
||||||
|
|
||||||
Penggunaan
|
Penggunaan
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ Tautan
|
|||||||
* Wiki Manual Penggunaan: https://github.com/sqlmapproject/sqlmap/wiki
|
* Wiki Manual Penggunaan: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Pertanyaan yang Sering Ditanyakan (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Pertanyaan yang Sering Ditanyakan (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Video Demo [#1](http://www.youtube.com/user/inquisb/videos) dan [#2](http://www.youtube.com/user/stamparm/videos)
|
* Video Demo [#1](https://www.youtube.com/user/inquisb/videos) dan [#2](https://www.youtube.com/user/stamparm/videos)
|
||||||
* Tangkapan Layar: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Tangkapan Layar: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# sqlmap
|
r# sqlmap
|
||||||
|
|
||||||
[](https://travis-ci.org/sqlmapproject/sqlmap) [](https://www.python.org/) [](https://raw.githubusercontent.com/sqlmapproject/sqlmap/master/LICENSE) [](https://badge.fury.io/py/sqlmap) [](https://github.com/sqlmapproject/sqlmap/issues?q=is%3Aissue+is%3Aclosed) [](https://twitter.com/sqlmap)
|
[](https://travis-ci.org/sqlmapproject/sqlmap) [](https://www.python.org/) [](https://raw.githubusercontent.com/sqlmapproject/sqlmap/master/LICENSE) [](https://badge.fury.io/py/sqlmap) [](https://github.com/sqlmapproject/sqlmap/issues?q=is%3Aissue+is%3Aclosed) [](https://twitter.com/sqlmap)
|
||||||
|
|
||||||
@@ -20,7 +20,7 @@ La cosa migliore sarebbe però scaricare sqlmap clonando la repository [Git](htt
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap è in grado di funzionare con le versioni **2.6**, **2.7** e **3.x** di [Python](http://www.python.org/download/) su ogni piattaforma.
|
sqlmap è in grado di funzionare con le versioni **2.6**, **2.7** e **3.x** di [Python](https://www.python.org/download/) su ogni piattaforma.
|
||||||
|
|
||||||
Utilizzo
|
Utilizzo
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ Link
|
|||||||
* Manuale dell'utente: https://github.com/sqlmapproject/sqlmap/wiki
|
* Manuale dell'utente: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Domande più frequenti (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Domande più frequenti (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Dimostrazioni: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Dimostrazioni: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Screenshot: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Screenshot: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ wikiに載っているいくつかの機能のデモをスクリーンショッ
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmapは、 [Python](http://www.python.org/download/) バージョン **2.6**, **2.7** または **3.x** がインストールされていれば、全てのプラットフォームですぐに使用できます。
|
sqlmapは、 [Python](https://www.python.org/download/) バージョン **2.6**, **2.7** または **3.x** がインストールされていれば、全てのプラットフォームですぐに使用できます。
|
||||||
|
|
||||||
使用法
|
使用法
|
||||||
----
|
----
|
||||||
@@ -47,5 +47,5 @@ sqlmapの概要、機能の一覧、全てのオプションやスイッチの
|
|||||||
* ユーザーマニュアル: https://github.com/sqlmapproject/sqlmap/wiki
|
* ユーザーマニュアル: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* よくある質問 (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* よくある質問 (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* デモ: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* デモ: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* スクリーンショット: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* スクリーンショット: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ sqlmap은 SQL 인젝션 결함 탐지 및 활용, 데이터베이스 서버 장
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap은 [Python](http://www.python.org/download/) 버전 **2.6**, **2.7** 그리고 **3.x** 을 통해 모든 플랫폼 위에서 사용 가능합니다.
|
sqlmap은 [Python](https://www.python.org/download/) 버전 **2.6**, **2.7** 그리고 **3.x** 을 통해 모든 플랫폼 위에서 사용 가능합니다.
|
||||||
|
|
||||||
사용법
|
사용법
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ sqlmap의 능력, 지원되는 기능과 모든 옵션과 스위치들의 목록
|
|||||||
* 사용자 매뉴얼: https://github.com/sqlmapproject/sqlmap/wiki
|
* 사용자 매뉴얼: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* 자주 묻는 질문 (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* 자주 묻는 질문 (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* 트위터: [@sqlmap](https://twitter.com/sqlmap)
|
* 트위터: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* 시연 영상: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* 시연 영상: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* 스크린샷: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* 스크린샷: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Można również pobrać sqlmap klonując rezozytorium [Git](https://github.com/
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
do użycia sqlmap potrzebny jest [Python](http://www.python.org/download/) w wersji **2.6**, **2.7** lub **3.x** na dowolnej platformie systemowej.
|
do użycia sqlmap potrzebny jest [Python](https://www.python.org/download/) w wersji **2.6**, **2.7** lub **3.x** na dowolnej platformie systemowej.
|
||||||
|
|
||||||
Sposób użycia
|
Sposób użycia
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ Odnośniki
|
|||||||
* Instrukcja użytkowania: https://github.com/sqlmapproject/sqlmap/wiki
|
* Instrukcja użytkowania: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Często zadawane pytania (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Często zadawane pytania (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Dema: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Dema: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Zrzuty ekranowe: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Zrzuty ekranowe: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ De preferência, você pode baixar o sqlmap clonando o repositório [Git](https:
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap funciona em [Python](http://www.python.org/download/) nas versões **2.6**, **2.7** e **3.x** em todas as plataformas.
|
sqlmap funciona em [Python](https://www.python.org/download/) nas versões **2.6**, **2.7** e **3.x** em todas as plataformas.
|
||||||
|
|
||||||
Como usar
|
Como usar
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ Links
|
|||||||
* Manual do Usuário: https://github.com/sqlmapproject/sqlmap/wiki
|
* Manual do Usuário: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Perguntas frequentes (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Perguntas frequentes (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demonstrações: [#1](http://www.youtube.com/user/inquisb/videos) e [#2](http://www.youtube.com/user/stamparm/videos)
|
* Demonstrações: [#1](https://www.youtube.com/user/inquisb/videos) e [#2](https://www.youtube.com/user/stamparm/videos)
|
||||||
* Imagens: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Imagens: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ Opciono, možete preuzeti sqlmap kloniranjem [Git](https://github.com/sqlmapproj
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap radi bez posebnih zahteva korištenjem [Python](http://www.python.org/download/) verzije **2.6**, **2.7** i/ili **3.x** na bilo kojoj platformi.
|
sqlmap radi bez posebnih zahteva korištenjem [Python](https://www.python.org/download/) verzije **2.6**, **2.7** i/ili **3.x** na bilo kojoj platformi.
|
||||||
|
|
||||||
Korišćenje
|
Korišćenje
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ Linkovi
|
|||||||
* Korisnički priručnik: https://github.com/sqlmapproject/sqlmap/wiki
|
* Korisnički priručnik: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Najčešće postavljena pitanja (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Najčešće postavljena pitanja (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demo: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demo: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Slike: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Slike: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ sqlmap - это инструмент для тестирования уязви
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap работает из коробки с [Python](http://www.python.org/download/) версии **2.6**, **2.7** и **3.x** на любой платформе.
|
sqlmap работает из коробки с [Python](https://www.python.org/download/) версии **2.6**, **2.7** и **3.x** на любой платформе.
|
||||||
|
|
||||||
Использование
|
Использование
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ sqlmap работает из коробки с [Python](http://www.python.org/do
|
|||||||
* Пользовательский мануал: https://github.com/sqlmapproject/sqlmap/wiki
|
* Пользовательский мануал: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Часто задаваемые вопросы (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Часто задаваемые вопросы (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Демки: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Демки: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Скриншоты: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Скриншоты: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ Veya tercihen, [Git](https://github.com/sqlmapproject/sqlmap) reposunu klonlayar
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap [Python](http://www.python.org/download/) sitesinde bulunan **2.6**, **2.7** and **3.x** versiyonları ile bütün platformlarda çalışabilmektedir.
|
sqlmap [Python](https://www.python.org/download/) sitesinde bulunan **2.6**, **2.7** and **3.x** versiyonları ile bütün platformlarda çalışabilmektedir.
|
||||||
|
|
||||||
Kullanım
|
Kullanım
|
||||||
----
|
----
|
||||||
@@ -49,5 +49,5 @@ Bağlantılar
|
|||||||
* Kullanıcı Manueli: https://github.com/sqlmapproject/sqlmap/wiki
|
* Kullanıcı Manueli: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Sıkça Sorulan Sorular(SSS): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Sıkça Sorulan Sorular(SSS): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demolar: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demolar: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Ekran görüntüleri: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Ekran görüntüleri: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ sqlmap - це інструмент для тестування вразливо
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap «працює з коробки» з [Python](http://www.python.org/download/) версії **2.6**, **2.7** та **3.x** на будь-якій платформі.
|
sqlmap «працює з коробки» з [Python](https://www.python.org/download/) версії **2.6**, **2.7** та **3.x** на будь-якій платформі.
|
||||||
|
|
||||||
Використання
|
Використання
|
||||||
----
|
----
|
||||||
@@ -46,5 +46,5 @@ sqlmap «працює з коробки» з [Python](http://www.python.org/down
|
|||||||
* Інструкція користувача: https://github.com/sqlmapproject/sqlmap/wiki
|
* Інструкція користувача: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Поширенні питання (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Поширенні питання (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Демо: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Демо: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Скриншоти: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Скриншоти: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ Tốt hơn là bạn nên tải xuống sqlmap bằng cách clone với [Git](ht
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap hoạt động hiệu quả với [Python](http://www.python.org/download/) phiên bản **2.6**, **2.7** và **3.x** trên bất kì hệ điều hành nào.
|
sqlmap hoạt động hiệu quả với [Python](https://www.python.org/download/) phiên bản **2.6**, **2.7** và **3.x** trên bất kì hệ điều hành nào.
|
||||||
|
|
||||||
Sử dụng
|
Sử dụng
|
||||||
----
|
----
|
||||||
@@ -48,5 +48,5 @@ Liên kết
|
|||||||
* Hướng dẫn sử dụng: https://github.com/sqlmapproject/sqlmap/wiki
|
* Hướng dẫn sử dụng: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* Các câu hỏi thường gặp (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* Các câu hỏi thường gặp (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* Demo: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* Demo: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* Ảnh chụp màn hình: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* Ảnh chụp màn hình: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ sqlmap 是一个开源的渗透测试工具,可以用来自动化的检测,
|
|||||||
|
|
||||||
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
|
||||||
|
|
||||||
sqlmap 可以运行在 [Python](http://www.python.org/download/) **2.6**, **2.7** 和 **3.x** 版本的任何平台上
|
sqlmap 可以运行在 [Python](https://www.python.org/download/) **2.6**, **2.7** 和 **3.x** 版本的任何平台上
|
||||||
|
|
||||||
使用方法
|
使用方法
|
||||||
----
|
----
|
||||||
@@ -45,5 +45,5 @@ sqlmap 可以运行在 [Python](http://www.python.org/download/) **2.6**, **2.7
|
|||||||
* 使用手册: https://github.com/sqlmapproject/sqlmap/wiki
|
* 使用手册: https://github.com/sqlmapproject/sqlmap/wiki
|
||||||
* 常见问题 (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
* 常见问题 (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
|
||||||
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
|
||||||
* 教程: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
|
* 教程: [https://www.youtube.com/user/inquisb/videos](https://www.youtube.com/user/inquisb/videos)
|
||||||
* 截图: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
* 截图: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import binascii
|
|||||||
import codecs
|
import codecs
|
||||||
import contextlib
|
import contextlib
|
||||||
import copy
|
import copy
|
||||||
import distutils.version
|
|
||||||
import functools
|
import functools
|
||||||
import getpass
|
import getpass
|
||||||
import hashlib
|
import hashlib
|
||||||
@@ -47,6 +46,7 @@ from extra.beep.beep import beep
|
|||||||
from extra.cloak.cloak import decloak
|
from extra.cloak.cloak import decloak
|
||||||
from lib.core.bigarray import BigArray
|
from lib.core.bigarray import BigArray
|
||||||
from lib.core.compat import cmp
|
from lib.core.compat import cmp
|
||||||
|
from lib.core.compat import LooseVersion
|
||||||
from lib.core.compat import round
|
from lib.core.compat import round
|
||||||
from lib.core.compat import xrange
|
from lib.core.compat import xrange
|
||||||
from lib.core.convert import base64pickle
|
from lib.core.convert import base64pickle
|
||||||
@@ -590,10 +590,13 @@ class Backend(object):
|
|||||||
retVal = False
|
retVal = False
|
||||||
|
|
||||||
if Backend.getVersion() is not None and version is not None:
|
if Backend.getVersion() is not None and version is not None:
|
||||||
|
_version = unArrayizeValue(Backend.getVersion())
|
||||||
|
_version = re.sub(r"[<>= ]", "", _version)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
retVal = distutils.version.LooseVersion(Backend.getVersion()) >= distutils.version.LooseVersion(version)
|
retVal = LooseVersion(_version) >= LooseVersion(version)
|
||||||
except:
|
except:
|
||||||
retVal = str(Backend.getVersion()) >= str(version)
|
retVal = str(_version) >= str(version)
|
||||||
|
|
||||||
return retVal
|
return retVal
|
||||||
|
|
||||||
@@ -1428,6 +1431,19 @@ def cleanQuery(query):
|
|||||||
|
|
||||||
return retVal
|
return retVal
|
||||||
|
|
||||||
|
def cleanReplaceUnicode(value):
|
||||||
|
"""
|
||||||
|
Cleans unicode for proper encode/decode
|
||||||
|
|
||||||
|
>>> cleanReplaceUnicode(['a', 'b'])
|
||||||
|
['a', 'b']
|
||||||
|
"""
|
||||||
|
|
||||||
|
def clean(value):
|
||||||
|
return value.encode(UNICODE_ENCODING, errors="replace").decode(UNICODE_ENCODING) if isinstance(value, six.text_type) else value
|
||||||
|
|
||||||
|
return applyFunctionRecursively(value, clean)
|
||||||
|
|
||||||
def setPaths(rootPath):
|
def setPaths(rootPath):
|
||||||
"""
|
"""
|
||||||
Sets absolute paths for project directories and files
|
Sets absolute paths for project directories and files
|
||||||
@@ -1521,6 +1537,12 @@ def parseTargetDirect():
|
|||||||
'testdb'
|
'testdb'
|
||||||
>>> conf.dbmsPass
|
>>> conf.dbmsPass
|
||||||
'testpass'
|
'testpass'
|
||||||
|
>>> conf.direct = "mysql://user:'P@ssw0rd'@127.0.0.1:3306/test"
|
||||||
|
>>> parseTargetDirect()
|
||||||
|
>>> conf.dbmsPass
|
||||||
|
'P@ssw0rd'
|
||||||
|
>>> conf.hostname
|
||||||
|
'127.0.0.1'
|
||||||
>>> conf.direct = popValue()
|
>>> conf.direct = popValue()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -1537,8 +1559,8 @@ def parseTargetDirect():
|
|||||||
conf.dbms = details.group("dbms")
|
conf.dbms = details.group("dbms")
|
||||||
|
|
||||||
if details.group("credentials"):
|
if details.group("credentials"):
|
||||||
conf.dbmsUser = details.group("user")
|
conf.dbmsUser = details.group("user").strip("'\"")
|
||||||
conf.dbmsPass = details.group("pass")
|
conf.dbmsPass = details.group("pass").strip("'\"")
|
||||||
else:
|
else:
|
||||||
if conf.dbmsCred:
|
if conf.dbmsCred:
|
||||||
conf.dbmsUser, conf.dbmsPass = conf.dbmsCred.split(':')
|
conf.dbmsUser, conf.dbmsPass = conf.dbmsCred.split(':')
|
||||||
@@ -2895,7 +2917,7 @@ def urldecode(value, encoding=None, unsafe="%%?&=;+%s" % CUSTOM_INJECTION_MARK_C
|
|||||||
if spaceplus:
|
if spaceplus:
|
||||||
result = result.replace('+', ' ') # plus sign has a special meaning in URL encoded data (hence the usage of _urllib.parse.unquote_plus in convall case)
|
result = result.replace('+', ' ') # plus sign has a special meaning in URL encoded data (hence the usage of _urllib.parse.unquote_plus in convall case)
|
||||||
|
|
||||||
result = re.sub(r"%([0-9a-fA-F]{2})", _, result)
|
result = re.sub(r"%([0-9a-fA-F]{2})", _, result or "")
|
||||||
|
|
||||||
result = getUnicode(result, encoding or UNICODE_ENCODING)
|
result = getUnicode(result, encoding or UNICODE_ENCODING)
|
||||||
|
|
||||||
@@ -3563,6 +3585,8 @@ def unArrayizeValue(value):
|
|||||||
|
|
||||||
>>> unArrayizeValue(['1'])
|
>>> unArrayizeValue(['1'])
|
||||||
'1'
|
'1'
|
||||||
|
>>> unArrayizeValue('1')
|
||||||
|
'1'
|
||||||
>>> unArrayizeValue(['1', '2'])
|
>>> unArrayizeValue(['1', '2'])
|
||||||
'1'
|
'1'
|
||||||
>>> unArrayizeValue([['a', 'b'], 'c'])
|
>>> unArrayizeValue([['a', 'b'], 'c'])
|
||||||
|
|||||||
@@ -257,3 +257,8 @@ if sys.version_info >= (3, 0):
|
|||||||
else:
|
else:
|
||||||
xrange = xrange
|
xrange = xrange
|
||||||
buffer = buffer
|
buffer = buffer
|
||||||
|
|
||||||
|
try:
|
||||||
|
from pkg_resources import parse_version as LooseVersion
|
||||||
|
except ImportError:
|
||||||
|
from distutils.version import LooseVersion
|
||||||
|
|||||||
@@ -2648,6 +2648,13 @@ def _basicOptionValidation():
|
|||||||
errMsg = "invalid regular expression '%s' ('%s')" % (conf.paramExclude, getSafeExString(ex))
|
errMsg = "invalid regular expression '%s' ('%s')" % (conf.paramExclude, getSafeExString(ex))
|
||||||
raise SqlmapSyntaxException(errMsg)
|
raise SqlmapSyntaxException(errMsg)
|
||||||
|
|
||||||
|
if conf.retryOn:
|
||||||
|
try:
|
||||||
|
re.compile(conf.retryOn)
|
||||||
|
except Exception as ex:
|
||||||
|
errMsg = "invalid regular expression '%s' ('%s')" % (conf.retryOn, getSafeExString(ex))
|
||||||
|
raise SqlmapSyntaxException(errMsg)
|
||||||
|
|
||||||
if conf.cookieDel and len(conf.cookieDel):
|
if conf.cookieDel and len(conf.cookieDel):
|
||||||
errMsg = "option '--cookie-del' should contain a single character (e.g. ';')"
|
errMsg = "option '--cookie-del' should contain a single character (e.g. ';')"
|
||||||
raise SqlmapSyntaxException(errMsg)
|
raise SqlmapSyntaxException(errMsg)
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ optDict = {
|
|||||||
"delay": "float",
|
"delay": "float",
|
||||||
"timeout": "float",
|
"timeout": "float",
|
||||||
"retries": "integer",
|
"retries": "integer",
|
||||||
|
"retryOn": "string",
|
||||||
"rParam": "string",
|
"rParam": "string",
|
||||||
"safeUrl": "string",
|
"safeUrl": "string",
|
||||||
"safePost": "string",
|
"safePost": "string",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ See the file 'LICENSE' for copying permission
|
|||||||
|
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
|
||||||
|
from lib.core.common import cleanReplaceUnicode
|
||||||
from lib.core.common import getSafeExString
|
from lib.core.common import getSafeExString
|
||||||
from lib.core.common import unsafeSQLIdentificatorNaming
|
from lib.core.common import unsafeSQLIdentificatorNaming
|
||||||
from lib.core.exception import SqlmapConnectionException
|
from lib.core.exception import SqlmapConnectionException
|
||||||
@@ -81,7 +82,10 @@ class Replication(object):
|
|||||||
|
|
||||||
def execute(self, sql, parameters=None):
|
def execute(self, sql, parameters=None):
|
||||||
try:
|
try:
|
||||||
self.parent.cursor.execute(sql, parameters or [])
|
try:
|
||||||
|
self.parent.cursor.execute(sql, parameters or [])
|
||||||
|
except UnicodeError:
|
||||||
|
self.parent.cursor.execute(sql, cleanReplaceUnicode(parameters or []))
|
||||||
except sqlite3.OperationalError as ex:
|
except sqlite3.OperationalError as ex:
|
||||||
errMsg = "problem occurred ('%s') while accessing sqlite database " % getSafeExString(ex, UNICODE_ENCODING)
|
errMsg = "problem occurred ('%s') while accessing sqlite database " % getSafeExString(ex, UNICODE_ENCODING)
|
||||||
errMsg += "located at '%s'. Please make sure that " % self.parent.dbpath
|
errMsg += "located at '%s'. Please make sure that " % self.parent.dbpath
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ from thirdparty import six
|
|||||||
from thirdparty.six import unichr as _unichr
|
from thirdparty.six import unichr as _unichr
|
||||||
|
|
||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||||
VERSION = "1.5.10.0"
|
VERSION = "1.5.11.0"
|
||||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
||||||
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
||||||
|
|||||||
@@ -24,14 +24,12 @@ from lib.core.common import randomInt
|
|||||||
from lib.core.common import randomStr
|
from lib.core.common import randomStr
|
||||||
from lib.core.common import shellExec
|
from lib.core.common import shellExec
|
||||||
from lib.core.compat import round
|
from lib.core.compat import round
|
||||||
from lib.core.compat import xrange
|
|
||||||
from lib.core.convert import encodeBase64
|
from lib.core.convert import encodeBase64
|
||||||
from lib.core.data import kb
|
from lib.core.data import kb
|
||||||
from lib.core.data import logger
|
from lib.core.data import logger
|
||||||
from lib.core.data import paths
|
from lib.core.data import paths
|
||||||
from lib.core.data import queries
|
from lib.core.data import queries
|
||||||
from lib.core.patch import unisonRandom
|
from lib.core.patch import unisonRandom
|
||||||
from lib.core.settings import MAX_CONSECUTIVE_CONNECTION_ERRORS
|
|
||||||
from lib.core.settings import IS_WIN
|
from lib.core.settings import IS_WIN
|
||||||
|
|
||||||
def vulnTest():
|
def vulnTest():
|
||||||
@@ -97,26 +95,34 @@ def vulnTest():
|
|||||||
vulnserver.init(quiet=True)
|
vulnserver.init(quiet=True)
|
||||||
vulnserver.run(address=address, port=port)
|
vulnserver.run(address=address, port=port)
|
||||||
|
|
||||||
|
vulnserver._alive = True
|
||||||
|
|
||||||
thread = threading.Thread(target=_thread)
|
thread = threading.Thread(target=_thread)
|
||||||
thread.daemon = True
|
thread.daemon = True
|
||||||
thread.start()
|
thread.start()
|
||||||
|
|
||||||
success = False
|
while vulnserver._alive:
|
||||||
for i in xrange(MAX_CONSECUTIVE_CONNECTION_ERRORS):
|
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
try:
|
try:
|
||||||
s.connect((address, port))
|
s.connect((address, port))
|
||||||
s.send(b"GET / HTTP/1.0\r\n\r\n")
|
s.sendall(b"GET / HTTP/1.1\r\n\r\n")
|
||||||
if b"vulnserver" in s.recv(4096):
|
result = b""
|
||||||
success = True
|
while True:
|
||||||
|
current = s.recv(1024)
|
||||||
|
if not current:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
result += current
|
||||||
|
if b"vulnserver" in result:
|
||||||
break
|
break
|
||||||
except:
|
except:
|
||||||
time.sleep(1)
|
pass
|
||||||
finally:
|
finally:
|
||||||
s.close()
|
s.close()
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
if not success:
|
if not vulnserver._alive:
|
||||||
logger.error("problem occurred in vulnserver instantiation (address: 'http://%s:%s', alive: %s)" % (address, port, vulnserver._alive))
|
logger.error("problem occurred in vulnserver instantiation (address: 'http://%s:%s')" % (address, port))
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
logger.info("vulnserver running at 'http://%s:%s'..." % (address, port))
|
logger.info("vulnserver running at 'http://%s:%s'..." % (address, port))
|
||||||
|
|||||||
@@ -198,7 +198,7 @@ def runThreads(numThreads, threadFunction, cleanupFunction=None, forwardExceptio
|
|||||||
if numThreads > 1:
|
if numThreads > 1:
|
||||||
logger.info("waiting for threads to finish%s" % (" (Ctrl+C was pressed)" if isinstance(ex, KeyboardInterrupt) else ""))
|
logger.info("waiting for threads to finish%s" % (" (Ctrl+C was pressed)" if isinstance(ex, KeyboardInterrupt) else ""))
|
||||||
try:
|
try:
|
||||||
while (threading.activeCount() > 1):
|
while (threading.active_count() > 1):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
|
|||||||
@@ -246,6 +246,9 @@ def cmdLineParser(argv=None):
|
|||||||
request.add_argument("--retries", dest="retries", type=int,
|
request.add_argument("--retries", dest="retries", type=int,
|
||||||
help="Retries when the connection timeouts (default %d)" % defaults.retries)
|
help="Retries when the connection timeouts (default %d)" % defaults.retries)
|
||||||
|
|
||||||
|
request.add_argument("--retry-on", dest="retryOn",
|
||||||
|
help="Retry request on regexp matching content (e.g. \"drop\")")
|
||||||
|
|
||||||
request.add_argument("--randomize", dest="rParam",
|
request.add_argument("--randomize", dest="rParam",
|
||||||
help="Randomly change value for given parameter(s)")
|
help="Randomly change value for given parameter(s)")
|
||||||
|
|
||||||
@@ -1057,7 +1060,7 @@ def cmdLineParser(argv=None):
|
|||||||
if args.dummy:
|
if args.dummy:
|
||||||
args.url = args.url or DUMMY_URL
|
args.url = args.url or DUMMY_URL
|
||||||
|
|
||||||
if hasattr(sys.stdin, "fileno") and not os.isatty(sys.stdin.fileno()) and '-' not in sys.argv and "GITHUB_ACTIONS" not in os.environ:
|
if hasattr(sys.stdin, "fileno") and not any((os.isatty(sys.stdin.fileno()), args.api, "GITHUB_ACTIONS" in os.environ)):
|
||||||
args.stdinPipe = iter(sys.stdin.readline, None)
|
args.stdinPipe = iter(sys.stdin.readline, None)
|
||||||
else:
|
else:
|
||||||
args.stdinPipe = None
|
args.stdinPipe = None
|
||||||
|
|||||||
@@ -909,6 +909,17 @@ class Connect(object):
|
|||||||
|
|
||||||
socket.setdefaulttimeout(conf.timeout)
|
socket.setdefaulttimeout(conf.timeout)
|
||||||
|
|
||||||
|
if conf.retryOn and re.search(conf.retryOn, page, re.I):
|
||||||
|
if threadData.retriesCount < conf.retries:
|
||||||
|
warnMsg = "forced retry of the request because of undesired page content"
|
||||||
|
logger.warn(warnMsg)
|
||||||
|
return Connect._retryProxy(**kwargs)
|
||||||
|
else:
|
||||||
|
errMsg = "unable to get the page content not matching "
|
||||||
|
errMsg += "the given regular expression '%s'. Please use as high " % conf.retryOn
|
||||||
|
errMsg += "value for option '--retries' as possible (e.g. 20 or more)"
|
||||||
|
raise SqlmapConnectionException(errMsg)
|
||||||
|
|
||||||
processResponse(page, responseHeaders, code, status)
|
processResponse(page, responseHeaders, code, status)
|
||||||
|
|
||||||
if not skipLogTraffic:
|
if not skipLogTraffic:
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ Copyright (c) 2006-2021 sqlmap developers (https://sqlmap.org/)
|
|||||||
See the file 'LICENSE' for copying permission
|
See the file 'LICENSE' for copying permission
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import distutils.version
|
|
||||||
import re
|
import re
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
from lib.core.common import filterNone
|
from lib.core.common import filterNone
|
||||||
from lib.core.common import getSafeExString
|
from lib.core.common import getSafeExString
|
||||||
|
from lib.core.compat import LooseVersion
|
||||||
from lib.core.compat import xrange
|
from lib.core.compat import xrange
|
||||||
from lib.core.data import conf
|
from lib.core.data import conf
|
||||||
from lib.core.data import kb
|
from lib.core.data import kb
|
||||||
@@ -109,7 +109,7 @@ class HTTPSConnection(_http_client.HTTPSConnection):
|
|||||||
if not success:
|
if not success:
|
||||||
errMsg = "can't establish SSL connection"
|
errMsg = "can't establish SSL connection"
|
||||||
# Reference: https://docs.python.org/2/library/ssl.html
|
# Reference: https://docs.python.org/2/library/ssl.html
|
||||||
if distutils.version.LooseVersion(PYVERSION) < distutils.version.LooseVersion("2.7.9"):
|
if LooseVersion(PYVERSION) < LooseVersion("2.7.9"):
|
||||||
errMsg += " (please retry with Python >= 2.7.9)"
|
errMsg += " (please retry with Python >= 2.7.9)"
|
||||||
|
|
||||||
if kb.sslSuccess and not self.retrying:
|
if kb.sslSuccess and not self.retrying:
|
||||||
|
|||||||
@@ -95,36 +95,45 @@ def _oneShotUnionUse(expression, unpack=True, limited=False):
|
|||||||
# Perform the request
|
# Perform the request
|
||||||
page, headers, _ = Request.queryPage(payload, content=True, raise404=False)
|
page, headers, _ = Request.queryPage(payload, content=True, raise404=False)
|
||||||
|
|
||||||
|
if page and kb.chars.start.upper() in page and kb.chars.start not in page:
|
||||||
|
singleTimeWarnMessage("results seems to be upper-cased by force. sqlmap will automatically lower-case them")
|
||||||
|
|
||||||
|
page = page.lower()
|
||||||
|
|
||||||
incrementCounter(PAYLOAD.TECHNIQUE.UNION)
|
incrementCounter(PAYLOAD.TECHNIQUE.UNION)
|
||||||
|
|
||||||
if kb.jsonAggMode:
|
if kb.jsonAggMode:
|
||||||
if Backend.isDbms(DBMS.MSSQL):
|
for _page in (page or "", (page or "").replace('\\"', '"')):
|
||||||
output = extractRegexResult(r"%s(?P<result>.*)%s" % (kb.chars.start, kb.chars.stop), removeReflectiveValues(page or "", payload))
|
if Backend.isDbms(DBMS.MSSQL):
|
||||||
if output:
|
output = extractRegexResult(r"%s(?P<result>.*)%s" % (kb.chars.start, kb.chars.stop), removeReflectiveValues(_page, payload))
|
||||||
try:
|
if output:
|
||||||
retVal = ""
|
try:
|
||||||
fields = re.findall(r'"([^"]+)":', extractRegexResult(r"{(?P<result>[^}]+)}", output))
|
retVal = ""
|
||||||
for row in json.loads(output):
|
fields = re.findall(r'"([^"]+)":', extractRegexResult(r"{(?P<result>[^}]+)}", output))
|
||||||
retVal += "%s%s%s" % (kb.chars.start, kb.chars.delimiter.join(getUnicode(row[field] or NULL) for field in fields), kb.chars.stop)
|
for row in json.loads(output):
|
||||||
except:
|
retVal += "%s%s%s" % (kb.chars.start, kb.chars.delimiter.join(getUnicode(row[field] or NULL) for field in fields), kb.chars.stop)
|
||||||
pass
|
except:
|
||||||
else:
|
pass
|
||||||
retVal = getUnicode(retVal)
|
else:
|
||||||
elif Backend.isDbms(DBMS.PGSQL):
|
retVal = getUnicode(retVal)
|
||||||
output = extractRegexResult(r"(?P<result>%s.*%s)" % (kb.chars.start, kb.chars.stop), removeReflectiveValues(page or "", payload))
|
elif Backend.isDbms(DBMS.PGSQL):
|
||||||
if output:
|
output = extractRegexResult(r"(?P<result>%s.*%s)" % (kb.chars.start, kb.chars.stop), removeReflectiveValues(_page, payload))
|
||||||
retVal = output
|
if output:
|
||||||
else:
|
retVal = output
|
||||||
output = extractRegexResult(r"%s(?P<result>.*?)%s" % (kb.chars.start, kb.chars.stop), removeReflectiveValues(page or "", payload))
|
else:
|
||||||
if output:
|
output = extractRegexResult(r"%s(?P<result>.*?)%s" % (kb.chars.start, kb.chars.stop), removeReflectiveValues(_page, payload))
|
||||||
try:
|
if output:
|
||||||
retVal = ""
|
try:
|
||||||
for row in json.loads(output):
|
retVal = ""
|
||||||
retVal += "%s%s%s" % (kb.chars.start, row, kb.chars.stop)
|
for row in json.loads(output):
|
||||||
except:
|
retVal += "%s%s%s" % (kb.chars.start, row, kb.chars.stop)
|
||||||
pass
|
except:
|
||||||
else:
|
pass
|
||||||
retVal = getUnicode(retVal)
|
else:
|
||||||
|
retVal = getUnicode(retVal)
|
||||||
|
|
||||||
|
if retVal:
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
# Parse the returned page to get the exact UNION-based
|
# Parse the returned page to get the exact UNION-based
|
||||||
# SQL injection output
|
# SQL injection output
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ class HashDB(object):
|
|||||||
self.cursor.execute("INSERT INTO storage VALUES (?, ?)", (hash_, value,))
|
self.cursor.execute("INSERT INTO storage VALUES (?, ?)", (hash_, value,))
|
||||||
except sqlite3.IntegrityError:
|
except sqlite3.IntegrityError:
|
||||||
self.cursor.execute("UPDATE storage SET value=? WHERE id=?", (value, hash_,))
|
self.cursor.execute("UPDATE storage SET value=? WHERE id=?", (value, hash_,))
|
||||||
except UnicodeError: # e.g. surrogates not allowed (Issue #3851)
|
except (UnicodeError, OverflowError): # e.g. surrogates not allowed (Issue #3851)
|
||||||
break
|
break
|
||||||
except sqlite3.DatabaseError as ex:
|
except sqlite3.DatabaseError as ex:
|
||||||
if not os.path.exists(self.filepath):
|
if not os.path.exists(self.filepath):
|
||||||
|
|||||||
@@ -200,16 +200,16 @@ class Fingerprint(GenericFingerprint):
|
|||||||
# reading information_schema on some platforms is causing annoying timeout exits
|
# reading information_schema on some platforms is causing annoying timeout exits
|
||||||
# Reference: http://bugs.mysql.com/bug.php?id=15855
|
# Reference: http://bugs.mysql.com/bug.php?id=15855
|
||||||
|
|
||||||
|
kb.data.has_information_schema = True
|
||||||
|
|
||||||
# Determine if it is MySQL >= 8.0.0
|
# Determine if it is MySQL >= 8.0.0
|
||||||
if inject.checkBooleanExpression("ISNULL(JSON_STORAGE_FREE(NULL))"):
|
if inject.checkBooleanExpression("ISNULL(JSON_STORAGE_FREE(NULL))"):
|
||||||
kb.data.has_information_schema = True
|
|
||||||
Backend.setVersion(">= 8.0.0")
|
Backend.setVersion(">= 8.0.0")
|
||||||
setDbms("%s 8" % DBMS.MYSQL)
|
setDbms("%s 8" % DBMS.MYSQL)
|
||||||
self.getBanner()
|
self.getBanner()
|
||||||
|
|
||||||
# Determine if it is MySQL >= 5.0.0
|
# Determine if it is MySQL >= 5.0.0
|
||||||
elif inject.checkBooleanExpression("ISNULL(TIMESTAMPADD(MINUTE,[RANDNUM],NULL))"):
|
elif inject.checkBooleanExpression("ISNULL(TIMESTAMPADD(MINUTE,[RANDNUM],NULL))"):
|
||||||
kb.data.has_information_schema = True
|
|
||||||
Backend.setVersion(">= 5.0.0")
|
Backend.setVersion(">= 5.0.0")
|
||||||
setDbms("%s 5" % DBMS.MYSQL)
|
setDbms("%s 5" % DBMS.MYSQL)
|
||||||
self.getBanner()
|
self.getBanner()
|
||||||
@@ -269,6 +269,8 @@ class Fingerprint(GenericFingerprint):
|
|||||||
setDbms("%s 4" % DBMS.MYSQL)
|
setDbms("%s 4" % DBMS.MYSQL)
|
||||||
self.getBanner()
|
self.getBanner()
|
||||||
|
|
||||||
|
kb.data.has_information_schema = False
|
||||||
|
|
||||||
if not conf.extensiveFp:
|
if not conf.extensiveFp:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
@@ -291,6 +293,8 @@ class Fingerprint(GenericFingerprint):
|
|||||||
setDbms("%s 3" % DBMS.MYSQL)
|
setDbms("%s 3" % DBMS.MYSQL)
|
||||||
self.getBanner()
|
self.getBanner()
|
||||||
|
|
||||||
|
kb.data.has_information_schema = False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
else:
|
else:
|
||||||
warnMsg = "the back-end DBMS is not %s" % DBMS.MYSQL
|
warnMsg = "the back-end DBMS is not %s" % DBMS.MYSQL
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ Copyright (c) 2006-2021 sqlmap developers (https://sqlmap.org/)
|
|||||||
See the file 'LICENSE' for copying permission
|
See the file 'LICENSE' for copying permission
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import distutils.version
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from lib.core.agent import agent
|
from lib.core.agent import agent
|
||||||
@@ -17,6 +16,7 @@ from lib.core.common import normalizePath
|
|||||||
from lib.core.common import ntToPosixSlashes
|
from lib.core.common import ntToPosixSlashes
|
||||||
from lib.core.common import randomStr
|
from lib.core.common import randomStr
|
||||||
from lib.core.common import unArrayizeValue
|
from lib.core.common import unArrayizeValue
|
||||||
|
from lib.core.compat import LooseVersion
|
||||||
from lib.core.data import kb
|
from lib.core.data import kb
|
||||||
from lib.core.data import logger
|
from lib.core.data import logger
|
||||||
from lib.core.data import paths
|
from lib.core.data import paths
|
||||||
@@ -38,13 +38,13 @@ class Takeover(GenericTakeover):
|
|||||||
|
|
||||||
banVer = kb.bannerFp["dbmsVersion"]
|
banVer = kb.bannerFp["dbmsVersion"]
|
||||||
|
|
||||||
if banVer and distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("5.0.67"):
|
if banVer and LooseVersion(banVer) >= LooseVersion("5.0.67"):
|
||||||
if self.__plugindir is None:
|
if self.__plugindir is None:
|
||||||
logger.info("retrieving MySQL plugin directory absolute path")
|
logger.info("retrieving MySQL plugin directory absolute path")
|
||||||
self.__plugindir = unArrayizeValue(inject.getValue("SELECT @@plugin_dir"))
|
self.__plugindir = unArrayizeValue(inject.getValue("SELECT @@plugin_dir"))
|
||||||
|
|
||||||
# On MySQL 5.1 >= 5.1.19 and on any version of MySQL 6.0
|
# On MySQL 5.1 >= 5.1.19 and on any version of MySQL 6.0
|
||||||
if self.__plugindir is None and distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("5.1.19"):
|
if self.__plugindir is None and LooseVersion(banVer) >= LooseVersion("5.1.19"):
|
||||||
logger.info("retrieving MySQL base directory absolute path")
|
logger.info("retrieving MySQL base directory absolute path")
|
||||||
|
|
||||||
# Reference: http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_basedir
|
# Reference: http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_basedir
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ Copyright (c) 2006-2021 sqlmap developers (https://sqlmap.org/)
|
|||||||
See the file 'LICENSE' for copying permission
|
See the file 'LICENSE' for copying permission
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import distutils.version
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from lib.core.common import Backend
|
from lib.core.common import Backend
|
||||||
@@ -17,6 +16,7 @@ from lib.core.common import isListLike
|
|||||||
from lib.core.common import isNoneValue
|
from lib.core.common import isNoneValue
|
||||||
from lib.core.common import isStackingAvailable
|
from lib.core.common import isStackingAvailable
|
||||||
from lib.core.common import randomStr
|
from lib.core.common import randomStr
|
||||||
|
from lib.core.compat import LooseVersion
|
||||||
from lib.core.data import kb
|
from lib.core.data import kb
|
||||||
from lib.core.data import logger
|
from lib.core.data import logger
|
||||||
from lib.core.data import paths
|
from lib.core.data import paths
|
||||||
@@ -54,9 +54,9 @@ class Takeover(GenericTakeover):
|
|||||||
if not banVer or not banVer[0].isdigit():
|
if not banVer or not banVer[0].isdigit():
|
||||||
errMsg = "unsupported feature on unknown version of PostgreSQL"
|
errMsg = "unsupported feature on unknown version of PostgreSQL"
|
||||||
raise SqlmapUnsupportedFeatureException(errMsg)
|
raise SqlmapUnsupportedFeatureException(errMsg)
|
||||||
elif distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("10"):
|
elif LooseVersion(banVer) >= LooseVersion("10"):
|
||||||
majorVer = banVer.split('.')[0]
|
majorVer = banVer.split('.')[0]
|
||||||
elif distutils.version.LooseVersion(banVer) >= distutils.version.LooseVersion("8.2") and '.' in banVer:
|
elif LooseVersion(banVer) >= LooseVersion("8.2") and '.' in banVer:
|
||||||
majorVer = '.'.join(banVer.split('.')[:2])
|
majorVer = '.'.join(banVer.split('.')[:2])
|
||||||
else:
|
else:
|
||||||
errMsg = "unsupported feature on versions of PostgreSQL before 8.2"
|
errMsg = "unsupported feature on versions of PostgreSQL before 8.2"
|
||||||
|
|||||||
@@ -160,6 +160,9 @@ timeout = 30
|
|||||||
# Default: 3
|
# Default: 3
|
||||||
retries = 3
|
retries = 3
|
||||||
|
|
||||||
|
# Retry request on regexp matching content.
|
||||||
|
retries = 3
|
||||||
|
|
||||||
# Randomly change value for the given parameter.
|
# Randomly change value for the given parameter.
|
||||||
rParam =
|
rParam =
|
||||||
|
|
||||||
|
|||||||
17
sqlmap.py
17
sqlmap.py
@@ -18,7 +18,6 @@ try:
|
|||||||
sys.exit("[!] wrong installation detected (missing modules). Visit 'https://github.com/sqlmapproject/sqlmap/#installation' for further details")
|
sys.exit("[!] wrong installation detected (missing modules). Visit 'https://github.com/sqlmapproject/sqlmap/#installation' for further details")
|
||||||
|
|
||||||
import bdb
|
import bdb
|
||||||
import distutils
|
|
||||||
import glob
|
import glob
|
||||||
import inspect
|
import inspect
|
||||||
import json
|
import json
|
||||||
@@ -58,12 +57,14 @@ try:
|
|||||||
from lib.core.common import setPaths
|
from lib.core.common import setPaths
|
||||||
from lib.core.common import weAreFrozen
|
from lib.core.common import weAreFrozen
|
||||||
from lib.core.convert import getUnicode
|
from lib.core.convert import getUnicode
|
||||||
from lib.core.data import cmdLineOptions
|
|
||||||
from lib.core.data import conf
|
|
||||||
from lib.core.data import kb
|
|
||||||
from lib.core.common import MKSTEMP_PREFIX
|
from lib.core.common import MKSTEMP_PREFIX
|
||||||
from lib.core.common import setColor
|
from lib.core.common import setColor
|
||||||
from lib.core.common import unhandledExceptionMessage
|
from lib.core.common import unhandledExceptionMessage
|
||||||
|
from lib.core.data import cmdLineOptions
|
||||||
|
from lib.core.data import conf
|
||||||
|
from lib.core.data import kb
|
||||||
|
from lib.core.datatype import OrderedSet
|
||||||
|
from lib.core.compat import LooseVersion
|
||||||
from lib.core.compat import xrange
|
from lib.core.compat import xrange
|
||||||
from lib.core.exception import SqlmapBaseException
|
from lib.core.exception import SqlmapBaseException
|
||||||
from lib.core.exception import SqlmapShellQuitException
|
from lib.core.exception import SqlmapShellQuitException
|
||||||
@@ -114,7 +115,7 @@ def checkEnvironment():
|
|||||||
logger.critical(errMsg)
|
logger.critical(errMsg)
|
||||||
raise SystemExit
|
raise SystemExit
|
||||||
|
|
||||||
if distutils.version.LooseVersion(VERSION) < distutils.version.LooseVersion("1.0"):
|
if LooseVersion(VERSION) < LooseVersion("1.0"):
|
||||||
errMsg = "your runtime environment (e.g. PYTHONPATH) is "
|
errMsg = "your runtime environment (e.g. PYTHONPATH) is "
|
||||||
errMsg += "broken. Please make sure that you are not running "
|
errMsg += "broken. Please make sure that you are not running "
|
||||||
errMsg += "newer versions of sqlmap with runtime scripts for older "
|
errMsg += "newer versions of sqlmap with runtime scripts for older "
|
||||||
@@ -190,7 +191,7 @@ def main():
|
|||||||
target = None
|
target = None
|
||||||
|
|
||||||
try:
|
try:
|
||||||
kb.targets.clear()
|
kb.targets = OrderedSet()
|
||||||
target = targets[i]
|
target = targets[i]
|
||||||
|
|
||||||
if not re.search(r"(?i)\Ahttp[s]*://", target):
|
if not re.search(r"(?i)\Ahttp[s]*://", target):
|
||||||
@@ -533,7 +534,7 @@ def main():
|
|||||||
|
|
||||||
# short delay for thread finalization
|
# short delay for thread finalization
|
||||||
_ = time.time()
|
_ = time.time()
|
||||||
while threading.activeCount() > 1 and (time.time() - _) > THREAD_FINALIZATION_TIMEOUT:
|
while threading.active_count() > 1 and (time.time() - _) > THREAD_FINALIZATION_TIMEOUT:
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
if cmdLineOptions.get("sqlmapShell"):
|
if cmdLineOptions.get("sqlmapShell"):
|
||||||
@@ -554,7 +555,7 @@ if __name__ == "__main__":
|
|||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
finally:
|
finally:
|
||||||
# Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program
|
# Reference: http://stackoverflow.com/questions/1635080/terminate-a-multi-thread-python-program
|
||||||
if threading.activeCount() > 1:
|
if threading.active_count() > 1:
|
||||||
os._exit(getattr(os, "_exitcode", 0))
|
os._exit(getattr(os, "_exitcode", 0))
|
||||||
else:
|
else:
|
||||||
sys.exit(getattr(os, "_exitcode", 0))
|
sys.exit(getattr(os, "_exitcode", 0))
|
||||||
|
|||||||
Reference in New Issue
Block a user