CTF比赛WP
文章平均质量分 50
分享CTF知识
南暮思鸢
一名计算机学院学子
展开
-
[羊城杯 2023]GIFuck
在kali中新建flag文件夹和gif0文件夹,复制flag.gif粘贴到gif0文件夹中。,粘贴kali得出的一堆字符++++[->++++<]>[->++++++<]>-[-将得到的信息编写成gif.py脚本,这里太累了,实在是不想继续弄了,就这样完结吧。但是批量OCR工具识别的不准确,所以还是得换别的思路来实现(真的艹了)之后就可以看到在flag文件夹中生成了一堆png图片了。将gif0.py复制粘贴到flag文件夹。(这里省略大部分,避免影响观感)一个flag.gif文件。原创 2024-09-08 19:45:53 · 494 阅读 · 0 评论 -
[羊城杯 2022]Unlimited Zip Works
教程说所有txt文件的特征都是error,所以要提取extra值,下面用extra.py脚本,注意,这个脚本是针对newfile.zip的,不能删了newfile.zip这么快。看到攻略说多解压几层就可以看到有的压缩包有注释,但不知道为什么我这里看不到,所以实际上要提取注释中的内容,把注释中的内容提取后组成一个新的压缩包newfile.zip。用010editor分析了一下archer.jpg没发现什么附加文件,反而是用010editor打开flag.zip发现末尾可以看到有个隐藏的zip文件。原创 2024-09-08 15:49:39 · 259 阅读 · 0 评论 -
[羊城杯 2021]Easy_Rsa
先生成大素数 g,然后生成随机数a,b,计算p = 2 * g * a + 1和q = 2 * g * b + 1,接着检查 q 是否为素数,且 p 和 q 的乘积的因数 h 不是素数,同时 a 和 b 互质,这样生成的 p 和 q 用于构建RSA密钥对。生成的 p 和 q 来计算 n = p * q,并生成一个16位的大素数 e 作为公钥的指数。生成密钥对,并计算密文 c,参数 1024 表示密钥对的位数,0.48 是生成素数时的随机性调整参数。定义生成大素数的函数gen_prime。原创 2024-09-07 16:37:12 · 339 阅读 · 0 评论 -
[羊城杯 2020]easyre
第一次加密encode_one(&Str, v3, &v10, &v12) ,v10是引用的形式传参,v4 = strlen(&v10), (unsigned int)encode_two(&v10, v4, &v9, &v12) == 0,第二次在传str的地方传入了v10,第三次则是v9,可以猜测应该是对输入的str三重加密,最后对比str1,str2,相等,并且前面的条件都正确,就是正确的flag。可以看出flag的长度为38位,而且经过了三次加密。发现有个+3,应该是右移3,猜测是凯撒加密。原创 2024-09-07 16:36:03 · 446 阅读 · 0 评论 -
[羊城杯 2020]Blackcat
POST传入的Black-Cat-Sheriff与加密后的One-ear相同,绕过第三个判断,然后执行echo exec("nc".$_POST['One-ear']);POST传入White-cat-monitor,绕过第二个判断,且传入的是数组使$clandestine为NULL,即将下一个加密的密钥置空。可以看到有个flag.php,根据之前的经验,用cat flag.php(没有什么过滤的情况下)(注意:||表示前面的表达式结果为真,则程序不会再执行后面的表达式,直接得出TRUE的结果)原创 2024-09-07 16:34:25 · 438 阅读 · 0 评论 -
[羊城杯 2020]easyphp
将我们传入的内容content写入filename里面,但这里拼接了一个Hello world,会造成程序报错,所以得加个\。htaccess中\的作用是拼接上下文的,相当于php_value auto_prepend_file.htaccess。这里不知道为什么得到的字符串会导致网站连接失败,但教程的字符串却不会,这两条字符串的解析结果明明都是一样的。对传入参数filename进行过滤,filename只能由小写字母和.构成,否则die。跟最开始的过滤一样,如果不是index.php则会删除数据。原创 2024-09-07 16:33:38 · 301 阅读 · 0 评论 -
[羊城杯 2020]easyser
解决方法是利用php://filter,在写入文件时使用string.strip.tags过滤器,string.strip.tags过滤器的作用是去掉HTML和PHP标签,同时借助convert.base64-decode过滤器,写入一个base64编码后的shell代码(指shell.php)(注意:这里的path=http://127.0.0.1/star1.php对应path=http%3A%2F%2F127.0.0.1%2Fstar1.php。://对应%3A%2F%2F /对应%2F。原创 2024-09-07 16:32:41 · 482 阅读 · 0 评论 -
[GXYCTF 2019]Ping Ping Ping
或者127.0.0.1;cat$IFS$1flag.php($1改成$加其他数字都行,都能当作空格来用)(这里不知道为什么在输入框中输入127.0.0.1;cat%20index.php不成功)ip=whoami,猜测是个exec "ping"类型的。换成127.0.0.1;可以看到flag.php和index.php两个文件。输入127.0.0.1;看到a变量,可以尝试将a变量覆盖,然后进行绕过。输入127.0.0.1;回显提示不能有flag字符串。原创 2024-09-03 15:35:36 · 571 阅读 · 0 评论 -
[羊城杯 2020]easycon
弹出弹窗,显示eval post cmd,意思很明显是post传cmd参数,并且用到了eval()函数,所以源码里应该有<?关注到开头是/9j/,根据经验就是base64编码转图片,并且头部缺失data:image/jpg;用dirsearch扫一下,时间有点长,一般直接加上/index.php或者/index.html。(上面两张图片应该就是gw.jpg和gw2.jpg,要是不放心可以全部下下来)发现里面几个文件,但很明显就是bbbbbbbbb.txt。打开之后发现很多字符串,有点像base64编码。原创 2024-09-03 15:39:53 · 221 阅读 · 0 评论 -
[MoeCTF 2022]baby_file
开启NSSCTF靶场,打开链接:这段php代码比较简单和眼熟,还是老套路了,直接构造payload:?得到flag:原创 2024-09-06 19:48:30 · 176 阅读 · 0 评论 -
[web入门]afr_1
p=,了解到是GET型的p参数。(一般是flag或者flag.php)原创 2024-09-07 10:07:14 · 314 阅读 · 0 评论 -
[LitCTF 2023]Vim yyds
定义了password变量为Give_Me_Your_Flag,定义了POST传参password=base64编码的password变量(Give_Me_Your_Flag),之后执行POST传参cmd=xxxx系统命令。在浏览器地址栏访问/.index.php.swp就会自动下载_index.php.swp。这里只截取了php代码部分,其他不重要的代码就没必要看了。发现敏感文件.index.php.swp。原创 2024-09-07 11:19:31 · 432 阅读 · 0 评论 -
[HNCTF 2022 Week1]Interesting_include
2、使用正则表达式/flag/i检查$file中是否包含字符串flag。如果$file中不包含flag,则调用die("error")终止脚本并输出error。如果$file中包含flag,则使用include函数包含并执行$file指定的文件。1、先判断是否存在名为filter的GET参数,如果存在,则继续执行后续代码,并将filter参数的值赋给变量$file。3、如果filter参数不存在,则调用highlight_file(__FILE__)函数,高亮显示当前文件的源代码。原创 2024-09-06 19:33:01 · 325 阅读 · 0 评论 -
[HNCTF 2022 WEEK2]easy_include
nginx服务器日志存放位置:/var/log/nginx/access.log和/var/log/nginx/error.log。显示的内容是浏览器和部分系统的信息,这些都是User-Agent头的内容,猜测可以修改User-Agent头的内容来执行命令。apache服务器日志存放文件位置:/var/log/apache/access.log。显示出一堆文件,其中ffflllaaaggg是我们需要的。可以看到过滤了很多常见的利用协议,GET传参是file。原创 2024-09-07 10:59:46 · 515 阅读 · 0 评论 -
[SWPUCTF 2021 新生赛]jicao
看到一段源码,大概意思就是POST传参id=xxx,GET传参?json={"a","b"}就可以输出flag。{ "name":"菜鸟教程" , "url":"www.runoob.com" }这里了解一下json知识。原创 2024-09-07 11:04:41 · 306 阅读 · 0 评论 -
[SWPUCTF 2022 新生赛]ez_ez_php
这行代码检查通过GET请求传递的参数file的前三个字符是否等于"php",是的话就执行。(注意:这里我反应过来直接是flag就可以了,不用flag.php)原创 2024-09-06 19:20:18 · 367 阅读 · 0 评论 -
[SWPUCTF 2021 新生赛]easyupload1.0
显示上传成功,并且1.php的文件路径是....../upload/1.php。用hackbar查看phpinfo();成功之后再去抓到的真正的包的.jpg修改为.php。但却显示flag错误,看来是障眼法。发现要上传.jpg文件。原创 2024-09-07 11:05:38 · 292 阅读 · 0 评论 -
[SWPUCTF 2021 新生赛]easyupload2.0
发现修改.php后缀上传失败了,猜测是有对后缀进行过滤。原创 2024-09-07 11:06:32 · 467 阅读 · 0 评论 -
[SWPUCTF 2021 新生赛]easyupload3.0
(.htaccess文件可以被服务器软件检测执行的玩意,只要你往里面塞配置(规则),就可以让服务器软件为所欲为(bushi,利用这个可以绕过php文件上传限制)但是蚁剑连接就是失败,在浏览器中访问/upload/shell.php或/shell.php都显示404 not found,只能用其他方法了。(注意:这个1.jpg文件就是前两关用的php一句话木马文件)可以看到上传.htaccess文件成功。再上传1.jpg文件。原创 2024-09-07 11:07:26 · 329 阅读 · 0 评论 -
[SWPUCTF 2021 新生赛]finalrce
如果提供了 output 参数, 那么会用命令执行的输出填充此数组, 每行输出填充数组中的一个元素。如果同时提供 output 和 result_code 参数,命令执行后的返回状态会被写入到result_code。可以看到flag文件名了,得知flag的文件路径是/flllllaaaaaaggggggg。tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。tee命令用于读取标准输入的数据,并将其内容输出成文件。将根目录/的内容输出到1.txt中。这里需要用到一个tee命令。原创 2024-09-07 11:10:16 · 399 阅读 · 0 评论 -
[SWPUCTF 2021 新生赛]hardrce
得知flag的文件路径是/flllllaaaaaaggggggg。比如执行system('ls /');原创 2024-09-07 11:14:26 · 237 阅读 · 0 评论 -
[NSSCTF 2022 Spring Recruit]babyphp
这段代码的大致意思是$_POST['c1']的值不等于$_POST['c2'],且$_POST['c1']和$_POST['c2']的值都是字符串且$_POST['c1']和$_POST['c2']的md5的值都要弱相等才能输出flag。这段代码大致意思是满足POST传参为b1和b2且$_POST['b1']的值不等于$_POST['b2']且md5($_POST['b1'])的值等于md5($_POST['b2'])才能继续执行,否则输出nop。出现go on说明绕过了第一层判断。原创 2024-09-07 11:16:12 · 424 阅读 · 0 评论