ctfshow web 入门1-20详解


categories: - web题解


​ 竟然还要花钱,只能从网上找具体解析了(希望能把知识点掌握了吧)

第一题

​ 使用F12快捷键对网站进行审计,可以在元素板块内的中找到flag

知识点:(1)注意到flag左右添加了<!– >,这在HTML中是一种用于注释语句的标签,可以让其中内容无法在浏览器中显示。

​ (2)F12是绝大多数浏览器自带的快捷功能,用于审计


第二题

​ 想像上一题一样用F12解决问题(想也没用毕竟没钱买题),会发现无法打开,也无法使用右键选择”查看主页源代码“选项,

​ 那就必须换一种方式查看。

​ sir, this way.

​ 或者通过在URL的前面加上view-source:,就可以显示出网页源代码了。

知识点:(1)通过网页源代码我们可能会发现有禁用鼠标右键等功能的语句,要学会灵活使用其他方法。

​ (2)view-source是一种在网页使用的功能,它允许用户查看当前网页源代码(可以被禁用),具体做法为view-source:URL


第三题

​ 尝试前两题所有方法后并未发现flag,这时就要换一个思路,搜集的信息应不止一种。

​ 请求包与响应包的概念已学过,此时应该看看里面有没有猫腻,使用浏览器自带的工具即可。

​ 点开网络界面刷新即可看到请求包与响应包

知识点:有关请求包的内容:1.请求行:方法字段 URL字段 协议版本

​ 2.请求体:Accept-Charset:浏览器可以接受的字符编码(如UTF-8)

​ Accept-Encoding:指定浏览器可以支持的web服务器返回内容压缩编码方式。编码方式不同于

​ 文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然

​ 后再检查文件格式。

​ Accept-Language:指出浏览器可以接受的语言种类,如en或en-us,指英语。

​ Authorization:HTTP授权的授权证书。

​ Referer:表明产生请求的网页URL。如比从网页A中点击一个链接到网

​ 页B,在向服务器发送的GET/B中的请求中,Referer是web名称+端口号+A,这个属性可以用来

​ 跟踪Web请求是从什么网站来的。

​ X-Forwarded-For:X-Forwarded-For头用于指示请求的真实客户端IP地址

​ Cache-Control:指定请求和响应遵循的缓存机制

​ Connection:表示是否需要持久连接。(HTTP 1.1默认进行持久连接)

​ Cookie:HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器。

​ cookie其实就是一些数据信息,类型为“小型文本文件”,存储于电脑上的文本文件中。

​ Content-Length:请求的内容长度

​ Content-Type:请求的内容类型

​ User-Agent:是客户浏览器名称

​ Host:对应网址URL中的Web名称和端口号。


第四题

​ 根据提示可知和robots.txt有关,直接在链接上加入并回车即可,再将得到的结果放入链接后

知识点:obots.txt是一个纯文本文件,是网站管理者写给爬虫的一封信,里面描述了网站管理者不希望爬虫做的事,比如:

​ 不要访问某个文件、文件夹

​ 禁止某些爬虫的访问

​ 限制爬虫访问网站的频率

​ 一个自觉且善意的爬虫,应该在抓取网页之前,先阅读robots.txt,了解并执行网站管理者制定的爬虫规则。

​ 这是一个来自必应的robots.txt

​ User-agent: 爬虫的名称(若名称为*则对象是所有爬虫)

​ Disallow: 不允许爬虫访问的地址(名称为/代表什么都不准访问)

​ Allow: 允许爬虫访问的地址

​ 若没有robots.txt代表可随便访问


第五题

​ 根据提示可知本题考查phps泄露

​ 直接在链接后输入/index.phps即可

知识点:phps文件就是php的源代码文件,通常用于提供给用户(访问者)直接通过Web浏览器查看php代码的内容。

​ 数据包中可能会有以下内容

​ 通过X-Powered-By可知网站用什么语言编写(不用php的话自然不存在phps泄露)

​ Server响应头字段指示服务器所使用的Web服务器软件的名称和版本号还有所处系统


第六题

​ 提示说明源码包在当前目录,使用特定文件名加后缀输入即可,这里需要的是www.zip

​ 随后下载了文件

​ 在网页URL后输入文件即可得到答案

知识点:(1)为什么可能不能直接使用双击txt后得到的内容,因为源码包有此文件代表服务器也有此文件,其内容可被修改,因此如果错

​ 误则需直接前往访问该文件

​ (2) 当开发人员在线上环境中对源代码进行了备份操作,并且将备份文件放在了 web 目录下,就会引起网站源码泄露。

​ 常见的网站源码备份文件后缀:tar tar.gz zip rar

​ 常见的网站源码备份文件名:web website backup back www wwwroot temp


第七题与第八题

​ 根据提示说明跟能进行版本控制的系统有关文件泄露有关,一种是git,另一种是svn

​ 直接在URL后输入/.git和/.svn即可

知识点:(1)Git和SVN是两种流行的版本控制系统,它们在功能和设计哲学上有着显著的差异。SVN,或Subversion,是一个集中式的版

​ 本控制系统,它将所有的数据存储在一个中央服务器上。Git则是一个分布式的版本控制系统,每个开发者都有一个完整的代

​ 码库副本。

​ (2)在Linux中,以点(.)开头的文件或文件夹是隐藏文件或隐藏文件夹,可能会被不小心部署到网站上。开发人员使用git与svn

​ 事可能会自动部署,导致其泄露。


第九题

​ vim泄露,访问/index.php.swp,下载文件后打开得到答案

知识点:(1)当开发人员在线上环境中使用 vim 编辑器,在使用过程中会留下 vim 编辑器缓存,当vim异常退出时,缓存会一直留在服务

​ 器上,引起网站源码泄露。(正常关闭vim的话缓存文件会被清除)

​ (2)第一次产生的交换文件名为 .index.php.swp

​ 再次意外退出后,将会产生名为 .index.php.swo 的交换文件

​ 第三次产生的交换文件则为 .index.php.swn


第十题

​ cookie 只是一块饼干,不能存放任何隐私数据

​ 包不是饼干的呀老弟

​ 直接用F12在网络中的数据包中找到Cookie发现答案

​ 有个小坑,%7B是什么东西?在URL中代表{,可以通过HackBar自带的URL解码功能转换

知识点:(1)cookie其实就是一些数据信息,类型为“小型文本文件“,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地

​ 终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息。浏览器保存了我们的cookie,里面记录了一些

​ 信息,这些cookie是服务器创建后返回给浏览器的,浏览器只进行了保存。

​ (2) 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。URL编码的原则就是

​ 使用安全的字符(没有特殊用途或者特殊意义的可打印字符)去表示那些不安全的字符。编码的格式为:%加字符的ASCII

​ 码,即一个百分号%,后面跟对应字符的ASCII(16进制)码值。如果不使用转义字符,这些编码就会当URL中定义的特殊字

​ 符处理。


第十一题

​ 域名其实也可以隐藏信息,比如ctfshow.com 就隐藏了一条信息。可以通过Dns查询网站查询内容

知识点:域名解析,简而言之,就是将域名转换为IP地址的过程。当我们访问一个网站时,实际上我们是在与一个IP地址通信,但由于IP

​ 地址通常是一串难以记忆的数字,例如“192.0.2.1”,所以我们使用更为直观的域名作为代替。

​ 域名解析类型

​ 1.A记录(Address Record):A记录用于将域名指向一个具体的IP地址。当你想要人们通过你的域名来访问你的网站时,你需要

​ 设置A记录。A记录是网站建设中最主要的一种类型。

​ 2.MX记录(Mail Exchange Record):当你有自己的域名,并希望使用它来收发电子邮件时,你需要设置MX记录来告诉互联网

​ 你的邮件服务器在哪里。

​ 3.CNAME记录(Canonical Name Record):CNAME用于给域名设置别名。

​ 4.SPF记录(Sender Policy Framework):SPF记录用于防止电子邮件欺诈。它确定哪些邮件服务器被授权为你的域名发送电子

​ 邮件,从而避免垃圾邮件发送者冒充你发送电子邮件。

​ 5.TXT记录(Text Record):TXT记录主要用于存放文本信息。这可以是服务器相关的各种信息,如域名所有权验证、电子邮件

​ 相关的策略等。


第十二题

​ 有时候网站上的公开信息,就是管理员常用密码

​ 网址后面加/admin进入管理员登录界面,通过提示在网站翻找可能的密码,发现可疑数字。

​ 用户名尝试最简单的名字,如admin

​ 登录成功获得flag

知识点:不要老想着通过什么cookie获得隐藏信息,可能平平无奇的界面就有


第十三题

​ 技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码

​ 发现document可以访问,得到敏感信息

​ 直接访问当然是无效的!your-domain当然指的是题目网站域名。

​ 所以将/system110/login.php输入至网址后即可进入登录界面,输入用户名与密码即可。

知识点:只要符合网站格式就能当做链接点击,但若未与ip地址匹配则无法进入


第十四题

​ 有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害死人

​ 根据提示查找源码中的editor

​ 尝试访问/editor(成功),/editor/upload/(失败),/editor/upload/banner-app.png(成功),从而知道editor是突破口

​ 网上查询得知editor是编辑器,进入后可打开文件目录进行查找

​ 对服务器目录进行遍历,前往/var/www/html 找到网页的文件目录,发现nothinghere(笑)

​ 将对应路径输入至网址后面即可得到答案

知识点:(1)URL/index.php 在服务器中的路径就是/editor/attached/flash/var/www/html/index.php,因此访问

​ URL/nothinghere/fl000g.txt(前面均为文件路径)


第十五题

​ 公开的信息比如邮箱,可能造成信息泄露,产生严重后果

​ 再次加上/admin进入登录界面访问后台,发现需要账号密码

​ 自然不知道密码是什么,选择忘记密码

​ 邮箱派上用场

​ 查找qq号发现在西安,输入后发现成功,获得新密码,登录得到答案

知识点:于十二题类似,在界面的公开信息中寻找有用信息


第十六题

​ 对于测试用的探针,使用完毕后要及时删除,可能会造成信息泄露

​ 本题考查php探针,加入/tz.php 即可查看探针

​ 找到此处即可跳转php详细内容

​ 向下翻找即可找到flag

知识点:(1)php探针是用来探测空间、服务器运行状况和PHP信息用的,探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。可以用类似域名/tz.php 这类网址访问雅黑探针


第十七题

​ 备份的sql文件会泄露敏感信息

​ 与数据库有关,访问数据库备份文件即可:URL/backup.sql

知识点:(1)在web服务中,尝尝不局限于网站的源代码泄露,网站的数据库备份文件等原则不允许访问的文件可被通过访问web路径进行

​ 下载得到


第十八题

​ 这种小游戏还得查看源码获得有效信息

​ 进入js文件查看

​ 将这一串数据解码即可得到提示信息110.php

​ URL/110.php即可得到答案

知识点:类似小游戏一定要通过源码查找可能的通关条件与能得到的有效信息


第十九题

​ 密钥什么的,就不要放在前端了

​ 通过源码可知,在前端输入账号密码,将密码根据某种规则加密后与设置好的数码匹配并且账号匹配时,给出flag

​ 所以我们可以1:直接POST传参就可以绕过前端加密直接与数码匹配

​ 2:通过源码中给出的加密方式解码数码再将密码输入至前端

知识点:需要登录时可查看源码寻找可能的账号密码与判定登陆成功的条件


第二十题

​ mdb文件是早期asp+access构架的数据库文件,文件泄露相当于数据库被脱裤了

​ URL/db/db.mdb得到文件,打开进行翻找即可得到flag

知识点:早期asp+access具有漏洞,一旦被扫描到目录下的存在mdb文件,攻击者可以直接访问地址进行下载获取数据库信息。