![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CTF
文章平均质量分 69
Myon⁶
路漫漫其修远兮,吾将上下而求索.
展开
-
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 · 779 阅读 · 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 · 1156 阅读 · 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 · 701 阅读 · 1 评论 -
ctfshow-web入门-信息搜集(web11-web20)
X探针:又名刘海探针、X-Prober,是一款由 INN STUDIO 原创主导开发的开源 PHP 探针,拥有美观简洁的界面、极高的运行效率和极低的资源占用,能高精度显示服务器的相应信息。php 探针:用来探测空间、服务器运行状况和 PHP 信息,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。雅黑 php 探针:每秒更新,不用刷网页,适用于Linux系统,可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。原创 2024-06-02 11:58:34 · 1311 阅读 · 0 评论 -
ctfshow-web入门-信息搜集(web1-web10)
勇师傅还是想打 CTF。原创 2024-05-31 17:13:36 · 687 阅读 · 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 · 2234 阅读 · 2 评论 -
第三届 SWCTF-Misc 所有 WP
将一个字符串按照空格分割成一个列表,并使用该列表中的元素来映射一个包含字母的二维列表(就是键盘对应的字母),最终输出对应的字母组成的字符串。拼接起来,最终flag为:flag{1S_it_JUst_me_0R_is_iT_Getting_crAzier_0Utthere}得到 flag{1_Just_h0pe_mY_deaTh_mAkes_moRe_cEnts_thanmylife}拿到 flag:flag{Y0u_mUsT_B_A_w0rm_in_Y0nGs_st0mach}原创 2024-04-21 23:39:22 · 762 阅读 · 2 评论 -
第三届 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 · 1255 阅读 · 0 评论 -
CTFshow-PWN-Test_your_nc(pwn0-pwn4)
连上,等它程序执行完你可以直接来到 shell 界面执行命令,获取 flag。原创 2024-04-15 18:47:29 · 1163 阅读 · 0 评论 -
2024腾龙杯web签到题-初识jwt(签到:这是一个登录页面)
它是 JSON Web Token 的缩写,是一个开放标准,定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息,该信息可以被验证和信任,因为它是数字签名的。它就是一种认证机制,让后台知道该请求是来自于受信的客户端。jwt 由三部分组成,它们之间用圆点(.)连接,这三部分分别是:Header、Payload、Signature。回到最初请求的 login , post 传入 json 格式的 tooken。回显得到一个 token ,也是 json 的格式。原创 2024-03-18 19:26:17 · 753 阅读 · 0 评论 -
CTF - Web 干货
有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。可以访问请求的原始数据的只读流,将post请求的数据当作 php 代码执行,当传入的参数作为文件名打开时,可以将参数设为php://input,同时 post 写入想要执行的 php 代码,php 执行时会将 post 内容当作文件内容,从而导致任意代码执行。__wakeup() //执行unserialize()时触发 。原创 2024-01-17 21:13:32 · 1348 阅读 · 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 · 1134 阅读 · 0 评论 -
基于CTF探讨Web漏洞的利用与防范
随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这也使得越来越多的用户关注应用层的安全问题,对Web应用安全的关注度也逐渐升温。原创 2023-12-20 11:29:33 · 1522 阅读 · 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 · 828 阅读 · 4 评论 -
CTF靶场搭建及Web赛题制作与终端docker环境部署
这种情况意思是docker需要我们指定下载镜像的版本号。哈喽大家好!我是Myon,趁着我的云服务器还没过期,这次给大家出一期很详细的CTF比赛的靶场搭建以及关于Web赛题的制作与docker环境的部署教程,由于本人能力有限,也只能给大家讲一些基础简单的东西,欢迎大家在评论区互相交流学习,希望通过这篇博客大家能学到一些新东西,也期待大家的关注和支持!原创 2023-11-22 19:26:29 · 6488 阅读 · 4 评论 -
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 · 262 阅读 · 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 · 3231 阅读 · 9 评论 -
CTF之PHP特性与绕过
A.A被传到URL中是A.A,但是到了php里面则会被转换为A_A,即保证了参数的传递,也避免了被strpos函数查找到;并且,在PHP8之前,如果参数中出现中括号[,那么中括号会被转换成下划线_,但是会出现转换错误,导致如果参数名后面还存在非法字符,则不会继续转换成下划线。在给参数传值时,如果参数名中存在非法字符,比空格和点,则参数名中的点和空格等非法字符都会被替换成下划线。isset()函数用于检查变量是否设置,如果设置了,则 id=$_GET['id'],否则 id=1。原创 2023-11-01 14:54:31 · 1400 阅读 · 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 · 769 阅读 · 0 评论 -
NewStarCTF2023week5-隐秘的图片
但是这里这道题仔细看一下,修复好了也不像正常的二维码,并且这里给了两张图。第一张二维码扫出来提示没有什么。下载附件解压得到两张图片。取异或,出了另一张二维码。扫一下,拿到flag。原创 2023-10-30 00:00:42 · 876 阅读 · 6 评论 -
NewStarCTF2023week4-midsql(利用二分查找实现时间盲注攻击)
代码通过不断猜测每个字符的 ASCII 值来构建数据库名,一旦一个字符的 ASCII 值被确定,就继续下一个字符。但是这里尝试了很多都只返回一个页面,没有出现报错页面,因此采用时间盲注,利用sleep函数,制造时间延迟,由回显时间来判断是否报错。注意:这里查询的内容还是需要加上 group_concat(),因为之前我做的一些联合查询有时候不需要加,但是在这里我试了,不行。(我最开始以为是and被过滤,并没有,如果是and或者or被过滤我们也可以使用 && 和 || 替代)原创 2023-10-29 00:36:49 · 1220 阅读 · 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 · 443 阅读 · 0 评论 -
NewStarCTF2023week4-溯源
中国菜刀、蚁剑的攻击流量特征明显,容易被各类安全设备检测,而冰蝎是一款基于Java开发的动态加密通信流量的Webshell工具,由于通信流量被加密,传统的 WAF、IDS 设备难以检测,冰蝎最大特点就是对交互流量进行对称加密(冰蝎密文采用对称加密算法AES加密,加密后还会进行 base64 编码),且加密秘钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。像下面这种格式的就是AES的密文,红色部分是请求报文,蓝色部分是响应报文。这是对同一个http协议的包追踪http流和tcp流的不同结果。原创 2023-10-28 11:51:58 · 804 阅读 · 1 评论 -
NewStarCTF2023week4-依旧是空白(snow隐写)
结合给了密码,那么很可能就是snow隐写了,SNOW 隐写又被称为 HTML 隐写,通过在文本文件的末尾嵌入空格和制表位的方式嵌入隐藏信息,不同空格与制表位的组合代表不同的嵌入信息。infile 必须在 outfile 前,如果不填 infile 选项,则默认从标准输入中获得;另一个文件是空白的txt文档,大致看了一下像是不可见字符,尝试 white_space,发现不是;white_space是一种编程语言,由“空格”,“回车”,“tab”组成。打开附件的空白图片,CRC报错,很可能是高度被修改。原创 2023-10-26 17:29:52 · 1815 阅读 · 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 · 544 阅读 · 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 · 341 阅读 · 0 评论 -
NewStarCTF2023week4-More Fast(GC回收)
当一个类创建之后它会自己消失,而 __destruct() 魔术方法的触发条件就是一个类被销毁时触发,而throw那个函数就是回收了自动销毁的类,导致destruct检测不到有东西销毁,从而也就导致无法触发destruct函数。当然这里保险一点的做法是先执行 ls 命令,然后再使用 ../../../ 进行目录穿越 ,找到flag所在目录,再进行 cat,并且这里过滤了关键字 flag,因此我们使用通配符 * 进行匹配。打开链接,存在很多个类,很明显是php反序列化漏洞利用,需要构造pop链 ,原创 2023-10-24 18:44:46 · 1246 阅读 · 5 评论 -
NewStarCTF2023week4-逃(反序列化字符串逃逸)
在反序列化的时候php会根据s所指定的字符长度去读取后边的字符,由于在序列化操作后又使用了str_replace()函数进行字符串替换,这就可能会改变字符串的长度,比如上面将bad替换为good,每替换掉一个bad,字符串长度明显就增加了1,而由于序列化之后s的值没变,但是进行了内容替换,改变了字符串长度,那么反序列化读取时,就并不能将原本的内容读取完全。得到:O:7:"GetFlag":2:{s:3:"key";而后面没有被读到的内容,也就是逃逸出来的字符串,就会被当做当前类的属性被继续执行。原创 2023-10-24 00:44:37 · 904 阅读 · 2 评论 -
2023年“绿盟杯”四川省大学生信息安全技术大赛
先check源码,没什么发现,接着进行目录扫描,扫到路径 /download。在read目录下给file传参进行请求,如果这个东西存在就会读取出来。这里是没有flag这个文件的,它藏在Linux当前进程的环境变量里。这个东西你知道就会想到去读取它,不知道这个东西存在那就难搞了。下载备份文件得到 www.zip,解压得到app.py。这里先尝试读一下/etc/passwd,读取成功。但是尝试读取其他东西很多都没有成功。读取成功即可找到flag。原创 2023-10-21 21:20:54 · 713 阅读 · 0 评论 -
2023年“绿盟杯”四川省大学生信息安全技术大赛
使用010editor打开发现CRC报错,很可能是高度被修改了。之后再使用工具进行修复,即可正常显示,打开就能找到flag。这里工具自动修复的依旧不能正常打开显示。使用工具爆破图片正确的宽度和高度。我们先对原来图片的高度进行修改。下载附件打开无法正常显示。原创 2023-10-21 21:04:13 · 740 阅读 · 4 评论 -
NewStarCTF2023week3-阳光开朗大男孩
注意这里密码是 s000_h4rd_p4sssw0rdddd 不要输错了。后面把flag.txt的内容一搜,才知道是emoji aes加密。flag.txt最开始没看出来是什么,主要是之前没遇到过。secret.txt一看很明显是核心价值观编码。题目提示:我是阳光开朗大男孩~阳光开朗大男孩~配合前面得到的密码,直接解码即可。下载附件解压得到两个txt文本。我还以为要转成图片什么的...原创 2023-10-18 14:39:19 · 726 阅读 · 0 评论 -
NewStarCTF2023week3-Rabin‘s RSA
使用Rabin算法直接计算明文,再将明文转字符串即可。运行得到 flag{r4b1n#4c58}根据题目提示是Rabin算法。我们也可以通过脚本来理解原理。导入e,n,p,q,c。先将N分解得到P和Q。原创 2023-10-18 12:57:21 · 804 阅读 · 0 评论 -
NewStarCTF2023week2-base!(base低位隐写)
常见的Base64隐写一般会给一个txt文本文档,内含多个经过base64编码的字符串。解码规则是将所有被修改过的base64字符串结尾的二进制值提取出来组成一个二进制串,以8位分割并转为十进制值,最终十进制对应的ASCII字符串即为base64隐写结果。附件内容是很多的base64编码的字符串。将结果放入随波逐流,发现是base58。原创 2023-10-16 12:02:05 · 409 阅读 · 0 评论 -
NewStarCTF2023week2-R!!C!!E!!(非常详细完整解题全过程)
preg_replace 函数:执行一个正则表达式的搜索和替换,\w表示非单词字符,单词字符包括:a-z、A-Z、0-9,以及下划线,加上取非^就成了匹配所有的单词字符,+表示可以进行多个匹配,还匹配了左括号和右括号 ,((?先用 getallheaders() 获取全部请求头信息,再用 array_flip() 反转键值,即将 ls / 放到键名的位置,因为 array_rand 是随机取一个键名,反转之后获取到的就是命令,如果没有进行反转,获取到的就是myon。4、源码泄露,常见的有:HG泄露;原创 2023-10-15 17:27:45 · 1019 阅读 · 6 评论 -
NewStarCTF2023week2-游戏高手
再创建了一个对象 data,其中包含了游戏分数,然后使用 JSON.stringify(data) 将该对象转换为 JSON 格式的字符串,使用 xhr.send() 发送这个 JSON 字符串给服务器;最后的代码用于重置游戏状态,将游戏分数重置为 0,将curPhase设置为PHASE_READY,并重新创建hero对象。因此,这里只需要对gameScore进行一个伪造即可,但是要注意json字符串格式 {"key":value},js代码审计,定位到输出flag的地方。直接在hackbar好像不行。原创 2023-10-14 13:35:30 · 398 阅读 · 1 评论 -
NewStarCTF2023week2-Unserialize?
创建了一个 evil 对象并设置了 cmd 属性,然后对对象进行了序列化。但要注意,在 PHP 中,如果一个类包含私有属性,并且你尝试序列化该对象,私有属性的值将不会被包括在序列化结果中。因此,在反序列化时,你无法访问 cmd 属性的值,因为它不会被正确反序列化。定义了一个eval类,该类下有一个私有变量cmd和公有成员函数destruct(),该函数在对象的所有引用都被删除或类被销毁时会自动调用;如果满足if条件,没有被匹配到,则会调用system函数,执行我们传入的cmd内容;在根目录下找到flag。原创 2023-10-15 00:08:04 · 6501 阅读 · 0 评论 -
NewStarCTF2023week2-include 0。0
构造payload:?构造payload:?因为flag在flag.php,并且这里过滤掉了base和rot,没关系我们使用其他编码方式输入输出即可。回到这道题,我先尝试的是使用php://input(用于执行PHP代码)1、flag在flag.php。原创 2023-10-14 10:48:55 · 803 阅读 · 1 评论 -
NewStarCTF2023week2-Upload again!
尝试传配置文件 .htaccess 和 .user.ini。尝试传修改后缀的普通一句话木马,被检测。接下来继续传入经过修改的木马。在根目录下找到flag。没有被检测,成功绕过。原创 2023-10-14 00:03:02 · 580 阅读 · 3 评论 -
NewStarCTF2023week2-ez_sql
闭合之后尝试判断字段数,存在WAF,使用大小写绕过(后面的sql语句也需要进行大小写绕过)尝试在表here_is_flag下查找flag。或者使用sqlmap直接跑出所有库和表内容。查一下数据库名、版本、用户等信息。查出数据库ctf下的表。原创 2023-10-13 23:25:21 · 1040 阅读 · 0 评论 -
NewStarCTF2023公开赛道-压缩包们
压缩包开头和结尾都是以PK开始的,这里修复后它去掉了里面对密码提示的那串base64编码,其他地方也进行了一定的修改,我尝试手动去修改其中的某几个地方,但是都没成功,我也不确定出题人是改的哪里,我对这个zip结尾也不太熟悉,每种类型的文件压缩之后结尾内容肯定是不一样的,正常操作下,我们是可以在结尾插入字符串的,即将一些提示放在结尾。因为期间看到flag.zip的frflags不为0,这是有可能会造成zip伪加密的。发现也不行,然后我对这个改了的压缩包进行修复,之后打开还是不行。修复压缩包flag.zip。原创 2023-10-13 18:29:04 · 889 阅读 · 0 评论