自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(397)
  • 收藏
  • 关注

原创 博客迁移说明 : )

感谢大家的关注,最近想了一下,还是不用CSDN写博客了吧,原因如下:1、以前写的小白文太零散了,很多复制粘贴的地方,逻辑性弱,无系统概括,不便于阶段性总结,但不想删比较麻烦2、博文的质量需要提高一下;3、受不了广告推送,实在是烦呢 : )当然偶尔也会写点东西到CSDN看心情吧至于新博客,将侧重于Java安全,但我也不想写网上写过的东西没意义个人博客:http://y4tacker.github.io/顺便分享下个人的Java安全笔记(不解释只是个人笔记):https://github.com/

2022-03-23 14:17:32 6739 4

原创 [CTF].htaccess的使用技巧总结

文章目录前言.htaccess什么是htaccess文件简介其他实用指令自定义出错界面SetHandler和ForceTypeAddHandlerAddTypephp_valuephp_flagTrick总结利用404页面文件包含本地文件包含远程文件包含可以利用伪协议htaccess自己解析自己目录下有php文件无php文件文件解析配合一句话木马Cgi执行FastCgi执行利用报错信息写马绕过exif_imagetype()上传.htaccess\号绕过waf\号绕过藏字符参考文章前言这周参加了津门杯,

2021-05-11 20:58:15 9755 24

原创 [CTF]PHP反序列化总结

文章目录PHP反序列化这一篇就够了简介常见的序列化格式案例引入反序列化中常见的魔术方法反序列化绕过小Trickphp7.1+反序列化对类属性不敏感绕过__wakeup(CVE-2016-7124)绕过部分正则利用引用16进制绕过字符的过滤PHP反序列化字符逃逸情况1:过滤后字符变多情况2:过滤后字符变少对象注入POP链的构造利用POP链简单介绍简单案例讲解PHP原生类反序列化利用SoapClient介绍利用方式实战Phar反序列化什么是phar文件phar文件的结构漏洞利用条件受影响的函数绕过方式php-s

2021-02-03 10:51:09 41232 28

原创 Java文件上传大杀器-绕waf(针对commons-fileupload组件)

Java文件上传大杀器-绕waf(针对commons-fileupload组件)来个中二的标题,哈哈哈,灵感来源于昨晚赛博群有个师傅@我是killer发了篇新文章,在那篇文章当中提到了在filename="1.jsp"的filename字符左右可以加上一些空白字符%20 %09 %0a %0b %0c %0d %1c %1d %1e %1f,比如%20filename%0a="1.jsp"(直接用url编码为了区别)这样导致waf匹配不到我们上传⽂件 名,⽽我们上传依然可以解析,我对次进行了更深入的研究,

2022-02-25 14:35:18 2414 5

原创 对Java反序列化数据绕WAF新姿势的补充

文章目录对Java反序列化脏数据绕WAF新姿势的补充写在前面引言为什么这里第一个属性反序列化失败,仍然触发了URLDNS的整个过程灵感大发对Java反序列化脏数据绕WAF新姿势的补充@Y4tacker写在前面这篇文章其实很久前也更新到我博客了还是懒,还是搬过来吧,这里再发一次:https://y4tacker.github.io/引言相信大家都看过回忆飘如雪大师傅的一篇文章,Java反序列化数据绕WAF之加大量脏数据,在这篇文章当中大师傅提出了通过将gadget加入到集合类型从而可以实现添加脏数

2022-02-14 20:51:23 4039

原创 jsp新webshell的探索之旅

jsp新webshell的探索之旅题外话最近更新了新的博客关于本人一些有趣的java的研究会优先更新到新博客(http://y4tacker.github.io/)简介这篇文章记录了我从一个小发现到实现RCE,为了实现更短的webshell,在这之间遇到了一些的新问题到解决,再到最终精简得到一个新的jsp五行Payload构成的webshell的过程发现在tomcat的扫描中都有对一些配置文件的扫描以及对里面的属性解析赋值的过程,由于之前的一些小发现(这里不多说),今天下午一个突如其来的crus

2022-02-04 11:33:54 2122 1

原创 Servlet的线程安全问题

文章目录Servlet的线程安全问题引入Servlet的多线程机制如何修复1.实现 SingleThreadModel 接口2.避免使用成员变量3.同步对共享数据的操作思考与小结参考文章Servlet的线程安全问题引入首先看看这样的代码,有什么问题这里既要求cmd不能包含Calculator又必须要包含Calculator,能做到吗,当然是可以的Servlet的多线程机制Servlet实际上是一个单件,当我们第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件或者是

2022-02-04 11:28:38 4088

原创 两个关于Tomcat利用的好问题

文章目录两个好玩的问题1.为什么往 `/WEB-INF/tomcat-web.xml/`文件夹下写东西可以触发重加载问题来源解决2.Tomcat下/META-INF/lib中被加载的jar,如果在其/META-INF/resources/下直接写jsp可以直接访问执行问题来源两个好玩的问题1.为什么往 /WEB-INF/tomcat-web.xml/文件夹下写东西可以触发重加载问题来源问题的一切来源于一句话:Trigger a reload of the web app by writing an

2022-01-26 09:53:31 1593 3

原创 从DesperateCat学到的Tomcat下的新利用思路

文章目录题目环境分析两个重要的Trick探索开始如何利用org.apache.jasper.compiler.StringInterpreter加载恶意类到JVM梳理利用思路结果题目环境JDK8u311Tomcat9.0.56分析首先拿到这个源码我们看什么 <servlet> <servlet-name>ExportServlet</servlet-name> <servlet-class>org.rwctf.se

2022-01-25 09:18:04 1132

原创 [渗透测试]ATT&CK实战 | Vulnstack 红队(一)

文章目录写在前面拿下webshell简单信息搜集CS上线继续信息搜集提权攻击域-接管整个域完结撒花写在前面无聊,再玩一个靶场,顺便记录下,也学了一些新东西拿下webshell打开网站以后发现是个php探针,没啥意义,除了试一试弱口令同时使用dirsearch扫描发现有phpmyadmin,尝试为弱口令root\root查询SHOW VARIABLES LIKE "%SECURE%"发现配置未开启,那么不能使用into outfile写马进去

2021-12-07 11:08:23 1858 2

原创 [渗透测试]ATT&CK实战 | Vulnstack 红队(二)

文章目录环境来源为什么写这篇文章配置nmap扫描启动smbserver共享文件服务打爆weblogic提权使用 procdump64+mimikatz 获取 win 用户明文密生成管理帐号密码用户凭证-连接域控服务器-反弹域控 shel参考文章环境来源来源于https://mp.weixin.qq.com/s/uLlWJdcAc6MmUyuruHygNA,尊重人家作者,还是自己去问人家要吧为什么写这篇文章给一些不必要细节删除,以及一些自己觉得细节的补充配置nmap扫描常用端口是开放状态1

2021-12-06 17:25:14 1819 2

原创 [2021N1CTF国际赛]Easyphp-Wp

文章目录写在前面Wp简单分析小实验验证猜想可效性构造tar参考文章写在前面在各种带飞的情况下,web被带ak了,这里比较想写一个easyphp的wp,这题到结束也只有14个解,其他的懒得写了,本文也只是简单分析Wp简单分析看看首页源码再看这里很明显是触发phar反序列化如何插入数据是一个问题,这里没有上传,再看log.php关键部分源码是这个,我们就应该去想如何去构造,这里phar太难搞了,具体可以看看官方文档关于他的结构,后面最后四位肯定是GBMB多一位都不行,这里想到了tar,本来

2021-11-22 16:58:42 2839

原创 [2021XCTF]L3HCTF-Writeup(Web)

文章目录写在前面WebImage Service 1Image Service 2Easy PHPbypass绕过方法一绕过方法二绕过方法Ncover写在前面这周刚好比较空就抽了点时间打了下,质量挺高的还是WebImage Service 1注册个账号,发现密码不能是admin进去可以上传图片flag在admin账户上传的图片中 源码都被编译了感觉在任何地方输入admin 都会被ban,伪造header也都不行f12我查看源码的时候发现居然是支持表单提交不会逆向go,那无源码情况

2021-11-16 20:57:21 2830 6

原创 [Java随笔]冰蝎2.0-jsp马交互部分源码解读及其特征检测

文章目录写在前面源码解读Jsp马交互部分源码解读认证流程写在前面大概是最近搞内存马有点累了,今晚顺便看看冰蝎部分源码,简简单单写篇博客休息休息,本着怕第一次看这个工具源码,怕直接看最新的容易不理解,就拿了个2.0版本看着玩吧,谁知道也太简单了:同款源码在rebeyond/Behinder源码解读反编译jar包后,其核心代码在net.rebeyond.behinderJsp马交互部分源码解读直接丢出来源码,挺简单的,首先是一个继承ClassLoader的U类,一看defineClass就知道是加载

2021-11-11 22:22:54 3144 2

原创 [PHP底层]关于php://filter的分析

文章目录写在前面关于php://filter的处理的一些简单解释php://filter常规流程分析关于exp的分析题外话写在前面慢慢不太想写博客了,很多东西都忙不过来,学的很多,今天抽出空来还是督促自己写一篇,灵感来源于刚刚在网上看到的一篇wp,https://xz.aliyun.com/t/10446,不得不说现在比赛可真多哈,小伙伴们也别太经常打,多做点实际的东西关于php://filter的处理的一些简单解释这里面呢,有几个比较关键的,一个是需要能获取到文件流(也就是我们后面常常写的reso

2021-11-08 14:53:31 1884 2

原创 [Java安全]JDK8u191之后的JNDI注入绕过(javax.el.ELProcessor依赖)

文章目录环境Maven依赖利用分析低版本流程分析JDK8u191之后的JNDI注入绕过参考文章环境我们知道在JDK 6u211、7u201、8u191、11.0.1之后,增加了com.sun.jndi.ldap.object.trustURLCodebase选项,默认为false,禁止LDAP协议使用远程codebase的选项,把LDAP协议的攻击途径也给禁了切换到8u191之后就好了,我这里随便选择了8u201Maven依赖<dependency> <groupId&

2021-10-13 15:56:09 2382 3

原创 [Java安全]C3P0反序列化不出网利用学习

文章目录参考文章利用链构造利用链分析参考文章本文复现了雨了个雨师傅的文章,思路很好,看完以后其实和JNDI8u191后的绕过思路一致,这个等下再复现学习利用链构造在昨天看了Ysoserial的基本过程以后其实这个就相对简单了,不一样的地方就是后面Ysoserial用了URLClassLoader,而这个是当前线程下的ClassLoader,曾经一直觉得没用,还是自己学的太少了,大佬想到通过Tomcat的getObjectInstance方法调用ELProcessor的eval方法实现表达式注入p

2021-10-13 09:21:01 1223

原创 [Java安全]Java反序列化之spring-tx(Spring Framework 4.2.4)

文章目录环境依赖分析利用链构造利用链分析环境来自spring-jndi依赖<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.2.4.RELEASE</version> </d

2021-10-12 20:03:04 471

原创 [Java安全]Java反序列化C3P0之利用URLClassLoader

文章目录C3P0是什么实现不调用构造参数创建对象利用链分析C3P0是什么C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等实现不调用构造参数创建对象这个东西在后面利用链生成的过程中实现了,为什么ysoserial使用这个猜测是为了节省不必要的变量吧,payload更短可以参考下这篇文章Java ReflectionFactory利用链分析首先是生成的过程,前面部分分割最后一个:获取

2021-10-12 14:36:52 643

原创 [PHP内核]PHP内核学习(四)------回答PHP的字符串解析特性Bypass([、空格被解析为_,[[只将第一个[解析为_)

文章目录写在前面结果演示parse_str处理流程[、空格被解析为_[[只将第一个[解析为_写在前面写这一篇是自己很早之前就很好奇为什么会这样处理,当时没什么能力,今天来尝试分析一下,php底层对其的处理,因为对web的调试比较麻烦,这里用parse_str分析代替,本文先跟踪parse_str流程再解释结果演示[被替换为_test[a[bc被解析为test_a[bc空格被替换为_parse_str处理流程parse_str实现在ext\standard\string.c首先是初始化

2021-09-27 13:29:24 1195 4

原创 [PHP内核]PHP内核学习(三)------sapi_module_struct结构体解析(以cli为例)

文章目录写在前面sapi_module_struct结构简单解读入口Cli中给sapi_module_struct赋值参考文章写在前面最近打了很多比赛,遇到了很多事,心也慢慢更静下来了sapi_module_struct结构简单解读我们以cli为例子,开始学习入口入口肯定是main函数了,首先定义一系列的变量,其中就有sapi_module_structmain\SAPI.h中有这个结构的定义下面是各个参数的作用struct _sapi_module_struct { cha

2021-09-27 09:22:09 345

原创 [PHP内核]PHP内核学习(二)------zend_try实现

文章目录写在前面zend_try实现zend_try_catch基本用法zend_try相关原型定义SETJMPLONGJMP简单的例子zend_try实现参考文章写在前面为什么想记录这个,主要是今天学习如何留后门,调用了这个,遂看看简单记录下char exec_str[256];snprintf(exec_str, sizeof(exec_str), "passthru(\"%s\");", "calc");zend_try{ zend_eval_string(exec_str, NULL

2021-09-19 22:33:50 473 1

原创 [PHP内核]PHP内核学习(一)------SAPI学习

文章目录写在前面SAPI学习什么是SAPIsapi_module_struct结构简单注释cgi模式cli 模式fpm简单总结写在前面新开一个坑,虽然未来PHP用的不多,但是学起来还是有点意思SAPI学习什么是SAPI从php7内核剖析当中提到PHP本身可以理解为是一个库函数,提供语言的编译与执行服务,它有标准的输入、输出,而SAPI是PHP的接入层,它接收用户的请求,然后调用PHP内核提供的一些接口完成PHP脚本的执行从图中可以看出,各种应用都是通过对应的SAPI与php进行交互的

2021-09-19 21:46:33 577 1

原创 [Java安全]HashMap的readObject都发生了什么

文章目录写在前面分析(以URLDNS为例)分析LinkedHashSet,HashSet,TreeSet等类为什么不可以写在前面这篇文章的灵感来自纯好奇大佬的文章当然推荐大家看看大佬的文章,学点骚操作,我只是顺便分析一下为什么这样可以而已,大佬可乐嗯觉得这些比较简单没有写原因,那我来学习学习顺便记录,大佬文章直达Java反序列化数据绕WAF之加大量脏数据分析(以URLDNS为例)首先我们要知道ObjectInputStream的readObject的调用栈,来个网图自己懒的画,很简单的关系至

2021-09-17 11:20:21 688

原创 [WP]2021羊城杯-Web部分

文章目录写在前面WebCross The SideCheckin_GoOnly 4 (非预期解法)Only 4 (预期解法)NO SQLEasyCurl写在前面这次拿了第一还是比较开心的,一晚上没睡觉…WebCross The Side版本信息Laravel v8.26.1 (PHP v7.4.15)目录扫描应该是开启了redis联系版本号,尝试debug-rce既然有file_get_contents与file_put_contents,尝试ftp passivemode 成功出

2021-09-14 09:06:15 1797 1

原创 [Java安全]Fastjson>=1.2.36$ref引用可触发get方法分析

文章目录写在前面JSONPath语法利用演示$ref引用触发get方法分析解释为什么1.2.36前的版本不行写在前面平时我们在处理fastjson反序列化的时候,如果我们想要执行属性的get方法,而如果只有JSON.parse怎么办我们知道JSON.parse可以套一层parseObject实现对get方法的调用,但说这个也没有必要继续本篇的介绍了,这里介绍另一种,废话不多说开始分析JSONPath语法看文档https://goessner.net/articles/JsonPath/,重点关注下

2021-09-13 22:08:34 1694

原创 Fastjson反序列化解析流程分析(以TemplatesImpl加载字节码过程为例)

文章目录写在前面流程分析写在前面关于TemplatesImpl加载字节码就不多说了,之前也写过自己翻一翻,或者网上看看其他大佬的,至于为什么选择这一个,因为这里面大多数过程都有,除了$ref,算是比较全面了流程分析核心代码public class test1 { public static void main(String[] args) throws Exception{ String payload = "{\"@type\":\"com.sun.org.apache

2021-09-13 20:29:17 659

原创 [Java安全]Just-Serving-Pages赛题分析

文章目录写在前面Just-Serving-Pages分析写在前面昨晚一点睡觉feng师傅提醒我了下,今天不当懒狗,我相信自己可以解决这里就先直接开始试着边做边写Wp了Just-Serving-Pages分析朴实无华,先看看依赖,这个版本其实是存在反序列化RCE的,但是条件比较苛刻在src/src/cscg/servlets/ConfigServlet.java看到了如果是Object.class多好啊不过这里也给了我一个提示,允许我们去修改除了User的设置也就是如果我们开启De

2021-09-07 16:53:04 287 3

原创 [BUUCTF]phar matches everything

文章目录写在前面脚本写在前面网上一堆水文章,看我脚本再理解下就行了,省略分析步骤脚本import osimport timeimport randomimport sysfrom io import BytesIOimport requestsimport base64import refrom urllib.parse import quotePY2 = True if sys.version_info.major == 2 else Falsedef force_byt

2021-09-07 00:22:04 365 1

原创 [PHP底层]命令执行底层分析

文章目录写在前面命令执行底层分析写在前面新法颁布,很多也不敢发了,就偶尔写一篇有意思的东西吧命令执行底层分析注意本篇是基于windows平台进行的分析环境这方面就不多说了VisualStudio、Vscode、php-src源码编译插件用了c\c++、CodeRunner,环境很简单不想多说,直接干活故事从一个system('whoami');说起,你明天都输入这些函数真的就不好奇干了些什么吗分析前先给大家看看函数调用栈通过全局搜索,我们定位到了ext\standard\exec.c第

2021-09-06 09:37:25 629

原创 [WP]RACTF-Writeup

文章目录Webnotebooknotebook2明天早上继续Webnotebook首先我们能看到文件,在urls.py里面查看路由我第一眼锁定了这个os.path.join函数如果参数是/flag那么后面经过函数处理就会是flag因此我们只需要传入{{/flag.txt}}按理说应该就能够得到flag,但是很不幸不可以在创建的时候这里进行了替换这里将..替换为空{{替换为空但这里因为先后顺序很明显有一个逻辑漏洞,因此我们只需要构造{..{/flag.txt}..}即可绕过读取

2021-08-17 22:47:50 755

原创 [DASCTF][Java反序列化]easyjava简单分析

文章目录写在前面easyjava推荐文章写在前面昨天题目环境似乎出了点小问题,咋也不好问,咋也不敢说,题目有意思,当然还有其他链子猜测jdbc应该也可以打,没试过太懒了easyjava首先下载源码发现Java版本是1.7的,先放这里看看在evil路由下面,很明显是去触发反序列化,但是有过滤ban了这么多,cc链基本上不用想了,一方面是低版本不起作用,另一方面Transformer被ban了,看来只能用TemplatesImpl去执行字节码试一试,想到了Java7U21反序列化(可以看我博客分

2021-08-02 12:39:50 2326 3

原创 [代码审计]齐博建站系统x1.0企业版代码审计

文章目录写在前面齐博建站系统x1.0后台存在命令执行漏洞齐博建站系统x1.0企业版前台反序列化漏洞写在前面复现2021 DASCTF July X CBCTF 4th赛题齐博建站系统x1.0后台存在命令执行漏洞漏洞点在于application/admin/controller/Upgrade.php下的sysup函数跟入writelog,很有趣没有过滤进行直接拼接写入的是php文件有点傻因此我们直接访问http://yyds.top/admin.php/admin/upgrade/sy

2021-08-02 10:09:28 1079 3

原创 [Java反序列化]JDK7U21原生反序列化利用链分析

文章目录写在前面利用链JDK7U21原生反序列化利用链分析流程跟踪参考文章写在前面这段时间看了也跟踪了CC链,CB链,也跟踪调试了shiro的两个链子,XMLDecoder等,就用JDKK7U21原生反序列化利用链来暂时结束下最近的学习利用链LinkedHashSet.readObject() LinkedHashSet.add() ... TemplatesImpl.hashCode() (X) LinkedHashSet.add() ... Pro

2021-07-29 16:42:08 1236

原创 [Java反序列化]Java-CommonsBeanutils1利用链分析

文章目录反序列化调用链Java-CommonsBeanutils1利用链分析参考文章反序列化调用链ObjectInputStream.readObject() PriorityQueue.readObject() PriorityQueue.heapify() PriorityQueue.siftDown() siftDownUsingComparator() BeanComparator.compare() TemplatesImpl.getOutputPro

2021-07-28 14:36:26 707

原创 [Java反序列化]Java-CommonsCollections2TemplatesImpl利用链分析

文章目录Java-CommonsCollections2TemplatesImpl利用链分析完整代码Java-CommonsCollections2TemplatesImpl利用链分析我们知道我们之前可以利用TemplatesImpl 构造出⽆Transformer数组的利⽤链,那这里是否可以实现呢,答案是是的,在这里的queue现在开始正文,还是稍微详细说一下利用过程吧现在我们的目标就是通过PriorityQueue来调用TemplatesImpl的newTransformer来加载字节码 T

2021-07-28 09:40:03 470

原创 [Java反序列化]Java-CommonsCollections2利用链分析

文章目录Java-CommonsCollections2利用链分析Java-CommonsCollections2利用链分析简单来说CC2就是从 Serializable的readObject()⽅法到 Transformer的transform()⽅法的调⽤链看一看具体流程,Serializable的readObject()⽅法调用heapify方法调用siftDown方法调用siftDownUsingComparator方法最后到了TransformingComparator下的comp

2021-07-26 17:14:22 398

原创 [Java安全]Shiro RememberMe 1.2.4反序列化漏洞分析

文章目录写在前面Shiro RememberMe 1.2.4反序列化漏洞Payload写在前面Payload来自P神的GithubShiro RememberMe 1.2.4反序列化漏洞在Shiro 1.2.4版本之前内置了一个默认且固定的加密Key,导致攻击者可以伪造任意的rememberMe,进而触发反序列化漏洞,在这里我们还是配合TemplatesImpl执行字节码,但是如果使用Transformer数组则会报错,因为反序列化流中包含非Java自身的数组,则会出现无法加载类的错误Trans

2021-07-26 13:54:04 721

原创 [Java反序列化]CommonsCollections3利用链学习

文章目录利用思路利用思路绕过了对InvokerTransformer的利用,替代方法是这⾥⽤⼀个新的Transformer,org.apache.commons.collections.functors.InstantiateTransformer,通过利⽤ InstantiateTransformer来调⽤到TrAXFilter 的构造⽅法,再利⽤其构造⽅法⾥的 templates.newTransformer() 调⽤到 TemplatesImpl⾥的字节码...

2021-07-25 18:50:56 529 4

原创 [Java安全]利用TemplatesImpl执行字节码

文章目录defineClass利用TemplatesImpl执行字节码defineClass介绍之前首先还是要知道defineClass的利用方式,下面给出简单的代码public class TouchFile{ public TouchFile() throws Exception { Runtime.getRuntime().exec("calc"); } }把它编译成字节码后Base64之后运行Method defineClass =

2021-07-25 15:48:22 2430 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除