01做题思路
- 判断做题的思路是读取,写入,还是执行
- 判断大概的类型,有登录逻辑就尝试sql注入,有下载逻辑就尝试文件读取,有源码就做源码审计
02信息泄露及利用
robots.txt
以ctfshow的web1为例,访问robots拿到敏感路径,进而进入后台
.git文件泄露
版本控制系统的作用:方便开发时版本的更新与多人协作,如git控制版本,会记录每一次更改的内容,可以借此漏洞收集到文件源码
- 工具
githack
https://github.com/lijiejie/GitHack
用法 python GitHack.py url
以ctfshow web7为例,访问.git拿到flag
dirsearch
在看wp的时候见到一个扫描工具dirsearch,简单用法如下
扫描网站目录
python dirsearch.py -u https://target
这行代码运行 dirsearch 工具,扫描目标网站 https://target,
寻找扩展名为 .php、.html 和 .js 的文件或目录。
python dirsearch.py -e php,html,js -u https://target
在扫描过程中,dirsearch 会尝试将字典文件中的每个条目附加到目标 URL 上,
以查找是否存在这些路径或文件。
python dirsearch.py -e php,html,js -u https://target -w /path/to/wordlist
ctfshow做题记录
信息搜集
web1
f12拿到flag
web2
JavaScript 前台拦截 : 通常指的是在客户端(即浏览器)通过 JavaScript 代码对用户的请求或输入进行控制和限制。通常这种拦截行为会在用户提交表单、发送请求或进行一些交互操作时发生,开发者可能会利用 JavaScript 实现数据验证、请求拦截、重定向或信息提示等功能。
- f12之后突然不知道提示有什么意义,看题解也是五花八门
web3
bp抓包,从返回内容中找到flag
在这里记录一次修改,8080端口被占用,于是寻找解决方案,查出8080端口是系统进程,不敢随便停止,后来发现只要浏览器代理的端口与bp设置监听的端口一致即可正常抓包,即一个控制从哪出,一个选择从哪等
web4
提示的很清楚了,访问robots.txt,拿到提示后找到flag
web5
phps源码泄露,phps是用来显示php代码的高亮版本,而不是像php一样的执行版本 ,访问index.phps,拿到flag
web6
这道题没啥思路,于是用到刚刚提到的工具dirsearch,扫一下发现存在www
.zip源码泄露,访问下载解压得到flag
web7
git泄露,直接访问.git即可
web8
- svn泄露
SVN泄露与 Git泄露的区别
-
版本控制方式不同:
- SVN 是集中式版本控制系统,所有的版本信息存储在服务器端,客户端获取的是最新的文件和历史记录。泄露
.svn
目录时,攻击者只能获取到服务器上提交的文件历史记录。 - Git 是分布式版本控制系统,每个开发者都有完整的本地仓库,包含所有提交记录。如果 Git 仓库泄露,攻击者可以获取本地所有的提交记录、文件以及历史数据。
- SVN 是集中式版本控制系统,所有的版本信息存储在服务器端,客户端获取的是最新的文件和历史记录。泄露
-
泄露数据的范围:
- SVN 的泄露通常是针对某个仓库的历史记录。它的访问一般是集中在仓库所在的服务器上,仓库的元数据和配置文件会在
.svn
目录中泄露。 - Git 的泄露影响范围更广,因为每个开发者本地的仓库都包含完整的版本历史和提交记录。如果一个开发者的本地仓库被泄露,攻击者可以得到所有的历史记录和文件。
- SVN 的泄露通常是针对某个仓库的历史记录。它的访问一般是集中在仓库所在的服务器上,仓库的元数据和配置文件会在
-
泄露的方式:
- SVN 的
.svn
目录可以通过 Web 服务器等方式直接暴露在公网,如果没有配置好访问控制(如.htaccess
),攻击者可以直接访问。 - Git 的仓库泄露通常是由于错误地将
.git
目录上传到公共代码托管平台(如 GitHub、GitLab 等),或者开发者不小心暴露了完整的 Git 仓库。
- SVN 的
-
工具和处理方式:
- SVN 通常使用
svnadmin
、svnserve
等工具来管理和保护仓库,但.svn
目录的暴露仍然是个问题。 - Git 在处理泄露时,可以通过
git filter-branch
等工具清除历史记录中的敏感信息,并且 Git 提供了gitignore
和git hook
等方法来避免将敏感数据上传到远程仓库。
- SVN 通常使用
- .svn泄露 是指 SVN 的
.svn
目录被暴露,导致敏感信息泄露,通常发生在仓库没有正确配置访问控制时。 - Git泄露 则是指 Git 仓库(通常是
.git
目录)被公开或错误上传,攻击者能够访问完整的历史记录、提交和文件内容。 - 两者的核心区别在于 版本控制方式 :SVN 是集中式,Git 是分布式,Git 泄露的影响范围更大,因为开发者本地也有完整的仓库。
web9
vim编辑器使用时会有一个缓存文件,这个缓存文件在保存时进行删除,但是在vim意外退出时这个缓存文件,会以源文件加一个.swp后缀进行保存,我们可以尝试访问这些文件来尝试获取一些文件。
- 访问\index.php.vim
web10
根据提示,在应用里找到cookie