服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

一些重要的SQLMap命令

日期: 来源:LemonSec收集编辑:

前言

SQLMap是每个渗透测试师的必备工具。这是众多强大的主流工具之一,尤其是在测试OWASP Top 10中的SQL注入漏洞时。从扫描SQL注入漏洞到获取数据库名字、表和列,以及获得系统访问权限,其可被用于多种目的。
在本文中,我们将看到不同的SQLMap命令,在对不同场景下的SQL注入进行利用时可能会比较得心应手。
可以从如下链接下载SQLMap:
Windows
Linux: git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
出于演示目的,我用的是Vulnhub上的这个虚拟机。
让我们一起来看看SQLMap这款工具在GET和POST请求上的基本用法。

GET请求

  • sqlmap -u http://site-to-test.com/test.php?id=1 -p id
  • sqlmap -u http://site-to-test.com/test.php?id=1*
    • -u:要扫描的URL
    • -p:要扫描的字段
    • *:要扫描的字段(如果不用-p来指定的话)

POST请求

我们可以在SQLMap扫描中指定POST请求体中的数据。
  • sqlmap -u http://site-to-test.com/admin/index.php –data=”user=admin&password=admin” -p user
  • –data=POST数据
另外一种方式是复制Burp请求到一个文件里,然后同样传给SQLMap。
  • sqlmap –r 请求文件的路径
让我们再深入地了解一下SQLMap的其他选项。

扫描POST登录页面

POST请求的登录页面是通过cookie头来进行身份认证的,也就是GET或者POST请求时,包含在HTTP头里的。我们必须给SQLMap提供有效的cookie才能对登录页面的POST请求进行扫描。
  • sqlmap -u http://192.168.202.163/admin/index.php?id=1 –cookie=”cookie value
/admin/index.php?id=1 是一个登录页面的POST请求。
  • sqlmap -u http://192.168.202.163/admin/index.php?id=1 –user-agent=infosec
  • sqlmap -u http://192.168.202.163/admin/index.php?id=1 –referer= http://192.168.202.163/admin/index.php
除此以外,我们还可以通过–random-agent选项来随机指定user-agent头。

爬取

爬取(crawl)是一个非常重要的选项,可以让SQLMap从网站根目录开始爬取,爬取深度可以在命令中指定。
sqlmap -u http://192.168.202.160/ –crawl=1
–crawl: 指定爬取深度。(例如:指定值为2表示让SQLMap最多爬取两层目录)
如果想排除爬取范围内的任意页面,我们可以通过使用–crawl-exclude参数。当爬取POST型的登录页面时,该选项十分有用。
  • sqlmap -u http://192.168.202.163/ –crawl=3 –cookie=”cookie value” –crawl-exclude=”logout”
该命令可以最多爬取三层目录,并排除任何存在“logout”(注销)关键字的URL。
如下图所示,SQLMap爬取了网站,但是排除了注销的URL。
去掉–crawl-exclude选项,再运行一次同样的命令:
如下图所示,去掉–crawl-exclude选项后,SQLMap爬取了注销URL。该URL由于注销会导致退出当前会话(session),失效的会话会导致无法完成扫描。

通过代理使用SQLMap

我们可以指定一个代理来记录传递的请求。如果想通过Burp这样的代理工具来传递请求,打开Burp Suite并配置其监听本机的8080端口。接着使用如下SQLMap命令:
  • sqlmap -u http://192.168.202.162/cat.php?id=1 -p id –proxy=”http://localhost:8080″
现在想象一下这样的场景:当SQL注入关键字,比如OrderBy和Union,被服务器端加到黑名单了。对于这种场景,我们可以通过驼峰拼写法来绕过这类限制。用SQLMap将流量转发到Burp,然后用Burp的“匹配和替换(match and replace)”功能来绕过以上限制。
匹配和替换功能可以在Burp的“Proxy”标签下的“Options”标签下找到。
这样就可以检查请求中是否存在“union”这样的关键字。如果存在,那么将其替换为“UnIoN”。
在某些网站只能通过代理服务器访问的场景下,同样可以用下面的命令来指定:
  • sqlmap -u http://192.168.202.162/cat.php?id=1 -p id –proxy=”http://localhost:8080″ –proxy-cred=username:password

批(量)处理

批处理(batch)命令适用于非交互的会话。在扫描的时候,SQLMap可能会让我们提供一些输入:比如,在用爬取功能的时候,会问用户是否想扫描指定的URL。当在命令中指定–batch选项时,SQLMap会用一个默认值来处理,而不再问用户。

表单

存在表单字段的页面URL(比如登录页面)可以通过–form选项来解析该页面,并引导用户去测试指定字段。
现在,可以通过–form和–batch选项一起来高效地测试存在大量表单字段的页面了。因为这样可以解析该页面,并代替用户自动提供输入来测试这些表单字段。
如果想要扫描整个网站,可以同时用crawl和form选项。

线程

线程(threads)选项可以让用户指定SQLMap发送的并发请求数量,这样可以减少整体的测试时间。不过别总是保持一个较高的值,因为可能会影响结果的准确性。

危险和级别(Risk and level)

危险(risk)可以指定SQLMap使用的payload类型。默认情况下值为1,最高可以设置为3。值为3时,就是最大值,包含了一些严重的SQL查询。
级别(level)指定要执行的检查或payload的数量。值的范围时从1到5。最大值为5,扫描时会用到大量的payload。
当SQLMap使用默认设置无法扫描注入点时,建议增加risk和level的值。(译者注:此举存在风险【risk】)

详细信息

假如我们想看看SQLMap发送的payload,可以用详细信息(verbose)参数,其值范围是从1到6。

数据库枚举

众所周知,SQLMap主要用于对SQL注入的利用,一起来看看这些通过SQL注入漏洞来枚举数据库的命令。
 1. –dbs: 该选项用于枚举数据库。
2. 现在得到了数据库名。要获得“photoblog”数据库的表,可以执行如下命令:
3. 要获得“users”表中的字段细节,可以执行如下命令:
4. 要转储(dump)“users”这张表中的数据,可以用–dump命令:
5. 查看当前数据库用户:
6. 查看当前数据库名:
7. 查看权限(privileges)、角色(roles),并查看当前数据库用户是否是数据库管理员:

用tamper脚本绕过WAF

很多时候,我们会遇到网站被WAF(Web Application Firewall)保护的场景,我们可以用下面的命令来检查目标网站是否被WAF保护:
  • –identify-waf (译者注:新版本中已移除)
识别出WAF后,我们就可以用tamper脚本来进行绕过。tamper脚本可以修改请求来绕过WAF检测。这些脚本可以在/usr/share/sqlmap/tmper/ 目录下找到。

执行系统命令

如果当前数据库用户拥有DBA权限,我们就可以使用如下选项来执行操作系统级别的命令:
  • 对于Linux目标服务器:
  •  sqlmap -u http://192.168.202.162/cat.php?id=1 –os-shell
  • 对于Windows目标服务器:
  •  sqlmap -u http://192.168.202.162/cat.php?id=1 –os-cmd cmd命令

执行SQL查询

我们还可以用下面的命令在数据库中执行SQL语句:
  • sqlmap -u 192.168.202.164/cat.php?id=2 –sql-shell

其他选项

一些其他选项如下:
1. 扫描一些被类似Basic、NTLM和Digest这样的HTTP身份认证保护的页面:
  • sqlmap -u http://example.com/admin.aspx –auth-type Basic –auth-cred “admin:admin”
2. 扫描被基于密钥认证保护的页面:
  • sqlmap -u http://example.com/admin.aspx –auth-file=PEM证书或私钥文件路径
3. 随机化发起攻击的IP地址(在比如WAF检测,或者为了增加被溯源的难度,隐藏攻击来源等场景下很有用)。
使用默认的Tor(洋葱路由)匿名网络:
  • sqlmap -u http://example.com/admin.aspx –tor
指定Tor的端口:
  • sqlmap -u http://example.com/admin.aspx –tor-port=tor代理端口
4. 如果需要在每次HTTP请求之间延时:
  • sqlmap -u http://example.com/admin.aspx –delay=1 #延时1秒
5. 如果页面被CSRF token保护,同样可以用下面的命令:
  • sqlmap -u http://example.com/admin.aspx –csrf-token=csrf token
6. 在二阶注入中,SQL注入的payload会被存储在目标网站的数据库中,之后在访问其他页面的时候被执行。我们指定一个SQLMap用来请求的已被注入的URL。然后让SQLMap用如下命令来注入:
  • sqlmap -r /root/Desktop/Burp.txt –second-order “http://target/vulnerbalepage.php”
Burp.txt是包含将要用于测试的文件,其中包含注入点。
  • –second-order “URL” 指定的是每次注入后SQLMap去访问的URL。

总结

在检测和利用SQL注入漏洞方面,SQLMap是一个不错的工具。其支持如此多的选项,开关以及可以创建并使用自定义脚本,让它从众多检测SQL注入漏洞的开源工具中脱颖而出。
文章转自https://blog.cracker101.com/

侵权请私聊公众号删文


 热文推荐  


欢迎关注LemonSec
觉得不错点个“赞”、“在看“

相关阅读

  • PPT中遇到图片不会排版?两个字:放大!!

  • 点击 预约 ,获得直播课开课提醒 直播主题:职场PPT设计改稿思路 直播福利:免费抽奖《PPT设计思维》在之前的文章里,我分享过一些关于图片排版的方法。比如像三维旋转:或者是图
  • 河南白象方便面的PPT长啥样?国潮风秀炸了!

  • 点击 预约/观看 ,观看今晚PPT直播课免费抽图书鼠标垫提到方便面,我相信大家都吃过,但是方便面的幻灯片,你有见过吗? 今天这篇文章,我们就为这家曾经被央视点赞的企业,来修改一份
  • 公司PPT模板丑到脑壳疼!别慌,3招秒变高级!

  • 点击 预约 ,获得直播课开课提醒 直播主题:职场PPT设计改稿思路 直播福利:免费抽奖《PPT设计思维》当套用公司自有的模板时,该如何把PPT做的更出彩呢?这是很多人向我问过的一
  • 三点设计,助力B端办公产品提效

  • 在现代办公环境中,提高工作效率是每个人追求的目标,也是企业对每个员工的期望。为达到这个目标,使用办公提效产品已经成为了一种共识。58云效作为一款企业内部的效能研发平台,旨
  • 掌握 Linux 命令行的 10 个高级 Shell 脚本命令

  • 击上方蓝字 ● 关注Linux公社 Shell脚本是一种强大的工具,可以让你的工作更轻松高效。如果你是Linux用户,你可能熟悉基本的shell命令,比如echo,cd和ls。然而,还有更高级的命
  • 如何使用MageScan检测Magento站点的安全性

  • 关于MageScan MageScan是一款功能强大的安全检测工具,在该工具的帮助下,广大研究人员可以轻松对目标MageScan站点进行性能和安全性评估。 工具安装 .phar安装首先,我们需要从
  • 命令执行漏洞利用及绕过方式总结

  • 命令注入常见的方法1.常见管道符  Windows系统支持的管道符  Linux系统支持的管道符2.空格过滤  ${IFS}  重定向符<>  %09(需要php环境)3.黑名单绕过  拼接  ba

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四
  • 美国对华2000亿关税清单,到底影响有多大?

  • 1 今天A股大跌,上证最大跌幅超过2%。直接导火索是美国证实计划对华2000亿美元产品加征25%关税。 听起来,2000亿美元数目巨大,我们来算笔账。 2000亿美元,按现在人民币汇率

最新文章

  • “我从高职毕业,当了清华老师”

  • 陕西姑娘邢小颖高职毕业后,以专业排名第一的成绩,在清华大学担任实践教学指导老师。今年29岁的她,已在清华任教9年。此前,她的讲课视频在网上播放量过亿。火出圈的她,引来更多关
  • 一些重要的SQLMap命令

  • 前言SQLMap是每个渗透测试师的必备工具。这是众多强大的主流工具之一,尤其是在测试OWASP Top 10中的SQL注入漏洞时。从扫描SQL注入漏洞到获取数据库名字、表和列,以及获得系统
  • 记录一次实战,注入+本地JS绕过拿shell

  • 01 正文1.找注入点2.测试是否有注入:http://xxxxxx/xxxx.php?id=6’ ,没有回显输入:http://xxxxxx/xxxx.php?id=6 and 1=1 有回显,and 1 = 2没有回显,说明存在注入。3. 使用sqlm
  • 94年出生的他,斩获“金头盔”!

  • 任立乐1994年出生是歼击机飞行员至高荣誉“金头盔”获得者年轻的“金头盔”飞行员是怎样“炼”成的一起来看↓↓↓中部战区航空兵某旅机场数架战机依次升空红方飞行员任立乐