前言前几天的D^3CTF的一道题的常规解就是用Hessian打的,这里先学习一下关于Hessian的基础。 什么是HessianHessian 是一个紧凑的二进制协议,用于在各种语言之间编码和传输数据,包括 Java。由Caucho Technology开发,Hessian 主要用于远程方法调用 (remote method invocation, RMI) 这样的分布式计算场景。它基于HTTP,易于使用而且效率很高,尤其是在对带宽要求较高或是对象序列化开销较大的环境中。Hessian 的工作方式简单来说就是将数据对象序列化为字节流,然后通过网络发送;接收方再从字节流中反序列化出原始数据对象。Java 中的 Hessian 序列化通过 HessianOutput 类实现,Hessian 反序列化则通过 HessianInput 类实现。 基本使用环境配置12345<dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId> < ...
d3pythonhttp考点pickle反序列化后端: 12345678910111213141516171819202122232425262728293031import webimport pickleimport base64urls = ( '/', 'index', '/backdoor', 'backdoor')web.config.debug = Falseapp = web.application(urls, globals())class index: def GET(self): return "welcome to the backend!"class backdoor: def POST(self): data = web.data() # fix this backdoor if b"BackdoorPasswordOnlyForAdmin" in data: ...
SickOs: 1.1 信息收集主机查询1nmap -sn 10.0.0.1/24 发现10.0.0.135 扫描端口1sudo nmap --min-rate 10000 -p- 10.0.0.135 22、3128、8080查询服务 1sudo nmap -sT -sV -sC -O -p22,3128,8080 10.0.0.135 udp再查一次脚本测试一下 1sudo nmap --script=vuln -p22,3128,8080 10.0.0.135 8080代理关闭了。无法访问但是能访问3128端口查询发现这个是一套代理服务器和Web缓存服务器软件。该软件提供缓存万维网、过滤流量、代理上网等功能。 目录爆破尝试爆破下路径: 1sudo dirb http://10.0.0.135:3128 没有内容再用gobuster测试一下 1sudo gobuster dir -u http://10.0.0.135:3128/ --wordlist /usr/share/wordlists/dirb/big.txt 可能是因为代理的原因,这里使用3128的代理来 ...
Jarbas: 1「红队笔记」靶机精讲:JARBAS - Jenkins渗透原理详解,一个典型CMS渗透测试样本。_哔哩哔哩_bilibili 打点1nmap -sn 10.0.0.1/24 本机ip为132,因此目标靶机ip为10.0.0.134扫端口 1sudo nmap --min-rate 10000 -p- 10.0.0.134 1sudo nmap -sT -sV -sC -O -p22,80,3306,8080 10.0.0.134 tcp、版本、脚本、操作系统udp再看下 1sudo nmap -sU -p22,80,3306,8080 10.0.0.134 扫描一下漏洞 1sudo nmap --script=vuln -p22,80,3306,8080 10.0.0.134 80是个服务页面8080是个登录页面有点眼熟,之前遇到过Jenkins,但是这个版本似乎太老了。目录爆破一下80端 1sudo dirb http://10.0.0.134 或者dirsearch 1python .\dirsearch.py -u http://10.0.0 ...
Python
未读现状目前语雀作为我首选的Doc编写工具,但是有很多的地方使用起来不方便,这里简单记录一下。 导出 参考:如何从语雀“跑路”至Obsidian 作为一个ctfer,在目前的逆天比赛频出的情况下,难免会遇到需要断网的情况。这就导致使用批量导出功能需要付费的语雀就不太方便,因此我现在选择了如下的解决方案:使用工具批量导出,保存到本地Obsidian,再通过插件将图片从语雀的CDN保存到本地。使用的导出工具为: GitHub - natro92/Yuque-export: 无需token批量导出语雀文档。 轮子已经造的差不多了,目前缺少其他几种的导出方案,以及知识库、文章的选择,以及增量下载等功能。这在后续应该都会实现的。🕊然后就使用obsidian的第三方插件 Local Images Plus 实现本地下载:安装插件之后只要修改如下的几个配置即可:然后通过ctrl + P选择以下命令即可:然后就等待下载即可 图床我还有一个使用语雀的理由就是把它做图床,jsdelivr再怎么加速也没人家大厂的加速快。但是由于防盗链的原因,虽然在本地使用Typora等工具能正常浏览,但是需要 ...
前言打这个的时候正好是长城杯复赛,就没打,现在看看。 cool_indexview里面是ejs模板,static里面是使用的路径等信息: 12345678910111213141516171819202122232425262728293031323334353637function requestArticle() { const articleNum = document.getElementById("articleNum").value; const statusMessage = document.getElementById("statusMessage"); const articlesDiv = document.getElementById("articles"); fetch("/article", { method: 'POST', credentials: "same-origin", header ...
成绩海南大学网络空间安全学院1队上午AWD之前算check分是第九,不算check分第11 。下午ISW似乎除了前六名左右剩下都是1800分。最终是排名是13(二等奖的第二轮的最后)总体来说打的还算可以。都靠队伍里的各位大佬带飞了。 AWD想法题目是两个java一个php,最开始没合计能出两道web,以为是三道php。所以我们对其他语言的waf等工具准备也有限。最开始没打算直接上waf,上了一个日志分析。但是由于平台的问题。按照平台的要求,点击展示其他队伍场景,默认展示的是全部的靶机信息,然后大部分队伍都比较懒,就下载的默认的ip列表,里面就有我们部署日志检测的服务的php服务。我们就可以记录下剩余两个服务的日志。也就是能收到三个服务的payload。但是我最开始掉链子了,最开始写的脚本出问题了,总是被关闭现有连接,这里我之前遇到过,就要用多线程来解决,不允许同时访问,猪脑也过载了。本来准备的那个多线程也没找到。就导致前两轮一直在造轮子,不同多线程之能五个五个打,然后队友找到了之前在网上找到的老轮子工具,才能打的。然后就遇到坏b了,删我们php服务(这个比赛前主办方就说了不让删,而且这 ...
「红队笔记」靶机精讲:W1R3S 1.0.1 - 渗透测试思路为王,细节多到即使对于纯萌新也能无感入圈。_哔哩哔哩_bilibili 环境准备W1R3S: 1.0.1 下载镜像https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip描述 You have been hired to do a penetration test on the W1R3S.inc individual server and report all findings. They have asked you to gain root access and find the flag (located in /root directory).Difficulty to get a low privileged shell: Beginner/IntermediateDifficulty to get privilege escalation: Beginner/IntermediateAbout: This is a vulnerab ...
前言上篇跟着网上的教程顺了一遍流程,主要是为了能更熟悉动态调试。 分析FastJSON的解析会分别触发set方法和get方法,而且根据是否有@type字段,会解析setter或者getter方法的恶意代码。 要求FastJson反序列化和原生反序列化的差别: FastJson不需要有Serializable字段 不需要变量不是transient或者可控变量 有setter 或者public/static 或者getter需要满足要求: 反序列化入口点是setter或者getter 执行点可以选择反射或者类加载 FastJson版本<1.2.24JdbcRowSetImpl类+JNDI出网JdbcRowSetImpl这个类其中的connect函数里面使用了lookup函数,可以造成JNDI注入然后找下去,看看getDataSourceName所在的BaseRowSet类。发现有setter方法:可以修改其参数。继续找能调用connect方法的set/get方法,优先找set方法,因为get方法需要有返回参数限制。ctrl + shift + alt + ...
依赖1234567<dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.24</version> </dependency></dependencies> 知识准备如果正常情况下,FastJson是如何被使用的呢? 参数获取和参数解析12345678910111213package com.natro92;import com.alibaba.fastjson.JSONObject;public class FastJsonNormalTest { public static void main(String[] args) { String jsonDemo = "{\"name\":\"Boogi ...