File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1717
1818def 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
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 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
66ABSOLUTE
77ACTION
@@ -258,3 +258,196 @@ WORK
258258WRITE
259259YEAR
260260ZONE
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
You can’t perform that action at this time.
0 commit comments