Web网络安全第三讲(sqlmap的使用介绍)

sqlmap的使用介绍

sqlmap获取目标

Sqlmap注入介绍
所谓SQL注入,就是通过把SQL命令插入到web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将SQL命令注入 到后台数据库引擎执行的能力,它可以通过在web表单中输入SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。

SQL注入发生未知HTTP数据包中任意位置

sqlmap输出级别
参数:-v
sqlmap的输出按从简到繁共分为7个级别依次为0、1、2、3、4、5和6.使用参数-v来指定某个等级,如使用参数-v 6来指定输出级别为6.默认输出级别为1。

  • 0:只显示Python的tracebacks信息、错误信息[ERROR]和关键信息[CRITICAL]
  • 1:同时显示普通信息[INFO]和警告信息[WARNING]
  • 2:同时显示调试信息[DEBUG]
  • 3:同时显示注入使用的攻击载荷
  • 4:同时显示HTTP请求头
  • 5:同时显示HTTP响应头
  • 6:同时显示HTTP响应体

Ctrl+A行首//Ctrl+E行尾

Sqlmap获取目标
1.sqlmap直连数据库

  • 服务型数据库-MySQL,Oracle

python3 sqlmap.py -d "mysql://用户名:密码@地址:端口/数据库名字” -f --banner --dbs --users

在这里插入图片描述

–banner 基础信息
–dbs 查询所有数据库
–users 查询所有权限用户信息
在这里插入图片描述
不懂y/n先回车
在这里插入图片描述

  • 文件数据库-SQLite

2.sqlmap指定目标URL
sqlmap直接对单—URL探测,参数使用-u或者 --url

URL格式:http(s): //tagetur[:port]/

4.sqlmap读取不同文件类型进行SQL注入

1.为便于搜索引擎收录,许多网站专门为搜索引擎生成了xml格式的站点地图 参数是 -x
2.从多行文本格式文件读取多个目标,对多个目标进行探测 参数是-m
3.可以将一个HTTP请求保存在文件中,然后使用参数 -r
4.从配置文件sqlmap.conf中读取目标探测 参数是-c

参数 -m
在这里插入图片描述
参数 -r
测试target网页 - 右键 - 检查 - network - RequestHeaders - view source - 复制文本 - 新建保存文档target.txt
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参数 -r
在这里插入图片描述

sqlmap设置请求参数

sqlmap设置请求参数
HTTP请求有很多方法(method),可以在不同位置(GET、POST、cookie和User-Agent等)携带不同参数。往往只有在特定位置携带了特定参数以特定方法发起的请求才是合法有效的请求。Sqlmap运行时除了需要指定目标,有时还需要指定HTTP请求的一些细节。

HTTP方法
一般来说,Sqlmap能自动判断出是使用GET方法还是POST方法,但在某些情况下需要的可能是PUT等很少见的方法,此时就需要用参数–method来指定方法。

sqlmap设置post提交参数
参数 --data= “”
默认情况下,用于执行HTTP请求的HTTP方法是GET,但是可以通过提供在POST请求中发送的数据隐式的将其改为POST。这些数据作为参数,被用于SQL注入检测

提交表单参数
在这里插入图片描述
在这里插入图片描述

sqlmap中用来设置cookie的参数

--cookie
--cookie-del
--load-cookies
--drop-set-cookie

使用场景

web应用程序具有基于cookie验证的过程,要测试的页面只有在登录状态下才能访问,登录状态用cookie识别
想利用cookie值上的SQL注入漏洞,想要检测是否存在cookie注入

sqlmap使用cookie过程

  • 1.登录或浏览页面
  • 2.找到cookie
  • 3.在sqlmap中使用–cookie cookie值
    在这里插入图片描述
    在这里插入图片描述
    sqlmap中用来设置user-agent
    默认情况下,sqlmap使用以下用户代理执行HTTP请求:

sqlmap/1.0-dev-xxxx(http://sqlmap.org)
在这里插入图片描述
sqlmap指定user-agent
使用参数 --user-agent = '指定的user-agent‘

sqlmap中用来设置代理
sqlmap中设置代理的参数

--proxy
设置HTTP代理服务器位置 格式:--proxy http(s)://ip[端口]

--proxy-cred
设置HTTP代理服务器认证信息 格式:--proxy-cred user:pwd

--proxy-file
设置多条代理在文件中

--ignore-proxy
当希望通过忽略系统范围内的HTTP(S)代理服务器设置来针对本地网络的目标部

sqlmap中用来设置延迟
参数

--delay 0.5
sqlmap探测过程中会发送大量探测Payload到目标,如果默认情况过快的发包速度会导致目标预警。
为了避免这样的情况发生,可以在探测设置sqlmap发包延迟。默认情况下,不设置延迟

在这里插入图片描述

sqlmap中设置超时
参数

--timeout 10.5
再考虑超时HTTP请求之前,可以指定等待的秒数。有效值是一个浮点数,比如10.5秒。默认是30秒

sqlmap中设置超时重试次数
参数

--retries count
设置对应重试次数,默认情况下重试3次

sqlmap中设置随机参数
参数

--randomize 参数名称
sqlmap可以指定要在每次请求期间随机更改其值得参数名称。长度和类型根据提供的原始值保持一致

在这里插入图片描述
sqlmap中设置忽略401
如果测试偶尔返回HTTP错误401的站点,而你想忽略它在不提供给适当凭证的情况下继续测试,可以使用–ignore-401

--ignore-401 参数用来忽略未验证错误

避免错误请求过多而被屏蔽
有时服务器检测到某个客户端错误请求过多会对其进行屏蔽,而Sqlmap的测试往往会产生大量错误请求,为避免被屏蔽,可以时不时的产生几个正常请求以迷惑服务器。
参数

--safe-url 隔一会就访问一下的安全URL
--safe-post 访问安全URL时携带的POST数据
--safe-req 从文件中载入安全HTTP请求
--safe-freq 每次测试请求之后都会访问一下的安全URL

课堂总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值