置顶2022年的个人计划&小目标
2022个人计划&目标🤞现在已经是上一年了,去年的目标貌似是在去年定的,哈哈哈,不知不觉已经入行一年多了,还是个脚本小子。2021过去了在这制定一下2022的小目标以及对2021进行一个总结吧大概看一下去年的小目标,基本都完成的差不多了,除了冲知名SRC的排行榜(准备移到今年),因为确实难,到现在也没挖到过一个专属SRC的洞,只能希望说在2022年继续努力吧,内网渗透在2021年确实是有所接触,但是只是了解了一点点,今年依旧继续努力,为了今年的国hvv做准备吧,CNVD通用证书目前以及下来两张了,估计后面还会有,这块应该算是超额完成任务,找女朋友确实是不可能了,上学期确实也没挂科,协会的话大一的不知道学的怎么样,确实是摸不清楚底,只能说在2022年多带带SRC和CTF吧,主要还是得看自己的自学能力了。2021年证书和获奖不多,一张ISCC三等奖,浙江省赛二等奖,还有十几张CNVD,其他没什么荣誉,摸鱼参加了几次市级和省级的hvv,输出也不咋多,还是太菜了,脱离了弱口令就日不了站哈哈。属实是弱口令战士了。总结完了2021的成果,暂时来制定一下2022的目标吧,制定严格一点...
thinkphp3.2.3反序列化初探
前言摆了好几天,好几个人老说我前言说摆烂,确实是在摆烂,前两天浅学了一下thinkphp3,今天来学学thinkphp3反序列化链构造反序列化链分析首先我们需要通过thinkphp来写一个反序列化的demo<?phpnamespaceHome\Controller;useThink\Controller;classIndexControllerextendsController{publicfunctionindex(){$a=unserialize(base64_decode(I('post.data')));}}php的反序列化和java不同,php的反序列化起点大部分是那俩魔术方法__wakeup和__destruct,因此我们寻找反序列化链就需要去搜寻这种魔术方法,其实有个小技巧,就是在找反序列化起点的类的时候,尽可能去找可控变量多的类,因为可控变量多才能让我们控制程序的可能更大。这里我们找到Think\Image\Driver\Imagick这个类,他这里的img属性可控publicfunction__d...
从0到1学习ThinkPHP3.2.3
前言摆了好几天,java暂时没有啥方向,感觉比较迷茫,出了两天的CTF题,感觉还是得补补php这块目录结构初始的ThinkPHP结构如下,Application和Public目录都是空的,Application目录默认是空的,但是第一次访问入口文件会自动生成,参考后面的入口文件部分。wwwWEB部署目录(或者子目录)├─index.php入口文件├─README.mdREADME文件├─Application应用目录├─Public资源文件目录└─ThinkPHP框架目录框架目录ThinkPHP的结构如下:├─ThinkPHP框架系统目录(可以部署在非web目录下面)│├─Common核心公共函数目录│├─Conf核心配置目录│├─Lang核心语言包目录│├─Library框架类库目录││├─Think核心Think类库包目录││├─Behavior行为类库目录││├─OrgOrg类库包目录││├─Vendor第三方类库目录││├─...更多类库目录│├─Mode框架应用模式目录│├─Tpl系统模板目录│├─LICENSE.txt框架授权协议文件│├─logo.png框架LOGO...
Fastjson反序列化注入内存马
前言学习完shiro反序列化注入内存马后,来学习一下创建的fastjson吧,fastjson和shiro不一样,fastjson是我自己打成功以后才写的文章,shiro确实是本地环境应该有问题,我感觉fastjson比较简单,话不多说,开始学习。环境搭建由于网上没有现成的测试版本,那只好自己随便搭建一个了com.Test.IndexControllerpackagecom.Test;importcom.alibaba.fastjson.JSON;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotati...
Shiro反序列化注入内存马
前言之前学习了shiro反序列化以及Tomcat和Spring的一些内存马,但是一直没有把两者结合进行利用,今天来学习如何通过shiro反序列化注入内存马,这里其实我是先尝试了很久才写的文章,提前预告一下我踩了很久的坑,在注入内存马的时候我这里一直注入不了,但是同样的方式在别的师傅那能注入成功,我到现在也没搞明白。Shiro反序列化注入内存马之前在学内存马的时候是知道动态注册一个Filter,但是当时是通过jsp去动态注册Filter,但是使用反序列化去注入内存马确实没怎么仔细想,今天准备学习的时候看到师傅们的Exp,其实就明白了,就是通过TemplatesImpl去加载恶意类,然后把动态注册Filter的代码写在反序列化的类的static方法中。这里的话内存马的内容就不说了,想看的师傅可以看之前的笔记。这里我也用了P牛的环境,项目代码地址:https://github.com/phith0n/JavaThings。因为有最大请求头的长度限制,所以我们需要在Tomcat的/conf/server.xml中进行如下修改,添加一个`maxHttpHeaderSize="40...
Rome反序列化链分析
环境搭建下载地址:http://rometools.github.io/rome/ROMEReleases/rome-1.0.jar,下载完以后导入rome包即可。我们可以先使用ysoserial生成payload,然后再下断点进行调试java-jarysoserial.jarROME'calc'|base64packagerome;importjava.io.ByteArrayInputStream;importjava.io.IOException;importjava.io.ObjectInputStream;importjava.util.Base64;publicclassTest{publicstaticvoidmain(String[]args)throwsIOException,ClassNotFoundException{Stringbase64_exp="rO0ABXNyABFqYXZhLnV0aWwuSGFzaE1hcAUH2sHDFmDRAwACRgAKbG9hZEZhY3RvckkACXRocmVz&qu...
CTF:简单的ezgadget
前言摸鱼了好几天,来点康复训练吧,今天来题简单的ctf题,东华杯的ezgadget,先把源码下载,然后反编译。正文大致目录结构如下,包括了一个UserBean,一个IndexController,一个tools类和一个ToStringBean类User.java,这就是一个普通的实现Serializable接口的一个JavaBeanpackagecom.ezgame.ctf.bean;importjava.io.Serializable;/*loadedfrom:e14568b06e182.jar:BOOT-INF/classes/com/ezgame/ctf/bean/User.class*/publicclassUserimplementsSerializable{privateStringUserName;privateStringPassWord;publicStringgetUserName(){returnthis.UserName;}publicvoidsetUserName(StringuserName){this.User...
Beescms代码审计
前言这次来一个无框架的php程序,对于这种无框架的程序我们可以使用Seay源代码审计系统大概过一遍,也就是去寻找危险函数中使用了变量的情况,再去判断变量是否可控即可,因为代码出现问题无非就是用户可以控制输入来攻击。后台全局过滤首先拿到这套程序,我先审计的是后台的,发现每个admin下的文件都包含了admin/init.php这个文件,随即先看admin/init.php这个文件,因为一般这种文件里的代码都是通用的,可能存在着一些全局的过滤。在该文件中,我们可以看到如下代码,大致意思就是判断是否开启GPC,如果没开启,则对REQUEST和COOKIE和POST和GET方法获取的数据使用addsl方法进行处理。if(!get_magic_quotes_gpc()){if(isset($_REQUEST)){$_REQUEST=addsl($_REQUEST);}$_COOKIE=addsl($_COOKIE);$_POST=addsl($_POST);$_GET=addsl($_GET);}我们来看看addsl方法/**转义函数**@param...
lmxcms代码审计(PHP)
前言这几天小摸鱼,今天翻了一下,看到php的代码审计,兴致来了,从新学习一遍php的mvc代码审计,审计的是lmxcms,适合新手,采用的mvc架构前台SQL注入(留言板)位于留言板处,index.php?m=Book&a=index,对应的是Book控制器的index方法,寻找到Book控制器的index方法publicfunctionindex(){if(isset($_POST['setbook'])){//提交留言$data=$this->checkData();if($this->bookModel->add($data)){$this->setBookTime();//存储提交时间rewrite::succ($this->l['book_ok']);}else{rewrite::error($this->l['book_error']);}}//判断是否调用留言数据if($GLOBALS[&#x2...
Java代码审计练习(三)
前言继续练习代码审计,今天是Tmall,一个商城系统吧文件上传位于ProductController.java中的uploadProductImage方法@[email protected](value="admin/uploadProductImage",method=RequestMethod.POST,produces="application/json;charset=utf-8")publicStringuploadProductImage(@RequestParamMultipartFilefile,@RequestParamStringimageType,HttpSessionsession){StringoriginalFileName=file.getOriginalFilename();logger.info("获取图片原始文件名:{}",originalFileName);Stringextension=originalFileName.substr...