ctfshow

第三题

1.抓包

2.发送到repeater,获得flag

第四题

robots.txt是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(又称网络蜘蛛),此网站中的哪些内容是不能被搜索引擎的漫游器获取的,哪些是可以被(漫游器)获取的,当robots访问一个网站时,首先会检查该网站中是否存在这个文件,如果机器人找到这个文件,它就会根据这个文件的内容,来确定它访问权限的范围.就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt

访问robots.txt

访问flagishere.txt,得到flag

第五题

phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。

1.访问index.phps

2.浏览后得到flag

第六题

根据提示,解压源码到当前目录

访问url/www.zip

打开

访问url/文件名即可获得flag

第七题

git导致文件泄露:指将代码部署的时候,没有将.git版本控制的目录进行删除。这时,用户可以使用这个目录下的文件,来恢复源码。从而可以获取如数据库密码,源码漏洞等信息。

通常开发人员在开发时,通常将源码提交到远程的托管网站(如Github)方便管理与交互,等到开发最后阶段,再将源码从远程服务器上下载到 web 目录下, 如果开发人员忘记将其中的 .git文件删除,则可以通过 .git文件恢复网站源码,来获取一些敏感信息;开发人员对站点使用 Git 对版本进行控制,实现自动部署,如果配置不当,直接将 .git文件加载到线上环境,这样便引起了.git文件泄露。.git目录:我们使用git的所有被追踪的操作和被操作的文件都会被记录,编码,并保存在这个目录里

 访问url/.git/,即可获得flag

 第八题

svn导致文件泄露:指将代码部署的时候,没有将.svn版本控制的目录进行删除。这时,用户可以使用这个目录下的文件,来恢复源码。从而可以获取如数据库密码,源码漏洞等信息。

.svn目录(隐藏目录):. 使用svn checkout后,项目目录下会生成隐藏的.svn文件夹

通过访问url/.svn/获得flag

 第九题

当开发人员在线上环境中使用vim编辑器,在使用过程中会留下vim编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。

在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容

第一次产生的交换文件名为 .index.php.swp

再次意外退出后,将会产生名为 .index.php.swo 的交换文件

第三次产生的交换文件则为 .index.php.swn
 

访问url/index.php.swp

 打开后即可获得flag

第十题

提示查看cookie

抓包后发送到repeater

发现flag,输入后发现不正确

 解码后得到flag花括号中的内容,即得到正确的flag

web11.

ctfshow.com 就隐藏了一条信息

通过dacha.com,输入ctfshow.com,查询txt解析记录

TXT记录一般指为某个主机名或域名设置的说明

A (Address) 记录

是用来指定主机名(或域名)对应的IP地址记录。

别名(CNAME)记录

也被称为规范名字。这种记录允许您将多个名字映射到同一台计算机。

web12.

先访问robots.txt

访问一下管理员地址

 根据提示,密码为网站上的公开信息

输入后即可获得flag

web13.

发现只有document为小写,且有链接

 打开后发现网址,默认账号和密码

打开后台地址,出现问题

 查询后发现your domain的意思是你的域名

技术文档并不是给一个人用,卖出去后面向的域名不同,用your domain代表部署后的地址

把your domain修改为靶场地址

 登录默认用户名和密码即可获得flag

web14

提示:源码泄露重要信息

 首先查看一下源码,访问url/editor

点击插入文件中的文件空间,找到浏览器目录

 发现可疑目录

 访问该目录,发现错误

原因:/editor/attached/file/var/www/html/nothinghere/fl000g.txt前面为编辑器的路径,后面是服务器的绝对路径

使用相对路径

 web15.

题目提示邮箱可能造成信息泄露

 访问admin,用邮箱登录发现密码错误,只能忘记密码

该用户密保比较简单,用QQ查到了所在地

显示密码重置

 

 登录即可获得flag

web16.

探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。

雅黑探针使用方法

下载到本地电脑,再用 ftp 软件上传到网站任意目录中。绑定域名后,可以用类似 域名/tz.php 这类网址访问。

访问url/tz.php

 发现phpinfo可以点击

在环境变量中发现flag

web17.

根据提示备份的sql文件泄露信息

*.sql文件是mysql数据库导出的备份文件;

访问url/backup.sql

用记事本打开后获得flag

 web18.

这里主要指的是Javascript简称JS是因特网上最流行的网页脚本语言

什么是JS文件
即将Javascript脚本放入一个文件类并以js扩展名命名一种文本脚本

JS是javascript是缩写,js是网页前台脚本,几乎你所见的网页效果都是JS的功劳,如果没有JS网页将变得呆板。一般情况下,js文件不能直接打开,只有配合网页使用,才可以看到它的效果

JS文件指的是包含JavaScript代码行的文本文档。当用户需要从web服务器中的js文件里找到JavaScript代码来实现web页面上的功能时,web页面就会引用这些JavaScript代码。它具有关闭或者打开Web浏览器窗口或标签,鼠标悬停,表单验证序列等功能。这些JavaScript代码还可用于创建具有交互功能的下拉框等

查看源代码

找到js文件

寻找判断分数的语句

unicode编码转中文

 

 按照提示,访问110.php,得到flag

web19.

1.只要密码是这个哈希值即可获得flag

2.抓包

修改密码为源代码中的密码

在response中得到flag

web20.

mdb文件是早期asp+access构架的数据库文件

mdb文件是微软办公系列Access的文件,mdb作为Access数据库的一种文件储存格式,通常会直接用Access打开,其实用Excel也支持打开mdb文件。由于mdb是数据库文件,一些数据库类的软件也能打开mdb文件。一般都做是程序用的,先在电脑上安装SQLSERVER数据库软件,然后再附加一下就可以打开了。

直接打开url路径添加/db/db.mdb 

下载文件用记事本打开

找到flag

爆破

web21.

先随便输入一个密码,抓包

发现一个认证头

解密后发现中间用冒号隔开

导入字典

配置参数

前缀

 编码

因为有等于号,所以取消,否则编码会失败

 设置flag格式

爆破后

点击可获得flag

web22.

根据提示,爆破子域名ctf.show

逐个点击

发现flag

web23.

分析源代码

要满足第二位与第15位与第18位相同,第二位+第15位+第18位/第二位=第32位

找到1个脚本

<?php 
error_reporting(0); 
 
$a="asdfghjklqwertyuiopzxcvbnm1234567890";
for($i=0;$i<36;$i++){
    for($j=0;$j<36;$j++){
        $token=$a[$i].$a[$j];    
        $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 $a[$i].$a[$j];
                exit(0);
            } 
        } 
    }
} 
?> 

运行后得到3j

传递token=3j后,得到flag

web24.

同一个种子生成的随机数序列是一样的序列

rand()函数是Excel中产生随机数的一个随机函数

mt_srand() 函数播种 Mersenne Twister 随机数生成器。

mt_rand() 使用 Mersenne Twister 算法返回随机整数。

mt_srand(seed):

参数描述
seed可选。规定播种值

可以计算一下mt_rand对应的随机数

 将这个结果传给r

获得flag

web25.

如果给r赋值为零,那么rand的值为负第一次的随机数

输入r=0,得到第一个随机数

web26.

首先抓包

进行爆破

点击看到flag

 web27.

需要知道身份证号码

我们以第一个同学为例子

抓包,构造payloads

进行爆破和解码

web28.

抓包,访问默认文件

 进行爆破

构造payloads

 

 过滤掉3xx,4xx,5xx

得到flag

命令执行

web29.

preg_match — 执行匹配正则表达式

可以看到过滤掉了flag

?c=system('ls');先用这个语句看一下目录

 以为过滤掉了flag,所以换成了?

访问1.txt后得到flag

 web30.

 同时过滤掉了system和php

`相当于system

 ?c=`cp fla?.??? 1.txt`;

因为php也被过滤掉了,所以可以用三个问号占位符,表示当前目录下以fla开头.???,保存为1.txt

 访问1.txt

web31.

可以看到过滤的越来越多了

?c=eval($_GET[1]);&1=system('cat flag.php');

1已经不属于c了,被过滤掉的字符可以使用

查看页面源代码后得到flag

 web32.

%0a是换行符

php://filter/convert.base64-encode/resource(文件包含插件)

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

解码后可以看到flag

web33.

 多过滤了一个双引号

还可以用require函数

?c=require%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

解码后得到flag

 web34.

?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php

 web35.

还是用上面的方法

解码获得flag

 web36.

这里过滤掉了数字

可以用a代表1

解码后得到flag

web37.

data伪协议,需要 allow_url_include:On allow_url_fopen:On,它可以直接执行语句中的代码

    ?f=data://text/plain,<?php phpinfo(); ?> //直接执行php代码

data协议将后面的字符和字符串当作php代码来执行

?c=data://text/plain,<?php system("mv fla?.php 1.txt");?>

访问1.txt

web38.

过滤了file和php,php用短标签绕过

<?=是php的一种输出格式,可以输出变量和表达式,类似输出函数如echo()、print()、print_r()的功能,<?和<?php的作用是相同的,但是需要让php支持段标签格式才能用<?

*或?代替文件名全拼

?c=data://text/plain,<?=system("cp fl*.* 1.txt");?>

web39.

没有了回显且强制加了后缀.php,不影响代码执行

因为php代码已经闭合,故拼接的“.php”就以文本形式显示

?c=data://text/plain,<?=system("tac fla?.ph?");?>

web40.

scandir() 函数返回指定目录中的文件和目录的数组。
print_r() 函数用于打印变量,以更容易理解的形式展示
localeconv()函数会返回一一个包含本地数字及货币格式信息的数组,该数组的第一个元素就是"."
current() 函数返回数组中的当前元素的值。别名是 pos()
array_reverse() 函数将原数组中的元素顺序翻转,创建新的数组并返回。scandir() 函数返回指定目录中的文件和目录的数组。
print_r() 函数用于打印变量,以更容易理解的形式展示。
localeconv()函数会返回一一个包含本地数字及货币格式信息的数组,该数组的第一个元素就是"."
current() 函数返回数组中的当前元素的值。别名是 pos()
array_reverse() 函数将原数组中的元素顺序翻转,创建新的数组并返回。

localeconv()的第一个元素是"." ,用pos()可以返回数组第一个元素的值。所以结合起来就是 scandir(".") 相当于返回当前目录下文件的数组,最后用print_r输出。

用array_reserve()把数组内元素顺序倒过来,flag就变成数组中的第二项,然后可以用next()取出(默认指针停留在数组第一项 

?c=show_source(next(array_reverse(scandir(pos(localeconv())))));

 web42.

> 代表重定向到哪里

/dev/null 代表空设备文件

& 表示等同于的意思,2>&1,表示2的输出重定向等同于1

1 表示标准输出,系统默认值是1,所以">/dev/null"等同于 “1>/dev/null

1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,也就是不显示任何信息。
2>&1 : 接着,标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

所以为了不让后面的执行,我们可以截断

?c=tac flag.php;Is

 web43.

过滤掉了分号

将&&进行url编码

&&第一个命令执行成功后再执行第二个命令

?c=tac flag.php %26%26 Is

web44.

过滤掉flag,可以用?占位

?c=tac fla?.php %26%26 Is

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值