![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CTF
文章平均质量分 83
S1nJa
做难事必有所成。
展开
-
[HECTF 2022]—Web WirteUp
HECTF 2022原创 2022-11-08 23:21:00 · 587 阅读 · 0 评论 -
[祥云杯 2022]ezjava
比赛中卡在了内存马上,了解完Controller和Interceptor内存马后,再来复现一下。原创 2022-11-04 09:26:13 · 1020 阅读 · 1 评论 -
CTF—Go题目复现
一道Go的模板注入由于没了解过Go的SSTI所以先简单看下:go语言快速入门:template模板 · Golang语言社区 · 看云 (kancloud.cn)Go SSTI初探 | tyskillのBloggo的SSTI漏洞成因与模板语法和jinja2差不多,都用到了,通过{{.}}我们可以获得到作用域Demo当使用{{.}}时,会获取person结构体中的所有属性,所以在经过Execute渲染后,便会输出:除此外若想获取单个属性也可以用结果复现主要有几个路由先看的flagHandler中原创 2022-06-23 08:29:48 · 2882 阅读 · 0 评论 -
[VNCTF 2022] easyjava
提示传参随便传个参数后,发现是Tomcat框架的直接读文件 web.xml没啥信息 后来发现有个classes目录file协议读取文件即可(JDK 9之前,也可以用协议),读取后进行反编译,最开始用的jd-gui,结果有一个地方反编译有点小差错还是用在线工具吧。JAVA反向工程网 (javare.cn)反编译好后先看下的doGet函数这里的方法就是检测传入的参数值是不是vnctf2022所以这里如果想得到key就需要name传参vnctf2022,但传参后又会执行if中的语句,if和else中的语句相原创 2022-06-10 07:45:00 · 1859 阅读 · 1 评论 -
[VNCTF 2022] InterestingPHP
打开环境后就一行简单的代码,真的是代码越短题目越难啊。。。。这里尝试phpinfo等都被ban了,所以要通过其他函数读取一下disable_function查看一下过滤函数读取配置信息主要是这两个函数(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)ini_get_all — 获取所有配置选项说明 ini_get_all(string $extension = ?, bool $details = true): array获取所有已注册的配置选项(PHP 4, PHP 5, PH原创 2022-06-09 14:48:42 · 878 阅读 · 0 评论 -
[2022DASCTF Apr X FATE 防疫挑战赛] warmup-php
先看下spl_autoload_register函数用法1.phpTest.php其实就相当于一个文件包含的作用,当实例化对象时,会将我们实例化的内容传入KaTeX parse error: Expected group after '_' at position 42: …实例化Action时,会调用`_̲_construct()`,该…action,如果我们传参action的值为,那么在$object=new Test()后,就相当于包含了,从而也就可以调用类中的A方法了若去掉spl_autoloa原创 2022-06-08 12:00:00 · 760 阅读 · 0 评论 -
[东华杯2021] ezgadget
运行访问127.0.0.1:8888即可是一个jar包,所以都是class文件,我这里是通过,反编译源码,之后放到IDEA的maven项目中,再将文件中的包导入进去其实主要的文件就三个,,该类继承了,所以直接可以想到动态加载字节码,并且在方法中,看到了,之后try中又有个,所以只要控制的值,就可以任意代码执行。(defineClass直接加载字节码之前分析过不清楚可以看一下)这里的ClassByte值就是我们需要执行命令的字节码文件,先构造一下。(Windows环境无法反弹shell,所以用calc代替原创 2022-06-07 16:32:18 · 1044 阅读 · 0 评论 -
[Dest0g3 520迎新赛] Web部分wp
文件竞争PHP 最新版的小 Trick,require_once 包含的软链接层数较多时 once 的 hash 匹配会直接失效造成重复包含php源码分析 require_once 绕过不能重复包含文件的限制 - 安全客,安全资讯平台 (anquanke.com)也可以通过seesion文件包含EasyPHP设置了一个错误处理函数,只需要让他报错就能输出flag,这里用数组绕过即可payload:SimpleRCE法一hex2bin 绕过,大部分读取文件函数都过滤了,后来测试出一个head原创 2022-06-06 13:00:00 · 1213 阅读 · 1 评论 -
ctfshow thinkphp专题
web569主要就是考察了一个url解析模式http://localhost/index.php/模块/控制器/操作/参数/值payload:/index.php/Admin/Login/ctfshowLoginweb570Common/Conf/config.php,发现可利用点,一个闭包路由'ctfshow/:f/:a' =>function($f,$a){ call_user_func($f, $a); }传参发现也能正常执行/index.php/ctfsho原创 2022-05-25 14:15:00 · 1667 阅读 · 0 评论 -
[强网杯 2019]Upload
ThinkPHP学了十多天了,拿个题练练手信息收集打开环境后是一个登录界面,注册登陆后,是一个文件上传点,上传php会被检测。于是先扫了下目录,扫出www.tar.gz——tp源码代码审计先看controller代码审计在application/web/controller/找到四个controller,Index.php,Login.php,Profile.php、Register.phpindex.php中主要就是login_check()方法,因为里边有unserializepublic原创 2022-05-23 10:00:00 · 643 阅读 · 0 评论 -
PHP反序列化原生类利用
前言之前对反序列化原生类进行过总结,但可能总结的方面不同,在ctf用到的很少,所以这里在对ctf常用原生类进行一次总结。原生类php中内置很多原生的类,在CTF中常以echo new $a($b);这种形式出现,当看到这种关键字眼时,就要考虑本题是不是需要原生类利用了。先看下都有什么内置原生类<?php$classes = get_declared_classes();foreach ($classes as $class) { $methods = get_class_meth原创 2022-05-10 15:29:29 · 1681 阅读 · 0 评论 -
第二届网刃杯部分wp
Sign_in题目描述:炒鸡简单的签到题,玩的开心~~~~ 题目链接见附件,每个链接均可访问,环境5分钟重启一次。file协议访问/etc/hosts,发现内网ip扫描c段,发现127.73.23.100存活,需要GET传参一个ahttp://124.222.24.150:8091/?url=172.73.23.100传a提示需要POST传b,这里的b,是指在172.73.23.100中传b,而当前host是:124.222.24.150,所以这里用到了gopher协议的POST传参构造原创 2022-04-26 19:00:00 · 2470 阅读 · 6 评论 -
ctfshow web入门 代码审计
web301原创 2022-02-12 21:46:45 · 2873 阅读 · 0 评论 -
ctfshow web入门 反序列化
web254原创 2021-12-26 12:57:16 · 1815 阅读 · 0 评论 -
ctfshow web入门 jwt
基础知识jwt是由三部分构成的,第一部分是头部(header),第二部分是载荷(payload),第三部分为签证(signature)头部头部声明了类型和加密方法,如下{ 'typ': 'JWT', 'alg': 'HS256'}然后将头部进行base64加密后去掉=号,构成第一部分ewogICd0eXAnOiAnSldUJywKICAnYWxnJzogJ0hTMjU2Jwp9载荷和头部结构类似,但存放的是数据签证jwt的第三部分是一个签证信息,这个签证信息由三部分组成:原创 2021-12-10 18:23:53 · 2409 阅读 · 0 评论 -
ctfshow web入门 SSRF
web351原创 2021-12-09 00:14:44 · 729 阅读 · 0 评论 -
ctfshow web入门 sql注入
无过滤注入web171查询语句$sql = "select username,password from user where username !='flag' and id = '".$_GET['id']."' limit 1;";单引号闭合,未做任何过滤payload:1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+ /原创 2021-12-07 16:10:38 · 2203 阅读 · 0 评论 -
无回显getshell
自从打完Geek challenge后发现现在的很多题都趋于一种无回显getshell的形式,像反序列化、SSTI、RCE、代码审计等题目都会出现,记录几道复现出的无回显getshellwhere_is_my_FUMO(反弹shell)<?phpfunction chijou_kega_no_junnka($str) { $black_list = [">", ";", "|", "{", "}", "/", " "]; return str_replace($black_原创 2021-11-28 15:23:53 · 3224 阅读 · 0 评论 -
ctfshow web入门 SSTI
web361没做任何的过滤,任意payload即可payload:?name={{url_for.__globals__['os']['popen']("cat /flag").read()}web362提示做了过滤但上题的payload仍然能打通web363过滤了引号"可以用request.args.a绕过例:{{()[request.args.a][request.args.b][-1][request.args.c]()}}?a=__class__&b=__mro__&a原创 2021-11-22 16:27:36 · 3121 阅读 · 0 评论 -
ctfshow web入门 php特性
web89intval() 函数用于获取变量的整数值,可preg_match过滤了数字,这里可以用数组绕过,因为preg_match无法处理数组<?phpinclude("flag.php");highlight_file(__FILE__);if(isset($_GET['num'])){ $num = $_GET['num']; if(preg_match("/[0-9]/", $num)){ die("no no no!"); } if原创 2022-04-11 14:17:12 · 5271 阅读 · 0 评论 -
CTFshow web入门 信息收集
web1F12直接出web2禁用右键,F12还是可以看到源码web3这次后台没有源码了,火狐看响应头发现flagweb4题目提示robots协议,访问robots.txt访问flagishere.txtweb5题目提示phps源码泄露,访问index.phps下载源码web6题目提示解压源码到当前目录,猜测为www.zip访问下载解压,提示fl000g.txt,访问得到flagweb7版本控制器,不是git泄露就是svn泄露 此题通过访问/.git/获得flag原创 2021-11-17 15:30:04 · 478 阅读 · 0 评论 -
HECTF 部分wp
WebEDGnb(签到)docker run -it moth404/edgnb执行后发现有很多flag,但都是空的,推测flag应该不在容器内部查看docker history,容器构建记录docker history moth404/edgnb发现flag但是显示不全用 --no-trunc=true进行不截断输出,看到flagdocker history moth404/edgnb --no-trunc=true或者可以在dockerhub上直接看记录mmmmd5d5d原创 2021-11-15 22:23:10 · 4478 阅读 · 0 评论 -
强网杯wp
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档强网杯wpPWNPWN no_output提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import nu原创 2021-07-22 19:03:19 · 1009 阅读 · 0 评论