01
<!--# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-09-01 13:45:32# @Last Modified by: h1xa# @Last Modified time: 2020-09-02 03:12:48# @email: h1xa@ctfer.com# @link: https://ctfer.com-->这是注释,由 <!-- -->包裹

这是浏览器插件注入的脚本
<head><meta charset="utf-8"><title>CTFshow 新手入门题目 </title><script type="text/javascript"></script></head><body> <h3>web1:where is flag?</h3> <!-- ctfshow{e868627c-3ef5-4359-9729-5dc2cb68bae5} -->head 是网页的头部信息,是给浏览器看的,比如字符编码,网页标题,CSS 样式,JavaScript 脚本等
比如 <meta charset="utf-8">是告诉浏览器以中文编码展示,不然一些中文可能会乱码
<title>CTFshow 新手入门题目 </title> 这是标题,一般显示在标签页上,而不是在正文里面。
<script type="text/javascript"></script>这是 JavaScript 代码,里面是 JavaScript 写的
body 是网页主体区域,网页大部分内容都在这里展示。
<h3> 是三级标签标题
<h1>最大标题</h1><h2>二级标题</h2><h3>三级标题</h3><h4>四级标题</h4><h5>五级标题</h5><h6>最小标题</h6>02
这次打开靶机,无法使用右键,和f12,尝试使用 bp 发送
GET / HTTP/1.1Host: f849a82b-6ba2-45df-918d-54aa6173fc73.challenge.ctf.showAccept-Language: zh-CN,zh;q=0.9Upgrade-Insecure-Requests: 1User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7Accept-Encoding: gzip, deflate, brConnection: keep-alive请求方式是 GET ,路径是根目录 /,host 是发送请求的目标地址,accept language 是优先接受简体中文,user-agent 是让自己看起来像浏览器,accept 是告诉网站可以接收源码,图片等,可以接收压缩过的内容,connetion 是持续连接中。
返回
<!--# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-09-01 13:45:32# @Last Modified by: h1xa# @Last Modified time: 2020-09-02 03:20:04# @email: h1xa@ctfer.com# @link: https://ctfer.com--><!DOCTYPE HTML><html><head><meta charset="utf-8"><title>CTFshow 新手入门题目 </title><script type="text/javascript"> window.oncontextmenu = function(){return false}; window.onselectstart = function(){return false}; window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};</script></head><body> <h3>无法查看源代码</h3> <!-- ctfshow{a508b81e-884f-46bb-b57e-ed6d4291f266} --></body></html>可以看见 flag 在注释中,然后 js 禁用了window.oncontextmenu = function(){return false};右键菜单,window.onselectstart = function(){return false};禁止选择文字,还有 123 也就是 f12
为什么 bp 可以绕过,正常访问
浏览器发送 http 请求 -> 服务器返回信息 -> 浏览器解析 html -> 解析 js -> 执行 jsbp 则是
发送请求 -> 接受返回信息当然这道题我们也可以直接 ctrl + shift + I console 输入 check = () => true
check = func () { return true;}03

只能看见 body 内容,bp 抓包
HTTP/1.1 200 OKServer: nginx/1.20.1Date: Tue, 26 May 2026 14:43:52 GMTContent-Type: text/html; charset=UTF-8Connection: keep-aliveFlag: ctfshow{1d929059-54ee-42eb-b824-b9e228fe5a2a}X-Powered-By: PHP/7.3.11Access-Control-Allow-Methods: GET,POST,PUT,DELETE,OPTIONSAccess-Control-Allow-Credentials: trueAccess-Control-Expose-Headers: Content-Type,Cookies,Aaa,Date,Server,Content-Length,ConnectionAccess-Control-Allow-Headers: DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,x-auth-token,Cookies,Aaa,Date,Server,Content-Length,Connection,OriginAccess-Control-Max-Age: 1728000Content-Length: 19web3:where is flag?可以看见,浏览器是可以自定义响应头的
header("Flag: ctfshow{test}");echo "web3:where is flag?";res.setHeader("Flag", "ctfshow{test}");res.end("web3:where is flag?");@app.route("/")def index(): response = make_response("web3:where is flag?") response.headers["Flag"] = "ctfshow{test}" return response对应的 http 就是
HTTP/1.1 200 OKContent-Type: text/htmlFlag: ctfshow{test}web3:where is flag?常见藏 flag 包括
HTML 注释JavaScript 文件CSS 文件HTTP 响应头Cookie重定向 Locationrobots.txt备份文件源码泄露文件04
题目描述
总有人把后台地址写入robots,帮黑阔大佬们引路
robots.txt 是一个位于 https://example.com/robots.txt 的文件,告诉爬虫哪些应该爬,哪些不该爬
例如:
User-agent: *Disallow: /admin/Disallow: /backup/Allow: /对所有爬虫:不要抓取 /admin/不要抓取 /backup/其他地方可以抓取

05
题目描述
phps源码泄露有时候能帮上忙
一般我们访问网站根目录时,浏览器不会返回 / ,而是返回 /var/www/html/index.php,寻找可能的默认首页配置文件,有可能是
index index.html index.htm index.php;假设某网站
网站根目录/├── index.php├── about.php├── login.php└── robots.txt当我们访问
GET / HTTP/1.1Host: example.com于是自动找
/index.php并返回给我们

<?php/*# -*- coding: utf-8 -*-# @Author: h1xa# @Date: 2020-09-01 14:14:17# @Last Modified by: h1xa# @Last Modified time: 2020-09-01 14:34:53# @email: h1xa@ctfer.com# @link: https://ctfer.com*///ctfshow{db003eef-965f-4879-af9c-eb0b7c852e2d}echo "web5:where is flag ?"phps 是服务器的配置文件代码,我们浏览器只能拿到代码返回的结果,看不见源码,而有些时候由于浏览器可能会解析成 text/html,所以我们最好还是 按 ctrl + u可以看见源代码
06
题目描述
解压源码到当前目录,测试正常,收工
根据提示,我们可以知道源码压缩包可能就在网站的某一处路径中,我们拿到源码压缩包,就大致知道了网站的目录结构,或者一些关键的配置文件
扫描结果如下


flag{flag_here}访问
http://ba99f381-4731-4f39-8ed2-28969384fbfe.challenge.ctf.show/fl000g.txtctfshow{29217994-ad18-4151-99d4-d8338c3e7993}07
题目描述
版本控制很重要,但不要部署到生产环境更重要。
根据提示,可能是 .git 泄露
扫描

http://8234be8e-2790-401d-9c9d-f5265343f299.challenge.ctf.show/.git/
ctfshow{c07b81fe-662e-4095-a487-179798bb0512}
注意的是,在 bp 中要请求 /.git/ 而不是 /.git
08
题目描述
版本控制很重要,但不要部署到生产环境更重要。

访问后拿到 flag
ctfshow{219a8159-35c6-4522-bf2f-747f40a36b8a}
什么是 .svn ?
.svn 是Subversion / SVN 版本控制工具在项目目录里生成的隐藏目录,类似 Git 项目里的 .git
.svn 用来保存版本控制相关信息,比如
文件版本信息仓库地址提交记录相关数据本地工作副本状态部分源码缓存常见探测路径
/.svn//.svn/entries/.svn/wc.db/.svn/all-wcprops老版本常看
/.svn/entries新版本
/.svn/wc.db除了 .svn .git 还有 .hg
09
题目描述
发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了
Vim 编辑过程中如果异常退出、断电、终端断开、死机,可能会留下交换文件。 交换文件常见格式
.filename.swp.filename.swo.filename.swn如果编辑 index.php 可能留下
.index.php.swp.index.php.swo.index.php.swn
ctfshow{da16c78f-8cac-4367-8296-5bd2bafc80cc}010
题目描述
cookie 只是一块饼干,不能存放任何隐私数据
什么是 cookie
cookie 是浏览器为某个网站保存的文本数据,用于多次 http 请求之间维持状态
服务器设置 cookie
Set-Cookie: sessionid=abc123; Path=/; HttpOnly下次浏览器访问同样网站,会带上 cookie
Cookie: sessionid=abc123cookie 的基本结构
name=valueCookie: username=guest; theme=dark; sessionid=abc123多个 cookie 用 ; 分割
常见 cookie 属性
Set-Cookie: id=abc; Domain=example.com; Path=/; Expires=Wed, 27 May 2026 12:00:00 GMT; Secure; HttpOnly; SameSite=Laxdomain是访问哪些网站携带, path 是哪些路径携带 , expires 是过期时间,如果没有设置一般是会话 cookie ,关闭页面就消失,secure 是https ,HttpOnly 表示 JavaScript 不能通过 document.cookie 读取它,可以降低 XSS 窃取 Cookie 的风险。samesite 控制跨站请求是否携带 cookie ,常见设置
StrictLaxNoneStrict 最严格,跨站基本不带。 Lax 是较常用默认值,部分顶级导航请求会带。 None 表示跨站也带,但必须配合 Secure。
本题
请求可以看见 cookie

011
题目描述
域名其实也可以隐藏信息,比如flag.ctfshow.com 就隐藏了一条信息
什么是 DNS ?
DNS 是 Domain Name System,域名系统,作用是把人记住的域名转换成机器看的地址,例如:
www.baidu.com110.242.xxx.xxx实际上访问域名的流程
输入 example.com浏览器查本地缓存如果没有,问本地 DNS 服务器本地 DNS 再去问根 DNS根 DNS 指向 .com DNS.com DNS 指向 example.com 的权威 DNS权威 DNS 返回最终记录电脑拿到结果A 记录,解析域名到 IPV4 地址
AAAA 解析到 IPV6
CNAME 记录 指向另一个域名
MX 记录 表示域名由 mail.example.com 处理
本题
我们通过 https://zijian.aliyun.com/查询,或powershell
nslookup -type=TXT flag.ctfshow.com012
题目描述
有时候网站上的公开信息,就是管理员常用密码
进去是个网站,没有登陆界面,访问 robots.txt

发现有 admin 访问 admin , 出现提交登陆表单,用户名尝试 admin ,密码尝试了这个数字

对了,拿到 flag

013
题目描述
技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码
扫路径没扫到,在网站底部有 docunment,下载后登陆后台输入账号密码即可
014
题目描述
有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害死人
根据描述对应的是编辑器默认配置泄露
/.editorconfig/.vscode//.vscode/settings.json/.vscode/launch.json/.vscode/tasks.json/.idea//.idea/workspace.xml/.idea/misc.xml/.idea/modules.xml/.idea/deployment.xml/.idea/dataSources.xml这道题御剑扫出 editor

015
题目描述
公开的信息比如邮箱,可能造成信息泄露,产生严重后果
扫描发现路径 admin 访问后是个登陆界面,点击忘记密码,提问所在城市,在首页最下面有 qq 号,搜索发现在陕西西安,提交后得到密码
016
题目描述
对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露
什么是探针?
探针”是站长或开发者放到服务器上的一个测试页面,用来查看服务器环境是否正常,比如:
PHP 版本系统信息Web 服务器类型扩展模块环境变量网站根目录配置路径数据库扩展禁用函数常见有
/tz.php/phpinfo.php/info.php/test.php/i.php/p.php本题
访问 tz.php 发现

017
题目描述
备份的sql文件会泄露敏感信息

CREATE DATABASE IF NOT EXISTS ctfshow;USE ctfshow;---- Table structure for table `products`--CREATE TABLE IF NOT EXISTS `products` ( `product_id` int(11) NOT NULL, `name` varchar(100) NOT NULL, `sku` varchar(14) NOT NULL, `price` decimal(15,2) NOT NULL, `image` varchar(50) NOT NULL, PRIMARY KEY (`product_id`), UNIQUE KEY `sku` (`sku`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;CREATE TABLE `ctfshow_secret` ( `secret` varchar(255) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;INSERT INTO `ctfshow_secret` VALUES ('ctfshow{7e11b109-1b7e-4e0a-9754-7f2d1053bb11}');---- Dumping data for table `products`--INSERT INTO `products` (`product_id`, `name`, `sku`, `price`, `image`) VALUES(1, 'Iphone', 'IPHO001', '400.00', 'images/iphone.jpg'),(2, 'Camera', 'CAME001', '700.00', 'images/camera.jpg'),(3, 'Watch', 'WATC001', '100.00', 'images/watch.jpg');018
题目描述
不要着急,休息,休息一会儿,玩101分给你flag 看了 js 源码,发现有 score ,直接控制台更改 score
根据提示拿到 flag
019
题目描述
密钥什么的,就不要放在前端了


提交后拿到 flag
020
题目描述
mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了。
扫出 /db/db.mdb 下载打开后拿到 flag


读者回信
正在翻开留言页...