SQLMAP工具之基础详解

本文详细介绍了SQLMAP工具的用法,涵盖了布尔型、报错型等六种注入方式,并展示了常用命令和参数,包括get、post、cookie测试及批量扫描。重点讲解了如何控制输出信息和执行流程,以及数据库指定和cookie处理技巧。
摘要由CSDN通过智能技术生成

文中通过详细讲解SQLMAP工具,更加深入的掌握SQLMAP用法;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。

sqlmap基础详解

sqlmap是一个开源的渗透测试工具,它可以自动化检测和利用SQL注入漏洞并接管数据库服务器。它有一个强大的检测引擎,许多适合于终极渗透测试的良好特性和众多的操作选项,从数据库指纹、数据获取到访问底层文件系统、执行操作系统命令。

sqlmap支持六种不同的注入方式:

  • B:Boolean-basedblindSQLinjection(布尔型注入)
  • E:Error-basedSQLinjection(报错型注入)
  • U:UNIONquerySQLinjection(可联合查询注入)
  • S:StackedqueriesSQLinjection(可多语句查询注入)
  • T:Time-basedblindSQLinjection(基于时间延迟注入)
  • Q:InlineSQLInjection(内联注入)

通过命令可以看出详细的帮助文档:

sqlmap -hh 

在这里插入图片描述

常用命令

get方式

sqlmap -u http://xxxx.com/index.php?id=1 -v 1

-u 等同于–url,后面则填写url地址;-v表示输出信息的详细程度级别,最低1,最高6。

sqlmap -u "http://192.168.1.6/06/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -v 1 

如果url中有&这种符号,则需要使用引号把url括起来。
在这里插入图片描述
从图中我们可以看出上面这条url的payload可以布尔、报错、延迟、联合这四种。

sqlmap -u "http://192.168.1.6/06/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -v 3 --flush-session 

有的时候,我们可以第一次执行被拦截或者报错后,这执行的结果就会被存放在缓存中,所以当我们第二次需要从头开始执行的时候,则需要使用上面的命令来清空缓存:
在这里插入图片描述
从图中我们可以看出使用了-v 3后,在我们的执行过程中则有详细的payload。

  • 0:只显示Python回源(tracebacks),错误(error)和关键(criticle)信息。
  • 1:同时显示信息(info)和警告信息(warning)(默认为1)
  • 2: 同时显示调试信息(debug)
  • 3:同时显示注入的有效载荷(payloads)
  • 4:同时显示http请求
  • 5:同时显示http响应头
  • 6:同时显示http响应内容
    当我们在执行过程中,会让你去手动去进行判断Y/N,我们同样可以使用命令来进行直接默认选择:
sqlmap -u "http://192.168.1.6/06/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" --batch -v 2 --flush-  session

在这里插入图片描述
我们同样可以从文件中加载http请求测试:

sqlmap -r url.txt #url.txt中就是http请求包

这里的http请求包则就可以保存为url.txt。
在这里插入图片描述
批量多个目标扫描:

sqlmap -m urls.txt #多个目标

post方式

我们同样可以使用–data参数来进行提交测试:

sqlmap -u http://192.168.1.6/06/vul/sqli/sqli_id.php --data="id=1&submit=%E6%9F%A5%E8%AF%A2" 

在这里插入图片描述
在url的连接符中除了&,还会有;,当出现这个的时候,我们就需要使用参数–param-del来进行分割。
这里利用;就可以对query和id这两个值来进行检测。

sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=1" --param-del=";" 

cookie方式

这里我们可以看出是需要302跳转的,所以我们需要假如cookie,否则就算有注入也无法进行检测:
在这里插入图片描述

sqlmap -u "http://192.168.1.6/01/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=ltqiab34rccs3lbfv8q009tdr6" -v 1

可以看出这样就可以没有302跳转选项:
在这里插入图片描述
在这里插入图片描述

但我们通常对cookie进行检查,则只需要提高等级即可, 而且也不用在这向我们上面这样复杂去添加,因为一般情况下,在我们的http请求包中都会包含cookie,所有只需要把http请求包来进行检测就可以了。
当一般如果带php,通常基本是mysql组合,那么我们同样就可以指定数据库,因为如果我们不指定的话,sqlmap默认会每种数据库进行测试。

sqlmap -u "http://192.168.1.6/06/vul/sqli/sqli_str.php?name=1&submit=%E6%9F%A5%E8%AF%A2" -v 1 --dbms mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全局变量Global

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值