赞
踩
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
ctfshow.com 就隐藏了一条信息
通过dacha.com,输入ctfshow.com,查询txt解析记录
TXT记录一般指为某个主机名或域名设置的说明
A (Address) 记录
是用来指定主机名(或域名)对应的IP地址记录。
别名(CNAME)记录
也被称为规范名字。这种记录允许您将多个名字映射到同一台计算机。
先访问robots.txt
访问一下管理员地址
根据提示,密码为网站上的公开信息
输入后即可获得flag
发现只有document为小写,且有链接
打开后发现网址,默认账号和密码
打开后台地址,出现问题
查询后发现your domain的意思是你的域名
技术文档并不是给一个人用,卖出去后面向的域名不同,用your domain代表部署后的地址
把your domain修改为靶场地址
登录默认用户名和密码即可获得flag
提示:源码泄露重要信息
首先查看一下源码,访问url/editor
点击插入文件中的文件空间,找到浏览器目录
发现可疑目录
访问该目录,发现错误
原因:/editor/attached/file/var/www/html/nothinghere/fl000g.txt前面为编辑器的路径,后面是服务器的绝对路径
使用相对路径
题目提示邮箱可能造成信息泄露
访问admin,用邮箱登录发现密码错误,只能忘记密码
该用户密保比较简单,用QQ查到了所在地
显示密码重置
登录即可获得flag
探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。
下载到本地电脑,再用 ftp 软件上传到网站任意目录中。绑定域名后,可以用类似 域名/tz.php 这类网址访问。
访问url/tz.php
发现phpinfo可以点击
在环境变量中发现flag
根据提示备份的sql文件泄露信息
*.sql文件是mysql数据库导出的备份文件;
访问url/backup.sql
用记事本打开后获得flag
这里主要指的是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
1.只要密码是这个哈希值即可获得flag
2.抓包
修改密码为源代码中的密码
在response中得到flag
mdb文件是早期asp+access构架的数据库文件
mdb文件是微软办公系列Access的文件,mdb作为Access数据库的一种文件储存格式,通常会直接用Access打开,其实用Excel也支持打开mdb文件。由于mdb是数据库文件,一些数据库类的软件也能打开mdb文件。一般都做是程序用的,先在电脑上安装SQLSERVER数据库软件,然后再附加一下就可以打开了。
直接打开url路径添加/db/db.mdb
下载文件用记事本打开
找到flag
先随便输入一个密码,抓包
发现一个认证头
解密后发现中间用冒号隔开
导入字典
配置参数
前缀
编码
因为有等于号,所以取消,否则编码会失败
设置flag格式
爆破后
点击可获得flag
根据提示,爆破子域名ctf.show
逐个点击
发现flag
分析源代码
要满足第二位与第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
同一个种子生成的随机数序列是一样的序列
rand()函数是Excel中产生随机数的一个随机函数。
mt_srand() 函数播种 Mersenne Twister 随机数生成器。
mt_rand() 使用 Mersenne Twister 算法返回随机整数。
mt_srand(seed):
参数 | 描述 |
---|---|
seed | 可选。规定播种值 |
可以计算一下mt_rand对应的随机数
将这个结果传给r
获得flag
如果给r赋值为零,那么rand的值为负第一次的随机数
输入r=0,得到第一个随机数
首先抓包
进行爆破
点击看到flag
需要知道身份证号码
我们以第一个同学为例子
抓包,构造payloads
进行爆破和解码
抓包,访问默认文件
进行爆破
构造payloads
过滤掉3xx,4xx,5xx
得到flag
preg_match — 执行匹配正则表达式
可以看到过滤掉了flag
?c=system('ls');先用这个语句看一下目录
以为过滤掉了flag,所以换成了?
访问1.txt后得到flag
同时过滤掉了system和php
`相当于system
?c=`cp fla?.??? 1.txt`;
因为php也被过滤掉了,所以可以用三个问号占位符,表示当前目录下以fla开头.???,保存为1.txt
访问1.txt
可以看到过滤的越来越多了
?c=eval($_GET[1]);&1=system('cat flag.php');
1已经不属于c了,被过滤掉的字符可以使用
查看页面源代码后得到flag
%0a是换行符
php://filter/convert.base64-encode/resource(文件包含插件)
?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
解码后可以看到flag
多过滤了一个双引号
还可以用require函数
?c=require%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
解码后得到flag
?c=include%0a$_GET[1]?>&1=php://filter/convert.base64-encode/resource=flag.php
还是用上面的方法
解码获得flag
这里过滤掉了数字
可以用a代表1
解码后得到flag
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
过滤了file和php,php用短标签绕过
<?=是php的一种输出格式,可以输出变量和表达式,类似输出函数如echo()、print()、print_r()的功能,<?和<?php的作用是相同的,但是需要让php支持段标签格式才能用<?
*或?代替文件名全拼
?c=data://text/plain,<?=system("cp fl*.* 1.txt");?>
没有了回显且强制加了后缀.php,不影响代码执行
因为php代码已经闭合,故拼接的“.php”就以文本形式显示
?c=data://text/plain,<?=system("tac fla?.ph?");?>
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())))));
> 代表重定向到哪里
/dev/null 代表空设备文件
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
1 表示标准输出,系统默认值是1,所以">/dev/null"等同于 “1>/dev/null
1>/dev/null :首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,也就是不显示任何信息。
2>&1 : 接着,标准错误输出重定向到标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
所以为了不让后面的执行,我们可以截断
?c=tac flag.php;Is
过滤掉了分号
将&&进行url编码
&&第一个命令执行成功后再执行第二个命令
?c=tac flag.php %26%26 Is
过滤掉flag,可以用?占位
?c=tac fla?.php %26%26 Is
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。