靶场科普 | PostgreSQL数据库注入
本文由“东塔网络安全学院”总结归纳
靶场介绍:
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了