CTF做题笔记
文章平均质量分 59
白猫a~
大佬都是从菜鸟开始的
展开
-
SHCTF(山河)赛事部分Write up-白猫
2023SHCTF(山河)赛事部分Write up-白猫原创 2023-10-30 09:21:42 · 769 阅读 · 2 评论 -
2023i春秋香山杯网络安全大赛Write up
常用于上层语言构造特定调用链的方法,与二进制利用中的面向返回编程(Return-Oriented Programing)的原理相似,都是从现有运行环境中寻找一系列的代码或者指令调用,然后根据需求构成一组连续的调用链,最终达到攻击者邪恶的目的。类似于PWN中的ROP,有时候反序列化一个对象时,由它调用的__wakeup()中又去调用了其他的对象,由此可以溯源而上,利用一次次的 " gadget " 找到漏洞点。序列化就是把类里面的对象转化成字符串形式(包括对象名、对象属性、对象字符、对象值等等)原创 2023-10-16 11:31:04 · 856 阅读 · 0 评论 -
KCTF2023_签到题 1
【代码】KCTF2023_签到题 1。原创 2023-12-27 18:24:16 · 524 阅读 · 0 评论 -
KCTF-Web-签到题
在底部发现base64编码。刚开始我以为是SQL注入。原创 2023-12-26 19:10:31 · 484 阅读 · 0 评论 -
青少年CTF-qsnctf-Web-include01&include02(多种方法-知识点较多-建议收藏!)
php://data协议是PHP中的一种特殊协议,可以在包含函数中被用来执行一些特殊的操作。它没有条件限制,但仅能用于在CTF(Capture The Flag)中读取本地文件,且不受allow_url_fopen与allow_url_include的影响。php://input是PHP提供的一个伪协议,允许开发者访问POST请求的原始内容。因为根目录下只有flag这一个f开头的文件 所以查看的就是flag文件的内容咯。题目描述:你能否获取Flag呢,flag格式为:qsnctf{xxx}。原创 2023-12-23 16:59:10 · 1778 阅读 · 0 评论 -
青少年CTF-qsnctf-A1-Misc-签到
题目描述:有没有可能,这个平台就是个题目?原创 2023-12-23 16:56:27 · 409 阅读 · 0 评论 -
青少年CTF-qsnctf-Web-eval
题目描述:Eval是个什么呢,flag格式为:qsnctf{xxx}。system是外部命令执行函数。做道末心师傅出的题啦😉。发现了flag的存在!原创 2023-12-21 16:58:58 · 447 阅读 · 0 评论 -
青少年CTF-qsnctf-Web-登陆试试
题目描述:Syclover用户忘了他的密码,咋办哦,依稀记得密码为6位数字,以774开头,这次我们来爆爆他的密码,让他再也不犯相同的错了。找到与其它不同的Length这个就是得到的正确密码。只有爆破的时候才会对输入数据进行MD5值加密。看看源码里面有没有其它有用的信息。这样还不行需要对MD5值进行解密。索性猜测正确密码在最后边。628条数据仍未爆出。原创 2023-12-21 16:38:57 · 526 阅读 · 0 评论 -
青少年CTF-qsnctf-Web-Queen
注意是加X-Forwarded-For请求头的那个数据包。看到了登录窗口,使用burp suite工具进行抓包。这里我创建了一个名为flag.txt的文本文件。将抓包数据内容复制下来放到一个文本文件当中。根据做题经验不难看出是base64编码。题目描述:Q的系统会不会有漏洞?您的IP不是管理员的IP地址!之前可以用sqlmap跑出来。使用sqlmap工具梭一把。并将数据包内容粘贴到了其中。猜测此题目涉及SQL注入。输入的账号和密码被加密。原创 2023-12-20 16:56:31 · 584 阅读 · 0 评论 -
青少年CTF-qsnctf-Web-PingMe02
IFS是Shell中的一个环境变量,它代表了Shell的内部字段分隔符。IFS的默认值是空格符、制表符和换行符,这些字符用于将输入行分割成字段,以便Shell可以对它们进行处理。在某些情况下,如果需要以空格为分隔符进行分割,可以使用IFS代替空格。"*"这个符号是查看f开头的所有文件,因为根目录下只有flag这一个以f开头的文件,故可以用此符号进行绕过。又是一道Ping题目诶!flag关键字被过滤。列出根目录下的所有目录和文件。使用命令more绕过过滤。不能有空格,空格被过滤。使用特定符号绕过过滤。原创 2023-12-20 16:52:16 · 521 阅读 · 0 评论 -
BugKu-Web-滑稽
【代码】BugKu-Web-滑稽。原创 2023-12-16 14:14:05 · 373 阅读 · 0 评论 -
BugKu-Web-Flask_FileUpload(模板注入与文件上传)
Flask也被称为“microframework”,因为它使用简单的核心,用扩展来增加其他功能。Flask的核心组件包括Werkzeug,一个WSGI工具箱,以及Jinja2,一个模板引擎。这为开发人员提供了更大的灵活性,可以根据应用程序的需求选择最适合的组件。在开发Web应用程序时,Flask提供了一个构建块,允许开发人员根据需要自由地选择和组合不同的组件。总的来说,Flask是一个轻量级的Web应用框架,具有简单性和灵活性,适合小型团队在短时间内实现功能丰富的中小型网站或Web服务。原创 2023-12-13 16:16:48 · 812 阅读 · 0 评论 -
BugKu-Web-Simple_SSTI_1&Simple_SSTI_2(浅析SSTI模板注入!)
服务端接收了用户的恶意输入以后,未经任何处理就将其作为Web应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell等问题。{{}}是模板变量的用法。在模板中,想要展示视图向模板渲染的变量,需要使用{{变量}}进行接收。这些文件包含了程序运行所需的设置和参数,使得程序可以根据配置文件的内容进行适应性调整。唉,我不免耸了耸肩,有些无奈,并未发现什么有用的。对于这段命令,在第一题,我也是有所提及,相差不大。原创 2023-12-13 16:10:36 · 1091 阅读 · 0 评论 -
BUUCTF [CISCN2019 华北赛区 Day2 Web1]Hack World 1(SQL注入之布尔盲注)
在进行布尔盲注攻击时,攻击者首先需要对目标应用程序进行SQL注入,然后根据页面返回的结果来判断注入是否成功。布尔注入是一种常见的SQL注入攻击技术,攻击者通过构造恶意输入,使应用程序的SQL查询返回不同的结果,从而达到绕过应用程序的安全机制,获取未授权的信息或执行恶意操作的目的。总之,布尔盲注是一种比较复杂的SQL注入攻击方式,需要攻击者具备一定的技术水平和耐心。这种攻击方式主要利用Web页面的返回结果,根据页面返回的True或者是False来得到数据库中的相关信息。可知是字符型的布尔注入(盲注)原创 2023-12-09 16:59:30 · 843 阅读 · 0 评论 -
Catf1agCTF-WEB签到
flag{give_you_false_flag}给你假的flag。考虑到此平台大多flag格式都是catf1ag。猜测出题人把正确的flag进行反转了。最后猜测到一个非常有意思的出题方式。果不其然将正确的flag进行了反转。既然出题人说了有flag的存在。结果都没有发现flag的存在。毕竟是签到题也不要想太麻烦。那么就斗胆搜索此关键字。原创 2023-12-09 16:52:31 · 435 阅读 · 0 评论 -
BUUCTF-MISC-你竟然赶我走
【代码】BUUCTF-MISC-你竟然赶我走。原创 2023-12-02 15:29:40 · 483 阅读 · 0 评论 -
BUUCTF-MISC-第二题
动态过程会时不时弹出flag。图片是GIF格式动态图片。我们需要想办法去拦截。原创 2023-12-02 15:11:43 · 390 阅读 · 0 评论 -
[GYCTF2020]Blacklist 1详解(handler命令用法!)
果不其然改表名的两个关键命令被过滤了。select这个查询命令大家都很熟悉。但是我们却忽略了一个也很重要的角色。虽然handler这个命令不常见。那就是handler查询命令。存在FlagHere数据表。极有可能当中存在flag。rename和alter。包括查询命令也被过滤了。可知本题是字符型注入。原创 2023-12-01 11:59:11 · 820 阅读 · 0 评论 -
2023SICTF-Reverse-白猫-[签到]PYC
题目名称: [签到]PYC 题目简介: 本次比赛禁止py交易!题目环境: PYC.ZI解压里面有一个file.pyc文件。原创 2023-12-01 11:54:31 · 481 阅读 · 0 评论 -
2023SICTF-web-白猫-RCE
题目名称: RCE 题目简介: 请bypass我!题目环境: http://210.44.151.51:10088/函数理解:#PHP str_replace() 函数定义和用法str_replace() 函数以其他字符替换字符串中的一些字符(区分大小写)。该函数必须遵循下列规则:1.如果搜索的字符串是数组,那么它将返回数组。2.如果搜索的字符串是数组,那么它将对数组中的每个元素进行查找和替换。原创 2023-11-30 14:33:34 · 605 阅读 · 0 评论 -
BUUCTF [GXYCTF2019]BabySQli 1 详解!(MD5与SQL之间的碰撞)
通过用户所在列测试,得出了存在用户admin,又得出了admin用户在第二列,也就是username字段那一列。猜测’or’关键字或’='字符被过滤。发现参数password被md5加密。大致就是传进去的值要进行md5值加密。但是要对传入的那个值进行md5值加密。网上可以随便找一个在线md5加密平台。可以得出此题的注入点是参数name。可以得出此题的注入类型为字符型注入。通过测试发现是套加密(二次加密)通过对这段SQL语句的初步判断。看着和之前做过的题很类似。在注释那里发现某种编码。repeater放包。原创 2023-11-30 13:53:46 · 1485 阅读 · 7 评论 -
2023SICTF-pwn-白猫-[签到]Shop
题目名称:[签到]Shop题目简介:你听说过在C语言中的int型数据吗?题目环境:使用Kali ncrack进行连接。原创 2023-11-29 14:33:11 · 448 阅读 · 0 评论 -
BUUCTF [GXYCTF2019]BabyUpload 1详解(.htaccess配置文件特性)
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。通过源码可以看出这道文件上传题目主要还是考察.htaccess配置文件的特性。倘若不先上传.htaccess配置文件,那么后台服务器就无法解析php代码。先截断数据包再把上传的111.jpg文件更名为.htaccess文件。右键Repeater。原创 2023-11-29 14:18:18 · 1488 阅读 · 0 评论 -
2023SICTF-web-白猫-[签到]Include
题目名称:[签到]Include#题目简介:flag位于flag.php,是一个非常简单的文件包含捏~#题目环境:#函数理解:substr() 函数返回字符串的一部分如果 start 参数是负数且 length 小于或等于 start,则 length 为 0。语法参数string,必需,规定要返回其中一部分的字符串参数start,必需,规定在字符串的何处开始正数 - 在字符串的指定位置开始负数 - 在从字符串结尾开始的指定位置开始。原创 2023-11-28 20:54:46 · 659 阅读 · 0 评论 -
BUUCTF [SUCTF 2019]CheckIn 1(user.ini文件构成的PHP后门 | 两种解法!)
只需要重新开启题目环境即可,最后,做这道题的步骤是,先上传.user.ini配置文件,再去上传PHP一句话木马文件。因为我们使用的是auto_prepend_file,在主文件之前就已经自动解析文件名了,所以index.php主文件在最后面。php.ini大家都熟悉,那么我们就可以把.user.ini理解为用户可自定义的php.ini配置文件。绕过后缀的文件格式有php、php3、php4、php5、phtml、pht。.user.ini配置文件和.htaccess配置文件都是为了解析PHP代码。原创 2023-11-28 20:46:15 · 1373 阅读 · 0 评论 -
BUUCTF [网鼎杯 2020 青龙组]AreUSerialz 1 (两种解法 超详细!)
*include() ** 包含函数 ** ****is_valid() ** 检查对象变量是否已经实例化,即实例变量的值是否是个有效的对象。**file_get_contents() ** 函数把整个文件读入一个字符串中。**file_put_contents() **函数把一个字符串写入文件中。原创 2023-11-27 16:40:55 · 1379 阅读 · 15 评论 -
BUUCTF [MRCTF2020]Ez_bypass 1
id与gg的值不能相等;可通过数组并赋不同的值进行绕过。原创 2023-11-25 19:53:59 · 822 阅读 · 0 评论 -
青少年CTF-WEB-2048
String.fromCharCode将Unicode 编码转换成字符串形式。一、有参数改参数的数值达到题目规定的分数即可拿到flag。这道题并没有说题目通关即可获得flag,也并没有发现参数。二、没有参数那么flag就是被编码了,找编码即可。所以这里猜测flag被编码了,就在源代码里面。alert是JavaScript的弹窗方法。针对这种游戏通关类题目,常见的有两种情况。使用script标签将其作为JS代码执行。查看2048.js文件内容。原创 2023-11-19 16:10:44 · 1162 阅读 · 0 评论 -
经典ctf ping题目详解 青少年CTF-WEB-PingMe02
如果想效率更更高,我们还可以自己生成Linux常见列出目录文件和查看文件等命令和常用字符以及关键字的字典,并使用BurpSuite进行爆破查看那个命令和字符以及关键字的过滤情况。'作为命令之间的连接符,当上一个命令完成后,继续执行下一个命令。当然Linux系统查看文件内容的命令还有很多,这里就举着三个例子了。因为f开头的文件只有flag这一个文件,所以查的就是flag。cat是Linux系统里面最常见的查看文件内容的命令。ls是Linux系统里面的列出目录文件的命令。查看根目录下flag文件的内容。原创 2023-11-18 18:20:47 · 1154 阅读 · 0 评论 -
青少年CTF-WEB-Flag在哪里?
此题主要考察F12查看源代码的使用。原创 2023-11-18 17:20:04 · 189 阅读 · 0 评论 -
文件格式猜测
第二阶段是没有给你文件格式,你需要自己通过010编辑器去分析查找这个文件的格式。在ASCLL字符串内容中可以发现是PPT的英文全称,所以显而易见这个1-4文件是PPT文件格式。改1-4文件后缀.PPT 1-4.PPT 双击打开1-4.PPT文件,查看内容。2.第二阶段是只给你阶段不给你格式,自己通过010编辑器去分析查找文件的格式。1.第一阶段是直接给你文件格式,通过010编辑器去分析查找文件是什么格式。在第二阶段中,通过010编辑器分析查找1-4文件内容。在0480h-04A0h中发现重要信息。原创 2023-11-17 19:34:23 · 113 阅读 · 0 评论 -
非常经典的一道SQL报错注入题目[极客大挑战 2019]HardSQL 1(两种解法!)
(在使用语句时,如果XPath_string不符合该种类格式,就会出现格式错误,并且会以系统报错的形式提示出错误!(局限性查询字符串长度最大为32位,要突破此限制可使用right(),left(),substr()来截取字符串)没错,又是我,这群该死的黑客竟然如此厉害,所以我回去爆肝SQL注入,这次,再也没有人能拿到我的flag了。那么下面就给大家一直演示^绕过or限制了(上一个updatexml()函数使用的是()绕过空格限制)函数exp() 此函数返回e(自然对数的底)指数X的幂值的函数。原创 2023-11-16 21:02:09 · 1161 阅读 · 2 评论 -
详解[ZJCTF 2019]NiZhuanSiWei 1(PHP两种伪协议、PHP反序列化漏洞、PHP强比较)还有那道题有这么经典?
这里再说明以下,为什么给file参数赋值useless.php,因为你进入了useless.php才能进入password参数那一步!那么当参数file赋值为useless.php文件的时候,才会去执行参数password的内容。可以看出,当参数file赋值为index.php文件的时候,一直执行的是index代码内容。较为简单的序列化,直接给参数file赋值flag.php即可。可以看出作者注释里面给的有一个文件,useless.php。反之,如果绕过正则的话,就包含咱们传给file参数的文件。原创 2023-11-15 08:00:00 · 213 阅读 · 0 评论 -
(.htaccess文件特性)[MRCTF2020]你传你呢 1
概述来说,htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页。通过 application/x-php内容类型,可以看出被识别出是PHP文件,猜测作者使用了htaccess文件更改了相关配置。到这里我们的一句话木马并没有被识别出来,或者说并没有执行,猜测被拦截。可以把这段代码理解为,将1.jpg文件内容当作PHP文件执行。尝试上传更改后的.htaccess文件。.htaccess文件上传成功。上传.htaccess文件。原创 2023-11-14 15:12:15 · 1351 阅读 · 0 评论 -
[HCTF 2018]admin 1(四种解法!)
好,这就简单了,admin用户存在,但是不清楚admin用户的密码。输入admin用户-密码任意比如说1-登录-并使用burp进行抓包。不过话说回来,还是不应该投机取巧,咱们按照正常步骤走一遍。Start attack开始爆破。显示admin用户已经被注册了。光标选中1,Add添加即可。先注册一个admin用户。Intruder送去爆破。得到admin用户的密码。进去login登陆界面。有登录和注册两个按钮。原创 2023-11-13 10:46:01 · 1285 阅读 · 2 评论 -
[护网杯 2018]easy_tornado 1(两种解法!)
在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,这里面就是我们的一些环境变量。猜测解题关键点在md5(cookie_secret+md5(filename))这里。改哈希值看看是否有变化。原创 2023-11-12 14:41:17 · 1582 阅读 · 3 评论 -
[BJDCTF2020]Easy MD5 1
在PHP中,数组作为参数传递时会被hash计算,但是MD5函数只能接受字符串类型的参数,因此当数组作为参数传递时,会提示MD5()函数需要一个string类型的参数。而 Mysql 刚好又会把 hex 转成 ascii 解释,因此拼接之后的形式是select * from ‘admin’ where password=’’ or ‘6xxxxx’,等价于 or 一个永真式,因此相当于万能密码,可以绕过md5()函数。所以说看到这段内置SQL语句,直接使用ffifdyop绕过即可,这就是它的原理。原创 2023-11-11 15:30:16 · 200 阅读 · 0 评论 -
[极客大挑战 2019]BuyFlag 1(两种解法)
先通过火狐浏览器插件Max HackBar进行POST传参,再抓包,这样数据包就是POST传参方式,如果直接在数据包里面把GET方式传参改为POST方式传参的话,可能依旧是GET方式传参,这点需要注意。PHP中的弱比较(Weak comparison)是一种比较两个值是否相等的方法,但它不会对两个值进行严格的全等比较。中途我2023版Burp里面的Repeater消失不见了,这里问下师傅们,现在不知道怎么回事,所以我又用2021版本Kali做题了,苦涩。(在比较的时候把值转换成了数字字符串)原创 2023-11-10 18:52:43 · 658 阅读 · 0 评论 -
通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理[RoarCTF 2019]Easy Calc 1
通过一道题目带你深入了解WAF特性、PHP超级打印函数、ASCII码chr()对应表等原理。原创 2023-11-09 21:22:13 · 235 阅读 · 0 评论 -
[ACTF2020 新生赛]BackupFile 1
一道经典信息收集与PHP弱比较的题目原创 2023-11-08 18:31:27 · 174 阅读 · 1 评论