Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 39f1311

Browse files
committed
adding very useful tampering script
1 parent 95dea1f commit 39f1311

3 files changed

Lines changed: 232 additions & 2 deletions

File tree

tamper/randomcase.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
def tamper(payload):
1919
"""
20-
Replaces each character with random case value
20+
Replaces each keyword character with random case value
2121
Example: 'INSERT' might become 'InsERt'
2222
"""
2323

tamper/versionedkeywords.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/usr/bin/env python
2+
3+
"""
4+
$Id$
5+
6+
Copyright (c) 2006-2011 sqlmap developers (http://sqlmap.sourceforge.net/)
7+
See the file 'doc/COPYING' for copying permission
8+
"""
9+
10+
import re
11+
12+
from lib.core.common import randomRange
13+
from lib.core.data import kb
14+
from lib.core.enums import PRIORITY
15+
16+
__priority__ = PRIORITY.NORMAL
17+
18+
def tamper(payload):
19+
"""
20+
Encloses each keyword with versioned comment
21+
Example: 'INSERT' will become '/*!INSERT*/'
22+
"""
23+
24+
def process(match):
25+
word = match.group('word')
26+
if word.upper() in kb.keywords and word.upper() not in ["CAST"]: # CAST can't be commented out
27+
return match.group().replace(word, "/*!%s*/" % word)
28+
else:
29+
return match.group()
30+
31+
retVal = payload
32+
33+
if payload:
34+
retVal = re.sub(r"(?<=\W)(?P<word>[A-Za-z_]+)(?=\W|\Z)", lambda match: process(match), retVal)
35+
retVal = retVal.replace(" /*!", "/*!").replace("*/ ", "*/")
36+
37+
return retVal

txt/keywords.txt

Lines changed: 194 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Copyright (c) 2006-2011 sqlmap developers (http://sqlmap.sourceforge.net/)
22
# See the file 'doc/COPYING' for copying permission
33

4-
#SQL-92 keywords (reference: http://developer.mimer.com/validator/sql-reserved-words.tml)
4+
# SQL-92 keywords (reference: http://developer.mimer.com/validator/sql-reserved-words.tml)
55

66
ABSOLUTE
77
ACTION
@@ -258,3 +258,196 @@ WORK
258258
WRITE
259259
YEAR
260260
ZONE
261+
262+
# MySQL 5.0 keywords (reference: http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html)
263+
ADD
264+
ALL
265+
ALTER
266+
ANALYZE
267+
AND
268+
ASASC
269+
ASENSITIVE
270+
BEFORE
271+
BETWEEN
272+
BIGINT
273+
BINARYBLOB
274+
BOTH
275+
BY
276+
CALL
277+
CASCADE
278+
CASECHANGE
279+
CAST
280+
CHAR
281+
CHARACTER
282+
CHECK
283+
COLLATE
284+
COLUMN
285+
CONCAT
286+
CONDITIONCONSTRAINT
287+
CONTINUE
288+
CONVERT
289+
CREATE
290+
CROSS
291+
CURRENT_DATE
292+
CURRENT_TIMECURRENT_TIMESTAMP
293+
CURRENT_USER
294+
CURSOR
295+
DATABASE
296+
DATABASES
297+
DAY_HOUR
298+
DAY_MICROSECONDDAY_MINUTE
299+
DAY_SECOND
300+
DEC
301+
DECIMAL
302+
DECLARE
303+
DEFAULTDELAYED
304+
DELETE
305+
DESC
306+
DESCRIBE
307+
DETERMINISTIC
308+
DISTINCTDISTINCTROW
309+
DIV
310+
DOUBLE
311+
DROP
312+
DUAL
313+
EACH
314+
ELSEELSEIF
315+
ENCLOSED
316+
ESCAPED
317+
EXISTS
318+
EXIT
319+
EXPLAIN
320+
FALSEFETCH
321+
FLOAT
322+
FLOAT4
323+
FLOAT8
324+
FOR
325+
FORCE
326+
FOREIGNFROM
327+
FULLTEXT
328+
GRANT
329+
GROUP
330+
HAVING
331+
HIGH_PRIORITYHOUR_MICROSECOND
332+
HOUR_MINUTE
333+
HOUR_SECOND
334+
IF
335+
IFNULL
336+
IGNORE
337+
ININDEX
338+
INFILE
339+
INNER
340+
INOUT
341+
INSENSITIVE
342+
INSERT
343+
INTINT1
344+
INT2
345+
INT3
346+
INT4
347+
INT8
348+
INTEGER
349+
INTERVALINTO
350+
IS
351+
ISNULL
352+
ITERATE
353+
JOIN
354+
KEY
355+
KEYS
356+
KILLLEADING
357+
LEAVE
358+
LEFT
359+
LIKE
360+
LIMIT
361+
LINESLOAD
362+
LOCALTIME
363+
LOCALTIMESTAMP
364+
LOCK
365+
LONG
366+
LONGBLOBLONGTEXT
367+
LOOP
368+
LOW_PRIORITY
369+
MATCH
370+
MEDIUMBLOB
371+
MEDIUMINT
372+
MEDIUMTEXTMIDDLEINT
373+
MINUTE_MICROSECOND
374+
MINUTE_SECOND
375+
MOD
376+
MODIFIES
377+
NATURAL
378+
NOTNO_WRITE_TO_BINLOG
379+
NULL
380+
NUMERIC
381+
ON
382+
OPTIMIZE
383+
OPTION
384+
OPTIONALLYOR
385+
ORDER
386+
OUT
387+
OUTER
388+
OUTFILE
389+
PRECISIONPRIMARY
390+
PROCEDURE
391+
PURGE
392+
READ
393+
READS
394+
REALREFERENCES
395+
REGEXP
396+
RELEASE
397+
RENAME
398+
REPEAT
399+
REPLACE
400+
REQUIRERESTRICT
401+
RETURN
402+
REVOKE
403+
RIGHT
404+
RLIKE
405+
SCHEMA
406+
SCHEMASSECOND_MICROSECOND
407+
SELECT
408+
SENSITIVE
409+
SEPARATOR
410+
SET
411+
SHOW
412+
SMALLINTSONAME
413+
SPATIAL
414+
SPECIFIC
415+
SQL
416+
SQLEXCEPTION
417+
SQLSTATESQLWARNING
418+
SQL_BIG_RESULT
419+
SQL_CALC_FOUND_ROWS
420+
SQL_SMALL_RESULT
421+
SSL
422+
STARTINGSTRAIGHT_JOIN
423+
TABLE
424+
TERMINATED
425+
THEN
426+
TINYBLOB
427+
TINYINT
428+
TINYTEXTTO
429+
TRAILING
430+
TRIGGER
431+
TRUE
432+
UNDO
433+
UNION
434+
UNIQUEUNLOCK
435+
UNSIGNED
436+
UPDATE
437+
USAGE
438+
USE
439+
USING
440+
UTC_DATEUTC_TIME
441+
UTC_TIMESTAMP
442+
VALUES
443+
VARBINARY
444+
VARCHAR
445+
VARCHARACTERVARYING
446+
VERSION
447+
WHEN
448+
WHERE
449+
WHILE
450+
WITH
451+
WRITEXOR
452+
YEAR_MONTH
453+
ZEROFILL

0 commit comments

Comments
 (0)