2019-10-28:渗透测试学习,sqlmap的使用,笔记
sqlmap工具的使用
sql注入工具,明小子,啊D,萝卜头,穿山甲,sqlmap等
开源自动化注入利用工具,支持的数据库有12种,在/plugins中可以看到支持的数据库种类,在所有注入利用工具中是最好用的
支持的注入类型,bool,时间,报错,联合,堆查询,内联,可以获取用户名,密码,权限,角色,数据库(表,字段,内容),可以爆破识别密文数据,getshel,命令执行,拖库/删库
sqlmap文件夹
doc,介绍文档
extra,是sqlmap额外的功能,运行cms执行命令
lib,sqlmap核心功能代码
pluigins包含12种数据库识别程序
data存放攻击过程中的使用的工具或命令脚本,data文件加下,procs包含的mssql,mysql,orcale,postgresql的触发方式,shell是远程命令和后门,txt是表名列名字典,udf妨攻击载荷pyload,xml是检测的pyload
tarmper,包含各种绕waf的处理脚本
thirdparty,第三方处理程序插件,颜色,优化,等
sqlmap工作流程
1,初始化
2,开始检测,检测之前是否对某个url注入过,会把检测的url默认存放在用户家目录中.sqlmap下的output,使用--output-dir参数可以指定存放的目录-->解析url,判断该url是否可以访问-->检测是否有waf,sqlmap -u "url" --identify-waf, sqlmap -u "url" --checkwaf -->执行用户输入的参数,-u指定url,-p执行参数,-v指定显示的级别,--dbs所有数据库,--current-db当前数据库,--tables表名,--columns列名,--dump获取数据,--batch跳过问询,--DBMS指定数据库类型等
步骤详解
1,判断注入点,sqlmap -u "目标url",当看到结果中有环境参数,表名有注入,系统类型,数据库类型,后台版本等
2,查看所有的数据库,sqlmap -u "url" --dbs --dbms mysql
3,获取当前数据库,sqlmap -u "url" --current-db --dbms mysql
4,获取数据库下的表,sqlmap -u "url" -D 库名 --dbms mysql --batch --tables
5,获取数据库下指定表的字段名,sqlmap -u "url" -D 库名 -T 表名 --columns
6,获取指定字段的内容,sqlmap -u "url" -D库名 -T表名 -C 字段名 --dump,字段名可以多个,需要,逗号隔开
POST型注入的sqlmap利用方法
1,拦截数据包,保存到txt文件
2,python sqlmap -r 文件路径 -p "测试参数" ,-r读取指定的文件,-p指定注入的参数
cookie注入
--level=1-5级别,执行测试的登录,默认的是1,--level的参数设定为2或者2以上的时候,sqlmap会尝试注入Cookie参数。当--level参数设定为3或者3以上的时候,会尝试对User-Angent进行注入。
xff注入,X-Forwarded-For
sqlmap -u "url" -p "X-Forwarded-For" --level 3
sqlmap -r 文件路径 --level 3
UA,user-agnet注入同上
伪静态注入
sqlmap -u "url",要测试伪静态,在要测试的参数后边加*,之后测试就行
-v 0-6
如你想观察sqlmap对一个点是进行了怎样的尝试判断以及读取数据的,可以使用-v参数。
共有七个等级,默认为1:
0、只显示python错误以及严重的信息。
1、同时显示基本信息和警告信息。(默认)
2、同时显示debug信息。
3、同时显示注入的payload。
4、同时显示HTTP请求。
5、同时显示HTTP响应头。
6、同时显示HTTP响应页面。
风险等级--risk
共有四个风险等级,默认是1会测试大部分的测试语句,2会增加基于事件的测试语句,3会增加OR语句的SQL注入测试。
参数
列数据库管理用户--users,当前用户有权限读取包含所有用户的表的权限时,就可以列出所有管理用户。
-b,--banne,大多数的数据库系统都有一个函数可以返回数据库的版本号,通常这个函数是version()或者变量@@version这主要取决与是什么数据库。
-current-user,在大多数据库中可以获取到管理数据的用户。
--current-db,返还当前连接的数据库。
--tamper,修改注入的数据,sqlmap除了使用CHAR()函数来防止出现单引号之外没有对注入的数据修改,你可以使用--tamper参数对数据做修改来绕过WAF等设备。
--roles,数据库用户角色
--password 数据库密码
--hostname,系统名称
sqlmap注入点执行系统命令或者交互式shell
条件1,数据库有写文件权限,条件2,需要知道web站点的路径
sqlmap.py -u "url" --os-cms=ipconfig
--os-shell,获取系统的shell
--is-dba,判断当前用户是否是dba,是否为管理员
延时注入,--delay 2 延时注入
--sql-query,--sql-shell
sqlmap会自动检测确定使用哪种SQL注入技术,如何插入检索语句。
如果是SELECT查询语句,sqlap将会输出结果。如果是通过SQL注入执行其他语句,需要测试是否支持多语句执行SQL语句。
sqlmap直连mysql数据库
sqlmap -d "mysql://root:root@localhost:3306/mysql" -f --banner --dbs --users
sqlmap注入利用access
access数据库,没有库的概念,打开的数据库文件看到的只有表和字段以及内容
sqlmap -u "url" --tables
sqlmap -u "url" --T 表名 --columns
sqlmap -u "url" -T表名 -C 字段名 --dump
2019-10-28:渗透测试学习,sqlmap的使用,笔记的更多相关文章
- 渗透测试工具sqlmap基础教程
转载请注明出处:http://blog.csdn.net/zgyulongfei/article/details/41017493 作者:羽龍飛 本文仅献给想学习渗透测试的sqlmap小白,大牛请绕过 ...
- 渗透测试学习 十三、 SQLmap使用详解
SQLmap介绍 sqlmap是一个由python语言编写的开源的渗透测试工具,它主要是检测SQL注入漏洞,是一款功能强大的SQL漏洞检测利用工具. 他可以检测的数据库有:access.msSQL.M ...
- [原创]安卓使用Termux做渗透测试(演示sqlmap安装,并附上一个神器)
由于手机kali太大,并且MIUI8+Android6.0的我.用手机kali不是太方便(懒得捣鼓),所以另找道路,用手机作渗透测试. 1.下载一个Termux,并授予ROOT权限. 2.打开之后输入 ...
- 渗透测试工具SQLmap
一.简介 SQLmap 是一款用 Python 编写的开源渗透测试工具,用来自动检测和利用 SQL 注入漏洞. 二.Windows 下安装 2.1 安装 Python 环境 注:Python 3.0会 ...
- 渗透测试学习 二十九、kali安装,信息搜集,服务器扫描
kali安装,信息搜集,服务器扫描 kali介绍 Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统.由Offensive Security Ltd维护和资助.最先由 ...
- 【渗透测试学习平台】 web for pentester -2.SQL注入
Example 1 字符类型的注入,无过滤 http://192.168.91.139/sqli/example1.php?name=root http://192.168.91.139/sqli/e ...
- 【渗透测试学习平台】 web for pentester -1.介绍与安装
web for pentester是国外安全研究者开发的的一款渗透测试平台,通过该平台你可以了解到常见的Web漏洞检测技术. 官网:https://www.pentesterlab.com 下载地址: ...
- 【渗透测试学习平台】 web for pentester -7.文件包含
Example 1 输入单引号,报错,得到物理路径 可通过../../../../etc/paaswd 读取敏感信息 可包含本地文件或远程文件 https://assets.pentesterlab. ...
- 2019.10.28 csp-s模拟测试91 反思总结
有一场没一场的233 T1: 胡乱分析一下题意,发现和为n的x个正整数,不同的数字种类不会超过√n个.假设这x个数字都不同,最多也就是(x+1)*x/2=n. 所以可以维护现有的size值以及对应的数 ...
随机推荐
- SQL 方面基础操作,主要针对数据库方面的操作步骤
SQL 结构化查询语言 适用于所有的SQL数据库 SQL 要求每条指令后末端 都要有分号(;),分号是标准方法,对服务器相同请求中执行一条以上的sql语句. 最终目的: 实现对数据库数据的 增 ...
- C# 8.0 的默认接口方法
例子 直接看例子 有这样一个接口: 然后有三个它的实现类: 然后在main方法里面调用: 截至目前,程序都可以成功的编译和运行. IPerson接口变更 突然,我想对所有的人类添加一个新的特性,例如, ...
- 关于微信oauth登录的坑
这是实习公司里微信公众号的一个小项目,用的是ssm.问题是获取用户openid为空. 分析下步骤 首先用户点击微信公众号按钮 访问微信服务器获取code 跳转到项目url 拿code访问微信服务器,获 ...
- Robot Framework——对时间操作的datetime库常用关键字
1.对固定日期进行操作,增加或减去单位时间或者时间段 2.对两个时间段进行操作 3.对时间格式转化,获取时间戳 4.从完整时间中取指定年月日等 5.对时间类型进行格式化 6.获取当前时间或者指定时区时 ...
- Java基础(38)AbstractMap类
AbstractMap类的子类有HashMap(其子类是LinkedHashMap).TreeMap.EnumMap.WeakHashMap和IdentityHashMap. 1.HashMap (1 ...
- 微服务SpringCloud之服务网关zuul二
Zuul的核心 Filter是Zuul的核心,用来实现对外服务的控制.Filter的生命周期有4个,分别是“PRE”.“ROUTING”.“POST”.“ERROR”,整个生命周期可以用下图来表示. ...
- SpringBoot与MybatisPlus整合之公用字段填充(十一)
在实际开发中,适合用于记录创建人修改人 pom.xml <dependencies> <dependency> <groupId>org.springframewo ...
- JavaScript基础修炼(14)——WebRTC在浏览器中如何获得指定格式的PCM数据
目录 一. PCM格式是什么 二. 浏览器中的音频采集处理 三. 需求实现 方案1--服务端FFmpeg实现编码 方案2--ScriptProcessorNode手动处理数据流 参考文献 示例代码托管 ...
- MUI 混合开发移动app应用开发 --- app版本升级
当我们的app开发完成之后,无可避免的以后会进行产品升级,那么我们希望在客户的手机上让app进行自动升级,可以分为自动升级和手动升级. 自动升级:一般在客户app第一次打开首页的时候. 手动升级:在a ...
- Ubuntu 18.04 下安装pip3及pygame模块
1.Ubuntu下pip3的安装.升级.卸载 安装pip3 sudo apt-get install python3-pip 升级pip3 sudo pip3 install --upgrade pi ...