靶场科普 | PostgreSQL数据库注入

发表时间:2022-04-28 16:25

本文由“东塔网络安全学院”总结归纳


靶场介绍:

PostgreSQL数据库注入


今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:“PostgreSQL数据库注入”。


一、 实验介绍

1.PostgreSQL(读作Post-Gres-Q-L)是一个功能非常强大的、 源代码开放的客户/服务器关系型数据库管理系统(ORDBMS),加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。

2.管理系统(RDBMSPostgreSQL特点

1)支持WINDOWS、 Linux、 Solaris、 macOS、BSD
2)支持文本、图像、视频、声等
3)支持ACID、 关联完整性、数据库事务、Unicode多国语言
4)支持临时表,与物化视图
5)支持SQL的许多功能,例如复杂的SQL查询,查询,外键,触发器,视图多进程并发控制(MVCC)


二、实验目的

1.掌握PostgreSQL数据库注入方法
2.了解漏洞的产生方式
3.了解漏洞修复方式


三、实验步骤

1.启动靶场,看到实验环境,添加index.php?uid=1

2.使用PostgreSQL注入方式进行注入


四、防御方式

PostgreSQL提供了一个机制,允许你设置参数

+bool allow_empty_deletes = true;

+bool allow_empty_updates = true;

从而允许是否能执行不带where 条件的update或delete

这个参数可以设置为全局、会话级、用户级、库级、或者事务级别

设置后,你就能控制是否允许执行不带条件的update,delete了