java-内存马
参考文章 题目用到的代码地址
内存马的分类
解释一下servlet
就是大致分为这四种 下面会依次讲到
这里的话先了解一下 JSP 是什么
JSPJSP简介这里主要了解一下 JSP 的语法
JSP(Java Server Pages),是Java的一种动态网页技术。在早期Java的开发技术中,Java程序员如果想要向浏览器输出一些数据,就必须得手动println一行行的HTML代码。为了解决这一繁琐的问题,Java开发了JSP技术。
JSP可以看作一个Java Servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
当第一次访问JSP页面时,Tomcat服务器会将JSP页面翻译成一个java文件,并将其编译为.class文件。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
JSP语法脚本程序脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。脚本程序的格式如下
1<% ...
Nss-Ciscn2023
[CISCN 2023 华北]ez_date题目给的代码
1234567891011121314151617181920212223242526<?phperror_reporting(0);highlight_file(__FILE__);class date{ public $a; public $b; public $file; public function __wakeup() { if(is_array($this->a)||is_array($this->b)){ die('no array'); } if( ($this->a !== $this->b) && (md5($this->a) === md5($this->b)) && (sha1($this->a)=== sha1($this->b)) ){ ...
渗透测试
1a90164da2a38547586d85c848ea23234cf9ef63a8ceedbc151c794cde2931a4d0bfb7ff1045dab3f9bce09aed7c65b72a5cf1365959cc03b50a6d00ba51a256937bd6f838b61ede456b68db5c420595ea39afe5281b0bad21b2aa8e6e36748bedf23d55437eb2e9f41fd3c718a10215395c58674198df302f1469aa52eefd4ce1a3d2b1b82cc88d6e38c704c80465c2f4c15bb000943b7b9ba77782c958b4d6ad502180b504664fca00d6c2ad39e1b1f5ca92802ebdfb8fd885ab5a6f913503
当前文章暂不对外可见,请输入密码后查看!
java-Groovy
简述Groovy是Apache 旗下的一种基于JVM的面向对象编程语言,既可以用于面向对象编程,也可以用作纯粹的脚本语言。在语言的设计上它吸纳了Python、Ruby 和 Smalltalk 语言的优秀特性,比如动态类型转换、闭包和元编程支持。 Groovy与 Java可以很好的互相调用并结合编程 ,比如在写 Groovy 的时候忘记了语法可以直接按Java的语法继续写,也可以在 Java 中调用 Groovy 脚本。比起Java,Groovy语法更加的灵活和简洁,可以用更少的代码来实现Java实现的同样功能。
漏洞版本Groovy : 1.7.0-2.4.3
漏洞分析MethodClosure123456789101112131415package org.example;import org.codehaus.groovy.runtime.MethodClosure;import java.lang.reflect.Method;public class groovy { public static void main(String[] args) throws E ...
show-XXE
1a90164da2a38547586d85c848ea2323ec79e6220953f449a6bfc1f9903c2c19dcc37d7e19f9c3ea8136f6bafde14cee46823ba434db82cd2f85dc031b2e75626196bdef44f75f674b03e086eb8a4ed9dd38528282b828fd5b1ec4b08287f19abe7b1a04a7dd355ba119432445acec70fa229a69b785ff6218677ceae65c29784ef57875a7f1bbf1f7abce39d35637c117414dd85ab99e2c71338474762e67d57f5896dee0e15679793e968aa3ef6ae7718d1c9946cd7e388dc579dc60a07f72d8564db8f94ec4db7ddb1df056fe847fbafa2f8753d32d8fd98bf0ef7e9daaa7f0a1aaa3c893630c8c1c2213e9ed2e7cd05caf900b6de505e ...
java-Hibernate
参考链接1 参考链接2
Hibernate1这也是可以通过调用任意getter函数来进行代码执行的一个类
首先先给上调用栈
123456789HashMap.readObject() TypedValue.hashCode() ValueHolder.getValue() ValueHolder.DeferredInitializer().initialize() ComponentType.getHashCode() PojoComponentTuplizer.getPropertyValue() AbstractComponentTuplizer.getPropertyValue() BasicPropertyAccessor$BasicGetter.get()/GetterMethodImpl.get() Te ...
show-JWT
1a90164da2a38547586d85c848ea23230f5c6975fdd195e942307e28f90af7f53e25b7419934e13f43d5ab4703649a64f7fd4197c6071b3c662be91df9c59d4273b4e410e8f1273b62affe2616798428f731a60965a4fd6ee89839b15f9dd548540c001a932cd9b4a1c588c89a3fedbb1026c34909f1e48f2e36eb7c345d5c946746061f4c30ee3c16fe9052c85a859a08f9460070883d957adfcc47f7fba5d672cb0348396dd596110c35e7e619c2dd918782829a41468cef771c8f10167e56a4bc77b9a43ed403650f9afffa5af89758e332bb7c92c75f50b66cc0c1dd01fc4eb406f87b1f4cc5f8649f5cdd5fd83a51b44c5ae9e5f2872 ...
show-SSRF
1a90164da2a38547586d85c848ea2323d031339f5c5734fa95fc0b97b9ab98c1c9e5b1d77151f4f7d27f352682837318af72d7ac5051b03587c463e8af63406ee5e8ffa29c1411afcb3bd2e6fe751912ffde326feb0cbfeb61ff2cc2152ccda8c8952357765683680bb6364cb78d6b18cfac7693f6bcd5b791f4554c917409ac923375dd3c4c47689bcc3074936ff8e6afdd3460330bd12c1f43822b68ebd6ca995849a391c8bdd75079d8899632fb3e2e3c6dbd22a2fc3b48c73e5459c7b1af9debc012570aa4fdc9eb5a7e9a93d8d1e94c1b0f19a3a022ec031fee04377863a80b5bd21f289f31e26280b7effcfeff7a9ac55e4f2a847dc ...
java-Hessian
文章1 文章2 文章3 字节 文章4
这里前言和简介就不写了 上面给的文章写的都很清楚了 直接看就行了
(就是prc啥的 直接看上面的文章就行了)
这里的只分析链子
Hessian反序列化漏洞分析Hessian反序列化漏洞的关键出在HessianInput#readObject,由于Hessian会将序列化的结果处理成一个Map,所以序列化结果的第一个byte总为M(ASCII为77)。下面我们跟进readObject()
HessianInput#readObject部分代码如下
打个断点来进行分析
跟进这个readMap()方法
接着跟进这个getDeserializer()方法 获取反序列化的返回结果
在获取到deserializer后,java会创建一个HashMap作为缓存,并将我们需要反序列化的类作为key放入HashMap中。
看过rome链子的应该能反应过来这里 hashmap key
后续代码能够触发任意类的hashcode()方法
因为这个key可控
至此,我们Gadget的构造思路也就十分清晰了,只需要找一条入口 ...
ciscn决赛-2022-backdoor
题目wp
题目中关键的利用知识点
这里面有backdoor的docker容器
这里写这篇文章的目的是来加深对这道题的理解
题目源码
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748<?phperror_reporting(E_ERROR);class backdoor { public $path = null; public $argv = null; public $class = "stdclass"; public $do_exec_func = true; public function __sleep() { if (file_exists($this->path)) { return include $this->path; } else { throw ...