type
Page
status
Invisible
date
Nov 6, 2025
slug
summary
WEB新手入门题单01
tags
WEB
category
icon
password

我Flag呢?

思路

F12查看元素即可获得flag

EXP

就当无事发生

思路

题目所给的是一个Github的.io地址
GitHub.io是GitPage的一种,是一个用于展示项目和项目网站的托管工具。GitHub是一个代码托管云服务网站,主要用于存储和管理项目源代码。GitHub.io提供了一个功能,可以创建个人网站。GitHub.io通过基于Jekyll工具的Github pages来自动构建网站,同时本身又是GitHub的repo,为使用者提供完全的内容控制。GitHub是一个让大家把用Git这种版本管理工具管理的内容集中在一起的社区。
该page依赖于Github仓库,而对于公开的仓库,每一次的提交都会有记录,因为页面部署需要一定时间,但是提交操作已经生效,所以代码的修改会被Git Commit记录 可以猜测,flag在页面第一次创建的时候被提交过,但是出于保密原因迅速就被删掉并且很快进行了第二次提交,所以页面就被覆盖了。我们无法从页面获得,但是,可以在提交记录中找到

EXP

博客网址: 因此访问仓库网址:
访问后进入commit,找到2023-4-29的commit,打开后搜索flag,拿到flag
image.png

导弹迷踪

思路

一种是直接玩来通关,另一种是查看代码。 js小游戏,直接F12查看源代码,在
文件中找到下图判断逻辑,得到flag。可以通过搜索
关键字来查看代码
image.png

EXP

Follow me and hack me

思路

根据前端页面的提示,传入一个get参数和post参数即可

EXP

执行后拿到flag
image.png

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

思路

看到右边的代码执行框,尝试输入的php代码,由于题目提示flag位于根目录,因此访问地址为/flag

EXP

点击run code拿到flag
image.png

Vim yyds

思路

vim备份文件后缀第一次意外退出产生的备份文件名为:.filename.swp第二次意外退出产生的备份文件名为:.filename.swo第三次意外退出产生的备份文件名为:.filename.swn当vim在编辑文档的过程中如果异常退出,则会产生缓存文件。第一次产生的缓存文件后缀为.swp,第二次则产生的缓存文件后缀为.swo,第三次产生的缓存文件后缀为.swn。
使用dirsearch扫描可以发现存在swp文件
image.png
访问如图所示链接,下载对应文件
image.png
在wsl中使用vim打开,是一个有乱码的文件,先使用下面命令修复
image.png
image.png
整理得到关键逻辑
通过判断逻辑后,会执行一句话木马

EXP

image.png

中级

作业管理系统

思路

审计代码,发现账号和密码写在注释中
image.png

解法一 文件上传

登录后发现文件上传界面 写一个一句话木马上传,文件名为hack.php
由于前端页面不显示,上传文件后看不到,但是从上传功能区的 " ./ " 可以得知就是在当前目录,然后使用蚁剑进行连接
image.png
创建连接后进入根目录下找到flag文件,打开获得flag

解法二 远程下载

image.png
点击下载,然后访问url/flag即可拿到flag
image.png

解法三 创建文件

直接在系统中创建文件并写入一句话木马
image.png
image.png

解法四 直接编辑读取

上传文件的时候 使用了编辑功能,不妨观察它的Url:
http://node4.anna.nssctf.cn:28090/index.php?op=edit&fename=uploadFileName&folder=./
由于页面所有的操作只有登录这一个鉴权,所有操作都没用敏感目录的过滤(完全没有过滤),所以这个地方我们直接修改路径为根目录,文件名字为flag
访问后拿到flag
image.png

EXP

这是什么?SQL !注一下 !

思路

解法一 手工注入- 逐个注入

题目给了源代码
并给出了执行操作
所以是一个很白的白盒题目,很明显是一个魔改(戴套)后的数字型注入。
所以我们先闭合括号 然后用注释符号注释掉后面的括号,我们就能在中间执行对应的SQL语句,最后构造的语句形式如下:
然后题目给出了列名username和password,所以我们也不需要用Order by去爆破列名了,方便起见可以借助HackBar的自带预处理语句进行注入:
image.png
image.png
注入语句:
注入后结果如下
image.png
可以看到数据库名用逗号分隔
然后对每个库爆出表名,这里其他库的操作就不做演示,flag位于 ctftraining 中 所以我们使用下面语句:
image.png
进一步爆出字段名
image.png
至此拿到数据库几乎所有的信息,得知flag在 ctftraining 库中的 ctf 表里面,所以使用联合查询直接拿flag:
image.png

解法二 手工注入 - DIOS(Dump In One Shot)

然后插件会自动填充:
你需要使用联合查询将这一个子查询和前面的语句关联起来:
完整Payload:
查询结果很长,ctrl+F搜索flag查询到相关信息
image.png
剩余步骤同法1
Loading...