一、目录遍历漏洞
1.什么是目录遍历漏洞
指的是在没有授权的情况下读取文件,某些情况下还可对服务器里的文件任意写入
2.目录遍历漏洞成因
网站配置存在缺陷,对输入目录缺少验证,没过滤../之类的目录跳转符,可通过提交目录跳转符遍历文件
练习
ctfhub技能树目录遍历
打开后发现许多目录
依次查找在3/4下发现flag.txt的存在
得到flag
二、PHPINFO
1.什么是PHPINFO信息泄露
通过访问PHPINFO这种特殊的php脚本获取信息
2.漏洞成因
web服务器配置不当或PHPINFO脚本文件未删除或PHPINFO脚本文件权限设置不当
3.phpinfo函数
用于网站建设过程中测试搭建的PHP环境是否正确,显示php服务器配置信息
语法: int phpinfo(void)
返回值: 整数
可以从phpinfo()中得到的敏感信息
1>网站绝对路径
2>查看一些特殊的程序服务,比如redis、memcache、mysql、SMTP、curl等等如果服务器装了redis或者memcache可以通过ssrf来getshell了,在discuz中都出现过此类问题。如果确定装了redis或memcache的话,在没有思路的情况下,可以着重找一下ssrf
3>禁用的函数。
4.漏洞检测
构造URL,例如http://127.0.0.1/index.php?cmd=phpinfo(); 或 http://127.0.0.1/phpinfo.php
练习
ctfhub技能树PHPINFO
打开题目后发现不用检测,信息泄露了,查看URL也和检测方式一样
补充:通过 ctrl+f 可以在页面查找关键字
这里由于知道flag是用ctfhub{}包裹的,直接查找得到flag
三、备份文件下载
1.源码泄露
源代码进行过备份操作,并且将备份文件放在了 web 目录下,会引起网站源码泄露。
常见的网站源码备份文件后缀:
tar
tar.gz
zip
rar
常见的网站源码备份文件名:
web
website
backup
back
www
wwwroot
temp
方法:御剑扫描找到备份文件,访问后会自动弹出下载框下载
2.bak文件
网站管理员可能为了方便,会在修改某个文件的时候先复制一份,将其命名为xxx.bak。而大部分Web Server(一个 Web Server 就是一个服务器软件(程序),或者是运行这个服务器软件的硬件(计算机)。其主要功能是通过 HTTP 协议与客户端(通常是浏览器(Browser))进行通信,来接收,存储,处理来自客户端的 HTTP 请求,并对其请求做出 HTTP 响应,返回给客户端其请求的内容(文件、网页等)或返回一个 Error 信息。)对bak文件并不做任何处理,导致可以直接下载,从而获取到网站某个文件的源代码
后缀名是.bak的文件是备份文件,把.bak改成对应的文件拓展名即可使用对应的软件打开。
3.vim缓存
使用 vim 编辑器,过程中留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务器上,引起网站源码泄露。
非正常关闭vim编辑器时会生成一个.swp文件
例如:
第一次退出后产生 .index.php.swp
再次意外退出将会产生名为 .index.php.swo 的交换文件
第三次则为 .index.php.swn
方法:
1>直接在URL后加/.index.php.swp
2>用kali打开文件,用命令 vim -r filename 即可恢复文件
4..DS_Store
.DS_Store 文件利用 .DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单
方法:
1>在URL后直接加/.DS_Store,下载下来的文件用101打开,并将.过滤掉就是txt的文件名,然后构造URL访问可得到flag
2>用kali打开找到txt文件,.txt后面的不要,直接进行访问得到flag
练习
ctfhub技能树网站源码
用御剑扫描找到备份文件
下载后打开发现flag文件,但里面没有
在浏览器里访问文件即可找到flag
ctfhub技能树bak文件
打开后发现已经说了flag在index.php中,而且是bak备份文件,直接构造URL访问
下载文件后即可得到flag
ctfhub技能树vim缓存
打开题目后发现已经告知flag位置,接下来直接输入/.index.php.swp(在index前要输入一个.是因为这是隐藏文件调用时要加上.)
打开下载的文件即可得到flag
ctfhub技能树.DS_Store
题目提示了可以通过构造URL访问.DS_Store文件
下载后打开发现是乱码,想到用kali打开试试
将文件托到kali中,用cat命令打开找到txt文件
接着访问这个txt文件,得到flag