sqlmap 简单使用


环境:phpstudy:MySQL5.4.7


介绍

sqlmap是一个开源的渗透测试工具,它可以自动化检测和利用SQL注入缺陷以及接管数据库服务器的过程。它有一个强大的检测引擎,许多适合于终极渗透测试的小众特性和广泛的开关,从数据库指纹、从数据库获取数据到访问底层文件系统和通过带外连接在操作系统上执行命令。

官方网址:http://sqlmap.org

1. 命令行对单一url进行探测

对单一url探测,使用参数-u或者--url

rul格式:http(s)/targeturl[:port]/[...]

例如:

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-1?id=1" --banner

Banner信息,在banner信息中可以得到软件开发商,软件名称、版本、服务类型等信息

2.扫描文件中的url

针对文本中的url进行注入扫描:

sqlmap -m /work/url_text.text --banner

接着在这里就会自动的进行探测,如果我们使用相同的url(我们就是这么使用的),那么这里就不会反复探测同一个url了

3.配置sqlmap.conf扫描url

sqlmap -c /etc/sqlmap/sqlmap.conf

结果都是一样的

4.利用Google hacking语法进行连接

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

由于连接校园网,故而不能使用,附上一张别人的

2.请求参数设置1

1.sqlmap设置http方法

SQLmap会自动探测在过程中使用合适的http请求方法。但是在某些情况下,需要青志使用具体的请求方法。例如,put,强制指定 --method=METHOD

2.sqlmap设置post提交参数

强制修改:--method=post
隐式修改:data="username=admin"

例子:slq-labs

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-11/" --data="uname=admin&passwd=admin&submit=Submit" -f --banner

2.指定分隔符

如果&在post或者是get传递的参数中,那么就需要设置分隔符

--param-del=";"

直接使用;不加上设置的话会出问题

3.请求参数设置2

1.sqlmap设置user-agent

默认情况下,SQLmap使用如下用户代理头执行HTTP请求:sqlmap/1.0-dev-xxxxxx(http://sqlmap.org)

如果服务器能够进行一些防护,那么就会被阻挡

可以通过自定义用户代理作为选项的参数,可以使用选项user-agent来伪造它

此外,可以通过--random-agent,从user-agent.txt文件中随机选择一个代理头。

user-agent不能够乱写,如果乱写会报错,连接会中断。

通过sqlmap -hh,查看详细帮助,看如何写这个user-agent

查看http头

利用wireshark抓包

使用随机agent
sqlmap -u "10.0.0.2/sqli-labs-master/less-1?id=1" --random-agent

如果要对user-agent位置进行SQL注入探测,需要设置--level 3

http://10.0.0.2/sqli-labs-master/Less-18/

2.sqlmap设置host

level 5 检测

3.sqlmap设置referer

伪造HTTP Referer值是可能的。默认是没有显式设置,HTTP请求不会发送HTTP引用头

4.sqlmap设置http

--headers="Host:www.host.com\nUser-agent:user-agent"
每一个头都需要写一个\n

4.sqlmap设置请求参数3

1.SQLmap设置HTTP协议认证

SQL中设置HTTP协议认证的参数:--auth-type和--auth-cred

其中--auth-type支持basic,digest,ntlm

--auth-cred认证语法为:username:password

针对弹出验证窗口的,这个账号密码需要时正常的账号密码

2.SQLmap设置HTTP代理

隐藏真的ip

设置参数:--proxy,--proxy-cred,--proxy-file,--ignore-proxy

--proxy设置代理格式:
如果不需要代理:
--proxy http(s):ip[:port]
如果需要代理:使用--proxy-cred
--proxy-cred username:password

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

--ignore-proxy:忽略系统范围设置的HTTP(S)代理服务器

数据先发送到代理服务器,然后代理服务器的端口号发送到目标

随便找一个代理,随便找一个网站,然后。。。嘿嘿嘿,愿望是美好的,现实是残酷的,代理用不了

然后考虑给整一个--proxy-file

3.SQLmap设置Tor隐藏

隐藏网络地址

参数:--tor,--tor-port,--tor-type,--check-tor

首先需要安装tor
apt-get install tor
启动服务
service tor start
查看状态
service tor status

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-18/" --data="uname=admin&passwd=admin&submit=Submit" --tor --tor-type https --check-tor

如果拥有自己的vps就可以使用tor网络进行扫描,隐藏真实的ip地址

4.SQLmap设置延迟

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

--delay 0.5 设置延迟0.5秒

5.sqlmap设置请求参数4

1.SQLmap设置超时

在考虑超时HTTP(S)请求之前,可以指定等待的秒数。有效值是一个一个浮点数,可以为10.5秒。默认设置为30秒。

例如:--timeout 10.5

首先探测链接上对面的URL之后,才会发送http请求,接着才会触发--timeout设置。发送http请求,超过10.5秒都还没有接受到返回,SQLmap就会认为对方可能无法接受请求,可能就会重新发送新的请求。

2.SQLmap设置重试次数

--retires count

3.SQLmap设置随机化参数

在某些情况下,要对单一url中的某些参数进行探测, 如果只针对参数的固定值进行探测,服务器接受到之后,进行探测,很容易被服务器发现。所以就需要使用随机化参数来进行掩饰。

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

--randomize 参数名称

4.SQLmap设置日志过滤目标

日志郭晨中会记录大量信息,过滤具体目标进行探测

与使用选项-l使用从提供的日志解析的所有主机不同,可以使用python正则表达式,用来过滤所需的日志。

6.sqlmap设置请求参数5

1. SQLmap设置忽略401

忽略未授权响应

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

如果想测试偶尔返回http错误401(未授权的)站点,而想忽略它并在不提供凭证的情况下继续测试,可以使用--ignore-401

2.SQLmap设置HTTP协议私钥

当web服务器需要适当的客户端证书用来身份验证的私钥时,可以使用这个选项。提供的应该是一个PEM格式的key_file,其中包含了证书和私钥。

--auth-file 文件名

3.SQLmap设置安全模式

保证会话的完整性

某些情况下,SQLmap会出现多次访问目标,不会正常的访问目标,从而导致链接的断开。

有时,如果执行了一定数量的不成功请求,则在此期间的web应用程序或检测技术就会销毁会话。这可能发生在SQLmap检测阶段或利用任何盲注类型。原因是SQL有效负载不一定返回输出,因此可能会向应用程序会话管理或技术检测发出信号。

--safe-url 指定url
--safe-post 指定对应提交的post参数
--safe-req 读取对应的文件,http文件内容
--safe-freq 对应多条探测,日志中的内容(上一句的加倍)

通过设置,SQLmap将访问每一个预定义数量的请求,而不对某个安全URL执行任何类型的注入。

尤其是大型探测是,以免因为连接的断开而导致失败。

4.SQLmap设置忽略URL编码

据参数的位置(例如GET),默认情况下它的值可以是URL编码的。在某些情况下,后端web服务器不遵循RFC标准,需要以原始的非编码形式发送值。在这种情况下使用--skip-urlencode。

--skip-urlencode	不进行url加密,如此发送大服务器之后进行对应的操作

获取数据库基本信息

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"

查询有哪些数据库

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -dbs

查询security数据库中有哪些表

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -D security -tables

查询tes数据库中security表有哪些字段

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -D security -T users -columns

sqlmap -u "http://10.0.0.2/sqli-labs-master/Less-12/" --data="uname=admin&passwd=admin&submit=Submit"  -dbms mysql -D security -T users -C "id,username,password" -dump

sqlmap 简单使用的更多相关文章

  1. SQLMap简单尝试

    第一次完成了一个注入呢,虽然是恬不知耻的用sqlmap跑出来的 简单介绍注入时后台的数据等级,有助于后面的理解 ①可以类比成一个装着excel文件的文件夹,每一个excel文件就相当于一个数据库 ②库 ...

  2. sqlmap简单使用

    就以实验吧上那个简单的sql注入题为例吧,不过那道题确实经典,把sqlmap的整个使用过程都展现了一遍,先奉上那道题的地址:http://ctf5.shiyanbar.com/web/index_3. ...

  3. sqlmap简单中文说明

    首先下载需要的文件,如果是windows环境直接到http://sqlmap.org/下载安装所需要的文件即可. 更新 svn checkout https://svn.sqlmap.org/sqlm ...

  4. sqlmap简单流程使用

    -u “(url)” 1.判断可注入的参数 2.判断可以用那种SQL注入技术来注入 3.识别出哪种数据库 4.根据用户选择,读取哪些数据 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可 ...

  5. sqlmap简单使用方法

    sqlmap使用 注入点   http://1xx.xxx.xxx.xxxx/dvwa/vulnerabilities/sqli/index.php?id=1&Submit=Submit# 通 ...

  6. 初识sql注入及sqlmap

    对于sql注入小白的我,上午在红黑联盟的网站上恶补了一下sql注入的基础知识,(走马观花)似乎明白sql注入是怎么一回事,也看了一些关于sqlmap的资料,再次记录一下吧 下面是关于sqlmap这个工 ...

  7. web安全学习笔记

    论坛&资讯 http://www.metasploit.cn http://www.freebuf.com http://www.backtrack.org.cn/ http://www.ha ...

  8. 3_初学sql注入

    sql注入的分类:布尔型 报错型 可联合查询型 多语句查询型 基于时间延迟注入 1.注释符 # /* -- 2.过滤空格注入 使用/**/或()或+代替空格 3.多条数据显示 concat(str1, ...

  9. Pikachu漏洞练习平台实验——SQL注入(四)

    1.概述 1.1发生原因 SQL注入漏洞,主要是开发人员在构建代码时,没有对输入边界进行安全考虑,导致攻击者可以通过合法的输入点提交一些精心构造的语句,从而欺骗后台数据库对其进行执行,导致数据库信息泄 ...

  10. vulnhub~MyExpense

    最近有点忙,这几天的vulnhub断更了,今天试着做了一下myexpense,当然想要一帆风顺是不可能的,哪怕是有别人的steps 和walkthrough.所以就遇到的坑总结如下: 一般套路就是nm ...

随机推荐

  1. linux server设置开机自动连接WIFI

    1.前言 之前买了一个工控机,装过几个OS(linux 发行版),但是一直没有细研究过流程,只是停留在能用就不管了,工控机自带无线网卡(和俩个有线网口),所以这篇文章好好介绍如何开机自动连接WIFI( ...

  2. RocketMQ系列-搭建Namesrv源码调试环境

    RocketMQ系列-搭建Namesrv源码调试环境 在学习任何一个技术框架的时候,我们通常都是先了解是什么,有什么作用.解决什么问题.设计亮点和设计思想是什么:当然对于技术学习上来说,这只是纸上谈兵 ...

  3. WEB入门——信息搜集1-20

    WEB1--查看源码 查看源码即可得flag. WEB2--JS前端禁用 查看源码即可得flag. JavaScript实现禁用的方法简单来说就是当用户使用键盘执行某一命令是返回的一种状态,而这种状态 ...

  4. 【Java框架】SSM-Spring总结:IOC、DI、AOP、JDBC、事务管理、实际案例

    〇.概述 1.常用资料 2.组成 一.控制反转与依赖注入 (一)Spring概述 1.介绍 以IOC和AOP为内核的框架 通过IOC实现控制,使用spring创建对象,与DI描述同一个概念 DI是对象 ...

  5. node-sass报错(Node Sass could not find a binding for your current environment)

    解决方案:参考 https://stackoverflow.com/questions/37986800/node-sass-couldnt-find-a-binding-for-your-curre ...

  6. 重学c#系列——linq(1) [二十七]

    前言 简单介绍一下linq,linq很多人其实用的很熟练了,但是有些人不知道自己用的是linq. 正文 在介绍linq 之前,先介绍一下集合. public interface ICollection ...

  7. java中继承的内存分析

    本文主要讲述java中继承的内存分析. 示例1,代码如下: public class EncapsulationTest { public static void main(String[] args ...

  8. .NET周报【12月第4期 2022-12-31】

    祝大家新年快乐! 国内文章 『 再看.NET7』数值类型 https://mp.weixin.qq.com/s/ctiBMPY6Hditk81AzHSRng 在C#中,有int16,用short来定义 ...

  9. P8340 [AHOI2022] 山河重整

    \(20pts\) 给 \(O(2^n)\) 枚举,\(60pts\) 是 \(O(n^2)\),先看看怎么做.计数题无非容斥和 \(dp\),不妨从 \(dp\) 入手.多项式复杂度的做法意味着无法 ...

  10. 靶机练习 - 温故知新 - Toppo(sudo 提权)

    重新做了一下以前做过的第一个靶机(https://www.cnblogs.com/sallyzhang/p/12792042.html),这个靶机主要是练习sudo提权,当时不会也没理解. 开启靶机, ...