前言:
本人作为一名初涉CTF的新手,深知自身在知识储备和实战经验上还存在诸多不足。因此,我在解题的过程中,始终保持着边做题、边查资料、边总结解题思路的学习态度。通过不断地学习和实践,我逐渐积累了一些经验和知识,也深刻体会到了CTF竞赛的魅力和挑战。
在撰写本篇文章的过程中,我参考了大量的网上资料,并尽可能地指明了原文链接,以便读者能够进一步深入了解相关知识和技术。同时,我也要感谢各位大佬分享的优秀文章,正是这些文章为我提供了宝贵的学习资源和灵感。
本文旨在通过分享我的解题思路和经验,帮助那些同样处于CTF Web方向新手阶段的朋友们更好地入门。最后,我希望这篇文章能够对需要的人有所帮助,也期待与更多的CTF爱好者一起交流和学习,共同进步。
web1:
hint:开发注释未及时删除
根据提示“注释”,右键查看页面源代码即可得到flag(右键查看源代码常常能获得一些hint或对解题有用的东西)
技能点:
- 直接F12查看页面源代码
- 直接右键查看页面源代码
- view-source:URL 一般用于绕过前端限制来查看页面源代码
web2:
hint:js前台拦截 === 无效操作
网页显示“无法查看源代码”——右键无法查看源代码,F12也不可以(即右键和审计都被禁用),此处采用上一题中说到的第三种方法:view-source:URL
web3:
hint:没思路的时候抓个包看看,可能有意外收获
题目提示“抓包”,一般抓数据包会用专门的抓包工具,详细参考这篇文章:BurpSuite超详细安装教程-功能概述-配置-使用教程---(附下载链接)_burpsuite汉化安装详细教程-CSDN博客
本题属于web入门题,可以暂时使用浏览器自带的F12网页开发者工具--Network(网络)查看当前数据包,可以看到flag:
web4:
hint:总有人把后台地址写入robots,帮黑阔大佬们引路
知识点:
robots.txt文件是一个用于网站的文本文件,其主要作用是告诉搜索引擎爬虫(也称为网络蜘蛛)哪些页面可以被访问、抓取和索引,以及哪些页面不应该被访问。这个文件通常被放置在网站的根目录下,并遵循一定的语法规则,以确保搜索引擎爬虫能够正确地解析和执行其中的指令。
对于这个网页,根据题目预测,robots.txt文件里不允许访问的页面也许就是flag所在的页面(正所谓~越想隐藏越是欲盖弥彰),URL/robots.txt查看一下: Disallow中不允许访问flagishere.txt文件,都告诉我flag is here了,怎么还能不访问呢,对吧?
web5:
hint:phps源码泄露有时候能帮上忙
知识点:
PHPS源码泄露是指PHP源代码文件(.phps文件)被非法获取或公开,使得他人能够直接查看这些源代码的内容。PHPS文件是专门用于通过Web浏览器展示PHP源代码的,它允许用户直接查看对应的PHP文件的源码。
本题可以直接访问.phps文件查看源码,看是否有flag或提示信息。可以先用目录扫描工具查看是否有.php文件或.phps文件:
故/index.phps,本地会下载一个index.phps的文件,用记事本打开就可以看见flag了:
补充:常见的网站目录扫描工具可以参考这一篇文章:CTF——9款网站目录扫描工具推荐——附下载链接与相关字典-CSDN博客
web6:
hint:解压源码到当前目录,测试正常,收工
如果源码被打包到和当前网站同级目录下(可以了解一下网站目录结构),这时我们就可以通过目录扫描,获取地址,进行下载获得源码:
扫描得到一个/www.zip,访问一下,下载解压得到两个文件,很明显在fl000g.txt中的是假的,再看index.php,提示flag in fl000g.txt中,而压缩包中的是假的,在网页访问一下/fl000g.txt:
web7:
hint:版本控制很重要,但不要部署到生产环境更重要
知识点:
版本控制是一种在开发过程中用于管理文件、目录或工程等内容的修改历史的软件工程技术。其主要功能包括追踪文件的变更,记录何时、何人更改了文件的哪些内容,并在每次文件改变时增加版本号。大致分为本地版本控制、集中版本控制 SVN、分布式版本控制 Git。然而,如果版本控制系统配置不当或管理不善,就可能导致敏感信息的泄露:
- git信息泄露漏洞:当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。攻击者可以利用该漏洞下载git文件夹里的所有内容。如果文件夹内有敏感信息比如站点源码、数据库账户密码等,攻击者可能直接控制服务器。
- svn信息泄露漏洞:SVN(subversion)是源代码版本管理软件,造成SVN源代码漏洞的主要原因是管理员操作不规范。“在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息。但一些网站管理员在发布代码时,不愿意使用‘导出’功能,而是直接复制代码文件夹到WEB服务器上,这就使.svn隐藏文件夹被暴露于外网环境,黑客可以借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。”(可以利用.svn/entries文件,获取到服务器源码、svn服务器账号密码等信息)
本题是git信息泄露,访问/.git(会自动跳转/.git/):
参考文章:
什么是版本控制?为什么要有版本控制?常用的版本控制工具有哪些?_版本控制是什么意思-CSDN博客
git信息泄露漏洞_当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.gi-CSDN博客
svn漏洞详解 - 林川的博客 - 博客园 (cnblogs.com)
web8:
hint:版本控制很重要,但不要部署到生产环境更重要
与上一题web7类似:
web9:
hint:发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了
知识点:
Vim是一款从Vi发展而来的文本编辑器,被广泛应用于程序开发和文本编辑工作。故会有运维人员在生产环境下的Vim修改文件,
当Vim编辑器在意外情况下(如直接关闭终端或电脑断电)非正常关闭时,会生成一个.swp文件。这个文件是一个临时交换文件,主要用于备份缓冲区中的内容。
需要注意的是,如果你并没有对文件进行修改,而只是读取文件,是不会产生.swp文件的。在意外退出时,Vim并不会覆盖旧的交换文件,而是会重新生成新的交换文件。而原来的文件中并不会有这次的修改,文件内容还是和打开时一样。例如,第一次产生的交换文件名为“.file.txt.swp”;再次意外退出后,将会产生名为“.file.txt.swo”的交换文件;而第三次产生的交换文件则为“.file.txt.swn”;依此类推。
因此,.swp文件主要是Vim为了防止数据丢失而在意外退出时生成的一种备份文件
故本题中说到“死机”,且有修改,故会产生.swp文件,访问一下/index.php.swp:
web10:
hint:cookie 只是一块饼干,不能存放任何隐私数据
题目提示Cookie存放隐私数据,直接F12开发者工具,看Cookie(%7B是‘{’ %7D是‘}’ 两者是URL编码):
HTML URL 编码参考手册 (w3school.com.cn)