File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -75,7 +75,11 @@ def __oneShotErrorUse(expression, field=None):
7575 if field :
7676 nulledCastedField = agent .nullAndCastField (field )
7777
78- if any (Backend .isDbms (dbms ) for dbms in (DBMS .MYSQL , DBMS .MSSQL )):
78+ if any (Backend .isDbms (dbms ) for dbms in (DBMS .MYSQL , DBMS .MSSQL )) and not any (_ in field for _ in ("COUNT" , "CASE" )): # skip chunking of scalar expression (unneeded)
79+ extendedField = re .search (r"[^ ,]*%s[^ ,]*" % re .escape (field ), expression ).group (0 )
80+ if extendedField != field : # e.g. MIN(surname)
81+ nulledCastedField = extendedField .replace (field , nulledCastedField )
82+ field = extendedField
7983 nulledCastedField = queries [Backend .getIdentifiedDbms ()].substring .query % (nulledCastedField , offset , chunk_length )
8084
8185 # Forge the error-based SQL injection request
You can’t perform that action at this time.
0 commit comments