
CTF
文章平均质量分 71
My6n
我们会毁灭于我们所热爱的东西
展开
-
NewStarCTF2024-Week5-Web&Misc-WP
通过把 time 赋值为 happy 对象,将对象当做字符串就会触发 __tostring 魔术方法,转而继续执行 get_flag 函数,进入一个循环。但是文件传上去了怎么执行呢,文件是不会自己执行的,而且是 python 写的网站,我们 php 传上去也根本解析不了。这一步也是折腾了很久,一开始试了 /bin/ls,/usr/bin/ls,发现都会让环境崩掉。这里有个注释符,一开始想的是闭合再插入新的 php 语句,试了下没成功,采用换行符绕过。原创 2024-11-06 11:03:19 · 1532 阅读 · 0 评论 -
NewStarCTF2024-Week4-Misc-WP
hint 是一张倒着的图片,因此将四块二维码进行旋转、取反色等各种操作后进行拼接,取反色后中间有一个十字,看着像数据矩阵码,进行了各种组合,扫不出来。调用合约的 unlock 函数,使 isSolved 变量为 true原创 2024-10-30 13:46:02 · 701 阅读 · 0 评论 -
NewStarCTF2024-Week4-Web-WP
打算去改上周的脚本,结果去跑的时候忘了将上次的最后 payload 注释,直接就上周的脚本就跑出来 flag 了,week3 应该是打算考布尔盲注,week4 是时间盲注,所以直接就都打通了。最后 final.php 是一个反序列化的利用,一开始还想绕过过滤的 chocolate,后面发现不需要绕过,并且 url 编码后传入不行,直接传序列化后的内容。又看到另一个下载插件路径可控的,但是插件管理里面并没有看到可以下载插件的地方, 手动构造一下,但是似乎出不了网...原创 2024-10-30 13:32:37 · 1647 阅读 · 3 评论 -
NewStarCTF2024-Week3-Misc-WP
最后采样率 22050 下 ctrl+A 全选导出,删掉了左声道,并且没有增强音量下导出。试了很多纯 C++ 的发现不行,那就采用内敛汇编,主要是还做了长度限制。直接搜 flag 没搜到,搜了下 base64 编码后的结果还真搜到了。拿到 flag:flag{U_W1n!最终正确 flag:flag{MU5156_济宁市}试了很多次,特别注意啊,一定不要增强它的音量!听得出来就是十六位,但是尝试了好久。原创 2024-10-23 09:32:34 · 557 阅读 · 0 评论 -
NewStarCTF2024-Week3-Web-WP
使用 data 协议,结合 base64 编码绕过。这道题当时写的 exp 能打通 week3 和 week4 的,所以下周再给大家放出来。审代码的时候发现这句,说明应该是还有一个叫 flag.py 的文件原创 2024-10-23 09:25:03 · 1127 阅读 · 0 评论 -
NewStarCTF2024-Week2-Misc-WP
这个是 Windows 早期使用的 LM 哈希,通常较弱,容易被破解。在现代系统中一般用 aad3b435b51404eeaad3b435b51404ee 表示未启用(即空值)。我们需要爆破第二个的 hash,NTLM 算法生成的哈希值原创 2024-10-16 20:35:17 · 1595 阅读 · 0 评论 -
NewStarCTF2024-Week2-Web-WP
在 PHP8 之前,如果参数中出现中括号[,那么中括号会被转换成下划线_,但是会出现转换错误,导致如果参数名后面还存在非法字符,则不会继续转换成下划线。也就是说,我们可以刻意拼接中括号制造这种错误,来保留后面的非法字符不被替换,因为中括号导致只会替换一次。顺便说下这里回溯绕过和数组绕过都是不行的,回溯一般用于匹配不到的情况,这里是要求匹配成功,其次我传了下服务器直接处理不了,数组的话也是一般用于匹配不到,因为 preg_match 处理不了数组会直接返回 false,显然这里需要的是返回 true。原创 2024-10-16 20:19:06 · 1511 阅读 · 0 评论 -
NewStarCTF2024-week1-所有WP(勇师傅版)
第一周的题比较简单所以 ak 了,勇师傅也就新生赛能体会下全栈的感觉,实则菜鸡一枚哈哈哈,要学的东西还多,慢慢来吧,路漫漫其修远兮,吾将上下而求索。原创 2024-10-08 21:13:55 · 4253 阅读 · 4 评论 -
使用 GZCTF 结合 GitHub 仓库搭建独立容器与动态 Flag 的 CTF 靶场+基于 Docker 的 Web 出题与部署+容器权限控制
关于 CTF 靶场的搭建(使用 CTFd 或者 H1ve)以及 AWD 攻防平台的搭建,勇师傅在前面博客已经详细写过,可以参考我的《网站搭建》专栏,前段时间玩那个 BaseCTF,发现它的界面看着挺不错的,了解到也是一个开源项目-GZCTF,网上未见有这方面的详细介绍,看了下网上都只是简单说了下怎么搭出 GZCTF 这个靶场的界面,然而对于后续题目的部署并未进行详细的介绍与说明,因此这里分享下自己的部署经验以及可能遇到的问题、注意点与解决方案。原创 2024-09-01 23:20:02 · 5279 阅读 · 1 评论 -
BaseCTF-Misc-Week2-WP
在 FTP-Data flag.zip 这条发现压缩包(flag.txt)数据。筛选关键字 log in,找到一条logged in,前面密码为 administrator!@#,但是试了这个密码不对。全选后发现下面有东西,改一下字体颜色看看,没有发现什么,这里是隐藏字体...我之前是一直开着的后面重装了系统忘了开,就折腾了好久才找到。原创 2024-08-28 18:13:00 · 1236 阅读 · 0 评论 -
BaseCTF-Web-Week2-WP
但是$s2->word = $s1; 中 word 是私有变量,这里是调用不到的,链子顺序没有问题,修改代码访问私有变量。方法(1)通过使用 PHP 的反射机制访问和修改类的私有属性。原本是有一个工具 hashpump,但是我 git 的时候提示找不到仓库了,然后在 github 上找到了一个写好的 python脚本,叫做 hash-ext-attack:原创 2024-08-28 17:35:32 · 1606 阅读 · 0 评论 -
BaseCTF-web-Week1
在 URL 中,@ 符号前面的部分通常表示用户信息(例如用户名和密码),这种用法曾经用于需要在 URL 中嵌入用户名和密码的情况,但是由于安全原因,这种方式已逐渐被淘汰,现代浏览器大多不再支持直接从 URL 中提取用户名和密码进行身份验证。原创 2024-08-25 13:18:51 · 1412 阅读 · 0 评论 -
ctfshow-web入门-爆破(web21-web24)
(intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1) === intval(substr($token, 31,1)) 将第 2、15 和 18 个字符转换为整数相加,再除以第 2 个字符的整数值,检查结果是否等于第 32 个字符的整数值;flag.ctf.show 页面无法访问(前面有一个查这个域名的 DNS 的 TXT信息的题也是有问题)原创 2024-06-02 17:29:44 · 2062 阅读 · 0 评论 -
ctfshow-web入门-爆破(web26-web28)
提取:\u606d\u559c\u60a8\uff0c\u60a8\u5df2\u88ab\u6211\u6821\u5f55\u53d6\uff0c\u4f60\u7684\u5b66\u53f7\u4e3a02015237 \u521d\u59cb\u5bc6\u7801\u4e3a\u8eab\u4efd\u8bc1\u53f7\u7801。可以注意到,这里的爆破位置恰好是身份证号的出生年月日的地方,年的话我们就从 1990 开始到 2024,月的话就是 00 到 12,日的话就是 01 到 31。原创 2024-06-05 11:24:39 · 1755 阅读 · 0 评论 -
ctfshow-web入门-爆破(web25)及php_mt_seed工具的安装与使用
rand)){ ,需要为真才会执行后面输出 flag 的语句,因此 $rand 需要为 0 ,而 $rand = intval($r)-intval(mt_rand());特别注意,这里的 mt_rand()+mt_rand() 是第二次和第三次生成的随机数之和,因为前面已经使用过一次 mt_rand() 了。我们令 r=0,就可以得到 $rand = -intval(mt_rand()),只要设置了 r,就会 echo $rand;都是一样的种子,但是第一次和第二次生成的随机数结果是不一样的。原创 2024-06-03 11:06:44 · 1506 阅读 · 4 评论 -
ctfshow-web入门-信息搜集(web11-web20)
X探针:又名刘海探针、X-Prober,是一款由 INN STUDIO 原创主导开发的开源 PHP 探针,拥有美观简洁的界面、极高的运行效率和极低的资源占用,能高精度显示服务器的相应信息。php 探针:用来探测空间、服务器运行状况和 PHP 信息,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。雅黑 php 探针:每秒更新,不用刷网页,适用于Linux系统,可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。原创 2024-06-02 11:58:34 · 1762 阅读 · 0 评论 -
ctfshow-web入门-信息搜集(web1-web10)
勇师傅还是想打 CTF。原创 2024-05-31 17:13:36 · 1212 阅读 · 0 评论 -
第十七届全国大学生信息安全竞赛创新实践能力赛初赛(CISCN-2024部分WP)
给的 e 其实就是 d,只是结果是移位后的输出,n 很大无法分解,但 kk 与 rr 很小,由 rr= e//n 即可推出 rr 和 kk,又由 e + x + kk*p + rr*((p+1)* (q+1))+ 1 = 65537,将 × 设为 0 和 2^200 然后联立求解一元二次方程,就能求出 p, q 的上下界,这样就有p 和q 的高位,枚举未知位尝试coppersmith 直到分解出结果,最后代入求 e 和 d,进而求得flag。原创 2024-05-20 12:51:19 · 3448 阅读 · 3 评论 -
第三届 SWCTF-Web 部分 WP
我们可以在根目录下发现 flag 文件夹和 secret 文件夹,里面还包含了一层文件夹,但是这里过滤掉了连续的/,也就是说我们不能对两层目录直接操作,我们想要读取里面的文件,可以使用分号绕过,先 cd 到某个文件夹下再执行其他命令。这里的用户名就是 toor,密码是随机生成的 10 位数字,但是这里使用了弱等于,因此可以采用 php 弱类型比较绕过,true == 任何的非0随机数字:返回 true;拿到 flag{ThInk_cOnstantly_0f_There_w1ll_be_n0_echO}原创 2024-04-21 23:31:03 · 1428 阅读 · 0 评论 -
CTFshow-PWN-Test_your_nc(pwn0-pwn4)
连上,等它程序执行完你可以直接来到 shell 界面执行命令,获取 flag。原创 2024-04-15 18:47:29 · 1399 阅读 · 0 评论 -
2024腾龙杯web签到题-初识jwt(签到:这是一个登录页面)
它是 JSON Web Token 的缩写,是一个开放标准,定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息,该信息可以被验证和信任,因为它是数字签名的。它就是一种认证机制,让后台知道该请求是来自于受信的客户端。jwt 由三部分组成,它们之间用圆点(.)连接,这三部分分别是:Header、Payload、Signature。回到最初请求的 login , post 传入 json 格式的 tooken。回显得到一个 token ,也是 json 的格式。原创 2024-03-18 19:26:17 · 1029 阅读 · 0 评论 -
CTF - Web 干货
有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。可以访问请求的原始数据的只读流,将post请求的数据当作 php 代码执行,当传入的参数作为文件名打开时,可以将参数设为php://input,同时 post 写入想要执行的 php 代码,php 执行时会将 post 内容当作文件内容,从而导致任意代码执行。__wakeup() //执行unserialize()时触发 。原创 2024-01-17 21:13:32 · 1463 阅读 · 0 评论 -
CTF之Misc杂项干货
在010editor里面,Ctrl+C或者Ctrl+V针对的是右边的ASCII码操作,如果你想要操作左边的hex十六进制值这需要多加一个shift,即复制为:Ctrl+shift+C,粘贴到左边hex值同理:Ctrl+shift+V。一些通用的常用命令:foremost、binwalk、file、checksec、pngcheck、strings、grep、cat。3、摩斯、希尔、凯撒、仿射、栏栅、维吉尼亚、培根、键盘、rabbit、rot13、AES、md5、RSA等。原创 2024-01-04 23:34:13 · 1721 阅读 · 0 评论 -
基于CTF探讨Web漏洞的利用与防范
随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这也使得越来越多的用户关注应用层的安全问题,对Web应用安全的关注度也逐渐升温。原创 2023-12-20 11:29:33 · 1864 阅读 · 0 评论 -
基于H1ve一分钟搭好CTF靶场
docker ps 是查看处于运行状态的容器,docker ps -a 可以看到所有的包括未启用的。可以重新选择服务器的系统(重装),我这里是直接清云盘(系统还是centos,只是数据初始化)centos自带的是yum命令,但是我们需要使用git从github上进行克隆。如果搭建过程中遇到其他问题,欢迎参考我的其他博客:专栏《网站搭建》访问服务器的8000端口(靶场默认是在8000端口)7、安装 docker-compose。5、设置docker自启动。设置docker容器自启动。4、安装 docker。原创 2023-11-23 11:56:49 · 1202 阅读 · 4 评论 -
CTF靶场搭建及Web赛题制作与终端docker环境部署
这种情况意思是docker需要我们指定下载镜像的版本号。哈喽大家好!我是Myon,趁着我的云服务器还没过期,这次给大家出一期很详细的CTF比赛的靶场搭建以及关于Web赛题的制作与docker环境的部署教程,由于本人能力有限,也只能给大家讲一些基础简单的东西,欢迎大家在评论区互相交流学习,希望通过这篇博客大家能学到一些新东西,也期待大家的关注和支持!原创 2023-11-22 19:26:29 · 10115 阅读 · 9 评论 -
Misc入门干货
无加密的ZIP: 压缩源文件数据区的全局方式位标记应当为00 00,且压缩源文件目录区的全局方式位标记应当为00 00 真加密的ZIP: 压缩源文件数据区的全局方式位标记应当为09 00,且压缩源文件目录区的全局方式位标记应当为09 00 伪加密的ZIP: 压缩源文件数据区的全局方式位标记应当为00 00,且压缩文件目录区的全局方式位标记应当为09 00。是进行伪加密的关键,即压缩文件目录区的第9、第10两个字节。是判断压缩包有无伪加密的重要标志,即压缩源文件数据区的第7、第8两个字节。原创 2023-11-10 11:54:42 · 370 阅读 · 0 评论 -
[HCTF 2018]WarmUp全网最详细解释
对'hint.php'执行mb_substr函数,但是函数内一个参数是来自另一个函数mb_strpos的返回值,因此我们先看mb_strpos函数,使用.进行字符连接,即连接了一个问号字符 '?',得到hint.php?因为我们当前的source.php一般是在html目录下,往上是www,var,然后到根目录,flag一般就放在根目录下面,这里还有一个hint.php?检查'hint.php'是否在白名单中(白名单包括hint.php和source.php),在,继续执行后面的代码;原创 2023-11-08 15:18:38 · 7918 阅读 · 19 评论 -
CTF之PHP特性与绕过
A.A被传到URL中是A.A,但是到了php里面则会被转换为A_A,即保证了参数的传递,也避免了被strpos函数查找到;并且,在PHP8之前,如果参数中出现中括号[,那么中括号会被转换成下划线_,但是会出现转换错误,导致如果参数名后面还存在非法字符,则不会继续转换成下划线。在给参数传值时,如果参数名中存在非法字符,比空格和点,则参数名中的点和空格等非法字符都会被替换成下划线。isset()函数用于检查变量是否设置,如果设置了,则 id=$_GET['id'],否则 id=1。原创 2023-11-01 14:54:31 · 1723 阅读 · 0 评论 -
Geek challenge 2023 EzHttp
访问得到的路径:/o2takuXX's_username_and_password.txt。请求头X-Forwarded-For写127.0.0.1,要求使用Syc.vip代理。请求头Referer写sycsec.com,要求使用Syclover浏览器。请求头User-Agent写Syclover,要求从localhost访问。简单审一下,要求有请求头O2TAKUXX并且内容为GiveMeFlag。增加请求头O2TAKUXX,值为GiveMeFlag。请求头Via写Syc.vip,回显php代码。原创 2023-12-14 11:21:49 · 981 阅读 · 0 评论 -
NewStarCTF2023week5-隐秘的图片
但是这里这道题仔细看一下,修复好了也不像正常的二维码,并且这里给了两张图。第一张二维码扫出来提示没有什么。下载附件解压得到两张图片。取异或,出了另一张二维码。扫一下,拿到flag。原创 2023-10-30 00:00:42 · 1103 阅读 · 6 评论 -
NewStarCTF2023week4-midsql(利用二分查找实现时间盲注攻击)
代码通过不断猜测每个字符的 ASCII 值来构建数据库名,一旦一个字符的 ASCII 值被确定,就继续下一个字符。但是这里尝试了很多都只返回一个页面,没有出现报错页面,因此采用时间盲注,利用sleep函数,制造时间延迟,由回显时间来判断是否报错。注意:这里查询的内容还是需要加上 group_concat(),因为之前我做的一些联合查询有时候不需要加,但是在这里我试了,不行。(我最开始以为是and被过滤,并没有,如果是and或者or被过滤我们也可以使用 && 和 || 替代)原创 2023-10-29 00:36:49 · 1559 阅读 · 0 评论 -
NewStarCTF2023week4-Nmap
这个过滤条件可以筛选出UDP端口开放的数据包,该过滤条件会匹配所有的UDP数据包,因为UDP没有像TCP那样的连接建立过程,所以UDP数据包的到达通常表示端口是开放的。该过滤条件匹配了ICMP "端口不可达"类型的数据包,其中的 "code" 值为3表示端口关闭。这个过滤条件用于查找被目标主机标记为"端口不可达"的数据包,通常表示端口关闭;将端口由小到大排序, 80,3306,5000,7000,8021,9000。尝试提交 flag{80,3306,5000,7000,8021,9000}原创 2023-10-28 21:14:34 · 578 阅读 · 0 评论 -
NewStarCTF2023week4-溯源
中国菜刀、蚁剑的攻击流量特征明显,容易被各类安全设备检测,而冰蝎是一款基于Java开发的动态加密通信流量的Webshell工具,由于通信流量被加密,传统的 WAF、IDS 设备难以检测,冰蝎最大特点就是对交互流量进行对称加密(冰蝎密文采用对称加密算法AES加密,加密后还会进行 base64 编码),且加密秘钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。像下面这种格式的就是AES的密文,红色部分是请求报文,蓝色部分是响应报文。这是对同一个http协议的包追踪http流和tcp流的不同结果。原创 2023-10-28 11:51:58 · 1329 阅读 · 1 评论 -
NewStarCTF2023week4-依旧是空白(snow隐写)
结合给了密码,那么很可能就是snow隐写了,SNOW 隐写又被称为 HTML 隐写,通过在文本文件的末尾嵌入空格和制表位的方式嵌入隐藏信息,不同空格与制表位的组合代表不同的嵌入信息。infile 必须在 outfile 前,如果不填 infile 选项,则默认从标准输入中获得;另一个文件是空白的txt文档,大致看了一下像是不可见字符,尝试 white_space,发现不是;white_space是一种编程语言,由“空格”,“回车”,“tab”组成。打开附件的空白图片,CRC报错,很可能是高度被修改。原创 2023-10-26 17:29:52 · 3653 阅读 · 2 评论 -
NewStarCTF2023week4-R通大残(RGB通道隐写)
而 Alpha 表示透明度,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,当 Alpha 的值为 0 时就是全透明,而Alpha 的值为 255 则表示不透明。随着数字从0到255的逐渐增高,我们看到的图片红色的亮度也会越来越大,由于256是2的8次方,所以有 7~0 一共8个通道,G、B同理。后面重新仔细看了一下题目,联想到R通道,R是储存红色的通道,通道里有R(红)、G(绿)、B(蓝)三个通道,如果关闭R通道就没有红色的成分,G、B同理。R的数字越小,则代表红色亮度越低。原创 2023-10-26 00:05:32 · 709 阅读 · 0 评论 -
NewStarCTF2023week4-RSA Variation II
Schmidt-Samoa密码系统,像rabin加密一样,其安全性基于整数因式分解的难度。但 Rabin 解密时会得到四个解,而 Schmidt-Samor 得到的是唯一解。题目提示:"Schmidt Samoa"N = p*p*q,知道c、n、d。原创 2023-10-26 00:06:06 · 562 阅读 · 0 评论 -
NewStarCTF2023week4-More Fast(GC回收)
当一个类创建之后它会自己消失,而 __destruct() 魔术方法的触发条件就是一个类被销毁时触发,而throw那个函数就是回收了自动销毁的类,导致destruct检测不到有东西销毁,从而也就导致无法触发destruct函数。当然这里保险一点的做法是先执行 ls 命令,然后再使用 ../../../ 进行目录穿越 ,找到flag所在目录,再进行 cat,并且这里过滤了关键字 flag,因此我们使用通配符 * 进行匹配。打开链接,存在很多个类,很明显是php反序列化漏洞利用,需要构造pop链 ,原创 2023-10-24 18:44:46 · 1471 阅读 · 5 评论 -
NewStarCTF2023week4-逃(反序列化字符串逃逸)
在反序列化的时候php会根据s所指定的字符长度去读取后边的字符,由于在序列化操作后又使用了str_replace()函数进行字符串替换,这就可能会改变字符串的长度,比如上面将bad替换为good,每替换掉一个bad,字符串长度明显就增加了1,而由于序列化之后s的值没变,但是进行了内容替换,改变了字符串长度,那么反序列化读取时,就并不能将原本的内容读取完全。得到:O:7:"GetFlag":2:{s:3:"key";而后面没有被读到的内容,也就是逃逸出来的字符串,就会被当做当前类的属性被继续执行。原创 2023-10-24 00:44:37 · 1270 阅读 · 2 评论 -
2023年“绿盟杯”四川省大学生信息安全技术大赛
先check源码,没什么发现,接着进行目录扫描,扫到路径 /download。在read目录下给file传参进行请求,如果这个东西存在就会读取出来。这里是没有flag这个文件的,它藏在Linux当前进程的环境变量里。这个东西你知道就会想到去读取它,不知道这个东西存在那就难搞了。下载备份文件得到 www.zip,解压得到app.py。这里先尝试读一下/etc/passwd,读取成功。但是尝试读取其他东西很多都没有成功。读取成功即可找到flag。原创 2023-10-21 21:20:54 · 846 阅读 · 0 评论