Sqlmap使用指南

这篇具有很好参考价值的文章主要介绍了Sqlmap使用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Sqlmap的使用

使用流程:

当给sqlmap一个url的时候,它会有如下流程:

1、判断可注入的参数

2、判断可用哪种SQL注入技术进行注入

3、识别出哪种数据库

4、根据用户选择,读取哪些数据

支持的模式(5种)

1、基于布尔的盲注,即可根据返回页面判断条件的真假的注入

2、基于时间的盲注,即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句是否执行(通过页面返回时间是否增加来判断)

3、基于报错的盲注,即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中

4、联合查询注入,可以使用union的情况下进行注入

5、堆查询注入,可以同时执行多条语句的执行注入

Sqlmap支持的数据库:

MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB

可以提供一个简单的URL,Burp或WebScarab请求日志文件,文本文档中的完整http请求或者Google的搜索,匹配出结果页面,也可以自己定义一个正则来判断那个地址去测试。测试GET参数,POST参数,HTTP Cookie参数,HTTP User-Agent头和HTTP Referer头来确认是否有SQL注入,它也可以指定用逗号分隔的列表的具体参数来测试。可以设定HTTP(S)请求的并发数,来提高盲注时的效率。

Sqlmap的等级(7个等级)

如果想观察sqlmap对一个点时怎么进行尝试判断及读取数据的,可以使用参数-v

共有7个等级,默认为1

0、只显示python错误及严重的信息

1、同时显示基本信息和警告信息。(默认)

2、同时显示debug信息

3、同时显示注入的payload

4、同时显示HTTP请求

5、同时显示HTTP响应头

6、同时显示HTTP响应页面

相关的参数:(在前面的都是常用的)

-u/--url:获取目标url,格式:http(s)://targeturl[:port]/[…]

-r:从文件中获取HTTP请求,可以跳过设置一些其他参数(如cookie、POST数据等)

--dbs:列出数据库系统的数据库(当前用户有权限读取包含所有数据库列表信息的表中的时候,即可列出所有的数据库)

--tables:列举数据库表

--columns:列举数据库表中的字段

-D,-T,-C:在得知数据库,表名,字段名时,联立读取数据,后面加上--dump

-m:从文本中获取多个目标扫描

-l:从Burp或者WebScarab代理中获取日志,交给sqlmap来一个个检测是否有注入

-g:sql可以检测注入Google搜索结果中GET参数(只获取前100个结果)

python sqlmap.py -g "inurl:\".php?id=1\""

--force-ssl:当请求是HTTPS的时候需要配合这个参数,或者在Host头后面加上:443

--data:该参数是把数据以POST方式提交

python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1" -f --banner --dbs --users

--param-del:GET或POST的数据需要用其他字符分割测试参数的时候用

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

--cookie,--load-cookies,--drop-set-cookie:

该参数在两方面有用:web应用登录时,想要在这些头参数中测试SQL注入时。可以通过抓包把cookie获取到,复制出来,然后加到--cookie参数里。在HTTP请求中,遇到Set-Cookie的话,sqlmap会自动获取并且在以后的请求中加入,并且会尝试SQL注入。如果你不想接受Set-Cookie可以使用--drop-set-cookie参数来拒接。

当使用-cookie参数时,当返回一个Set-Cookie头的时候,sqlmap会询问你用哪个cookie来继续接下来的请求。当--level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数。

--user-agent,--random-agent:默认sql的HTTP的请求头中User-Agent值为

sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)

可以使用--user-anget参数来修改,同时也可以使用--random-agnet参数来随机的从./txt/user-agents.txt中获取。

当--level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入。

--referer:sqlmap可以在请求中伪造Referer,当--level参数设定为3或者3以上的时候会尝试对referer注入。

--headers:通过该参数来增加额外的http头

--auth-type,--auth-cred:可以用来登录HTTP的认证保护支持的三种方式:Basic、Digest、NTLM

python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass"

--auth-cert:HTTP协议的证书认证,当Web服务器需要客户端证书进行身份认证时,需要提供两个文件:key_file,cert_file

key_file是格式为PEM文件,包含着你的私钥,cert_file是格式为PEM的连接文件。

--proxy,--proxy-cred,--ignore-proxy:HTTP(S)代理

使用--proxy代理是格式为:http://url:port。

当HTTP(S)代理需要认证是可以使用--proxy-cred参数:username:password。

--ignore-proxy拒绝使用本地局域网的HTTP(S)代理。

--scope:利用正则过滤目标网址

python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"

--safe-url,--safe-freq:避免过多的错误请求被屏蔽

有的web应用程序会在你多次访问错误的请求时屏蔽掉你以后的所有请求,这样在sqlmap进行探测或者注入的时候可能造成错误请求而触发这个策略,导致以后无法进行。

绕过这个策略有两种方式:

1、--safe-url:提供一个安全不错误的连接,每隔一段时间都会去访问一下。

2、--safe-freq:提供一个安全不错误的连接,每次测试请求之后都会再访问一边安全连接。

--eval:每次请求时候自定义的python代码

在有些时候,需要根据某个参数的变化,而修改另个一参数,才能形成正常的请求,这时可以用--eval参数在每次请求时根据所写python代码做完修改后请求。

python sqlmap.py -u "http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib;hash=hashlib.md5(id).hexdigest()"

--dbms:默认情况会自动探测web应用后端的数据库

--os:默认情况自动探测数据库服务器系统

--prefix,--suffix:注入payload,有些环境需要注入的payload的前面或者后面加一些字符,来保证payload的正常执行。

例如,代码中是这样调用数据库的:

$query = "SELECT * FROM users WHERE id=(’" . $_GET[’id’] . "’) LIMIT 0, 1";

这时你就需要--prefix和--suffix参数了:

python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_str_brackets.php?id=1" -p id --prefix "’)" --suffix "AND (’abc’=’abc"

这样执行的SQL语句变成:

$query = "SELECT * FROM users WHERE id=(’1’) <PAYLOAD> AND (’abc’=’abc’) LIMIT 0, 1";

--level:探测等级,共有5个等级,默认为1,等级越高,探测的越全面

--risk:风险等级,共有4个风险等级,默认为1,会测试大部分测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试

--second-order:二阶SQL注入,有些时候注入点输入的数据看返回结果的时候并不是当前的页面,而是另外的一个页面,这时候就需要你指定到哪个页面获取响应判断真假。--second-order后面跟一个判断页面的URL地址。

-b,--banner:返回数据库的版本号

-current-user:获取管理数据的用户

--current-db:返回当前连接的数据库

--users:当前用户有权限读取包含所有用户的表权限时,列出所有管理用户

--passwords:当前用户有权限读取包含用户密码的彪的权限时,sqlmap会现列举出用户,然后列出hash,并尝试破解。

--schema,--exclude-sysdbs:用户可以用此参数获取数据库的架构,包含所有的数据库,表和字段,以及各自的类型。

加上--exclude-sysdbs参数,将不会获取数据库自带的系统库内容。

$ python sqlmap.py -u "http://192.168.48.130/sqlmap/mysql/get_int.php?id=1" --schema --batch --exclude-sysdbs

--search:可以用来寻找特定的数据库名,所有数据库中的特定表名,所有数据库表中的特定字段

--udf-inject,--shared-lib:可以通过编译MySQL注入自定义的函数(UDFs),或PostgreSQL在windows中共享库,DLL,或者Linux/Unix中共享对象,sqlmap将会问你一些问题,上传到服务器数据库自定义函数,然后根据你的选择执行他们,当你注入完成后,sqlmap将会移除它们。

--os-cmd,--os-shell:

当数据库为MySQL,PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数。

在MySQL、PostgreSQL,sqlmap上传一个二进制库,包含用户自定义的函数,sys_exec()和sys_eval()。

那么他创建的这两个函数可以执行系统命令。在Microsoft SQL Server,sqlmap将会使用xp_cmdshell存储过程,如果被禁(在Microsoft SQL Server 2005及以上版本默认禁制),sqlmap会重新启用它,如果不存在,会自动创建。

用--os-shell参数也可以模拟一个真实的shell,可以输入你想执行的命令。

--batch:非交互模式,不需要用户输入,将会默认值一直运行下去

--crawl:爬行网站URL,sqlmap可以收集潜在的可能存在漏洞的连接,后面跟的参数是爬行的深度。

--check-waf:启发式检测WAF/IPS/IDS保护,WAF/IPS/IDS保护可能会对sqlmap造成很大的困扰,如果怀疑目标有此防护的话,可以使用此参数来测试。 sqlmap将会使用一个不存在的参数来注入测试

--identify-waf:sqlmap可以尝试找出WAF/IPS/IDS保护,方便用户做出绕过方式。目前大约支持30种产品的识别。文章来源地址https://www.toymoban.com/news/detail-715416.html

到了这里,关于Sqlmap使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [网络安全]sqlmap加密注入教程+实战详析

    在使用手工注入绕过参数加密的限制时,需要构造出原始POC再进行加密注入,耗时耗力,因此采用sqlmap加密注入。 在开始本文前,sqlmap基础知识及姿势可参考: [网络安全]以留言板项目渗透实例带你入门sqlmap 基本语法: * 表示只对该参数进行注入测试,不加 * 的话还会测试

    2024年02月07日
    浏览(53)
  • 【SQLMap工具】SQLMap基础及简单使用方法

    SQLMap是一个自动化的SQL注入工具,主要功能是扫描、发现,并利用给定url(域名)的SQL注入漏洞。SQLMap支持的数据库有MySQL 、Oracle 、PostgreSQL 、Microsoft SQL Server、Microsoft Access 、IBM DB2, SQ Lite 、Firebird 、Sybase和SAPMaxDB 。 相对于手工注入,sqlmap的高效注入大大提高了我们渗透效率。

    2024年02月10日
    浏览(46)
  • 网络爬虫使用指南:安全合理,免责声明

    作为一名经验丰富的网络爬虫,我深知在爬取网页数据时可能会遇到一些问题和风险。因此,我特别撰写这篇经验分享来告诉大家如何合理、安全地使用网络爬虫,以及注意事项和免责声明。 一、了解目标网站 在开始爬取之前,首先要对目标网站进行仔细的了解。了解网站

    2024年02月03日
    浏览(95)
  • SQL注入(DVWA靶场搭建及使用、sqlMap注入、sqlmap问题及解决办法)

    1、客户端向服务端请求的流程 2、SQL注入常见分类  3、SQL注入常见过程  4、SQL注入的作用  5、常用SQL测试语句  注释字符: 一、下载DVWA 下载地址:DVWA/README.zh.md at master · digininja/DVWA · GitHub 这里我是从GitHub上下载的,小伙伴们自行选择 二、安装DVWA 在安装前,需要做一个

    2024年01月23日
    浏览(46)
  • Sqlmap工具使用笔记

    SQLmap建议使用kali版本的 不建议使用windows版本 攻击的时候建议使用vps去攻击 否则本地ip会很快被封 本身是使用python编写的 非常厉害 基本人手一个  而且是开源的 可以自行重写改造开发 如果sqlmap攻击比较慢 要么是网站比较慢 或者是有防火墙,这款软件本身是有指纹的 可能

    2024年02月06日
    浏览(41)
  • SQLMAP的使用

    目录 一、SQLMAP 介绍 1、SQLMAP 简介 2、SQLMAP 支持的注入类型 3、运行 sqlmap 4、SQLMAP 常用参数介绍     二、SQLMAP 常用探测方式 1、探测单个目标 2、探测多个目标 3、从文件加载 HTTP 请求进行探测 4、从 burpsuite 日志记录中进行探测 5、检测 SQL 注入漏洞存在的技术类型 6、枚举数

    2024年02月06日
    浏览(28)
  • sqlmap使用教程

    目录 sqlmap基础使用 1、判断是否存在注入 2、判断文本中的请求是否存在注入 3、查询当前用户下的所有数据库 4、获取数据库中的表名 5、获取表中的字段名 6、获取字段内容 7、获取数据库所有用户 8、获取数据库用户的密码 9、获取当前网站数据库的名称 10、获取当前网站数

    2024年02月15日
    浏览(60)
  • Sqlmap详细使用教程

    sqlmap 是一个开源的渗透测试工具,可以用来自动化的检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过带外数据连接的方式执行操

    2024年02月11日
    浏览(43)
  • sqlmap的基础使用

    一、以less-3/为入口,利用sqlmap实施自动化注入,获取sqli-labs网站的登录账户和密码 1、访问http://192.168.207.1/sql/Less-3,启动sqlmap 2、寻找注入点http://192.168.207.1/sql/Less-3/?id=1 3、 获取数据库的所有库名 -u \\\"http://192.168.207.1/sql/Less-3/?id=1\\\" 4、获取网站当前所在数据库的库名 -u \\\"http

    2024年02月06日
    浏览(29)
  • sqlmap使用图解

    💪💪 SQLMap 是一个自动化的 SO L注入工具,其主要功能是扫描、发现并利用给定 URL 的 SQL 注入漏洞,内置了根多绕过插件,支持的数据库有 MySOL、Microsoft Access、IBM DB2、SQLite、Firebird、PostgreSQL、Microsoft SQL Server.Sybase 和 SAPMaxDB。SQLMap 采用了以下5种独特的 SQL 注入技术。 基于布

    2023年04月23日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包