1.目录遍历
直接原意理解为查阅文件所有目录并从中获取信息。
注:实操以ctfhub中信息泄露题为例
eg:打开环境后是这样一个页面,大体意思是直接从文件中翻阅找到flag
2.phpinfo
phpinfo函数会输出关于php配置的信息
基本语法:phpinfo ([ int $what = INFO_ALL ] )
参数: $ what是一个可省略的参数,但$what被省略,则会输出全部的配置信息。
它可以有以下值:
(1)INFO_GENERAL:信息概述,用于显示配置行、php.ini位置、构建日期、Web服务器、系统等。使用时写成这样:phpinfo (INFO_GENERAL),下面与此相同
(2)INFO_CREDITS:用于显示PHP Credits。
(3)INFO_CONFIGURATION: 信息配置,用于显示PHP指令的当前值,本地值和主值。
(4)INFO_MODULES:信息模块,用于显示已加载的模块及其各自的设置。
(5)INFO_ENVIRONMENT:信息环境,用于显示环境变量信息。
(6)INFO_VARIABLES:信息变量,它显示来自EGPCS(环境,GET,POST,Cookie,服务器)的所有预定义变量。
(7)INFO_LICENSE:信息许可,用于显示PHP许可证信息。
(8)INFO_ALL:全部信息,显示以上所有信息。
返回类型:phpinfo()函数返回一个布尔值。也就是说,它在成功时返回true,在失败时返回false 。
eg:(1)phpinfo这里进入phpinfo页面后它显示的php版本的描述和一些配置信息,页面很长,看下flag会不会藏在里面,搜索flag下,发现存在flag
3.备份文件下载
a.网站源码
进入环境后发现
文件后缀 + 备份文件名,这两个有啥用?会不会是进行拼凑,得到一个链接下载?
用.py写一个脚本,将题目自带的链接url + 备份文件名 + 备份文件后缀名拼凑在一起,并输出找到一个状态码为200的链接,访问后得到一个压缩包,访问里面带有“flag”的文件,发现为空换个方式,将文件名平凑在url上,访问下,发现可以得到flag
脚本如下
也可以用工具直接扫描文件得到一个www.zip的文件,打开后是一样的可以找到flag
这里我用的是dirsearch 用 -u +url头+ -e* 命令即可扫描文件
b.bak文件
注:后缀名是.bak的文件是备份文件,是文件格式的扩展名。
此类文件通常以.bak开头,该文件应具有原始扩展名,例如windows.dll.bak或windows_dll.bak,其中一些后缀有原始文件,名称和bak混合在一起。 例如,proteus的备份文件是.DBK。
进入环境后它给了提示说flag在index.php文件中,但是在url头后加入index.php后缀后发现没用
再看看题目,它讲到备份文件是bak,结合上面的话,意思就是bak文件再index.php里面了马上将index.php.bak加到链接上,发现可以打开文件,其中就有flag
c. vim 缓存-交换文件
原理及用法
在使用vim时会创建临时缓存文件,关闭vim时缓存文件则会被删除,当vim异常退出后,因为未处理缓存文件,导致可以通过缓存文件恢复原始文件内容
后缀是区分这些交换文件的方法同一个文件产生的多个交换文件的后缀是不一样的
以 index.php 为例:第一次产生的交换文件名为 .index.php.sw ,再次意外退出后,将会产生名为 .index.php.swo 的交换文件,第三次产生的交换文件则为 .index.php.swn
vim实操看到提示flag在index.php文件中,后缀改成index.php.swp,发现没用查阅资料,发现.swp是隐藏文件,需要index前加个"." 成功下载到.swp文件,打开访问,发现乱码这个是vim文件,需要在linux环境下打开,直接导入虚拟机上,并改成隐藏文件,用vim指令访问可以找到flag
d. .DS_Store
跟上一道的隐藏文件swp类似,直接再url后面加上“/.DS_Store ”访问下载文件拖到linux,使用cat查看,可以得到一串数字
后缀改成.txt后就可以打开找到flag