CTFshow之信息收集第1关到10关。详细讲解

news2024/11/27 0:34:40

得而不惜就该死!

--章总

开始新的篇章!

零、目录

一、实验准备

1、ctf网站:ctf.show

2、工具:chrome浏览器、hackbar插件

3、burpsuite抓包工具

二、实验技巧

(一)F12摸奖 源码泄露

(二)没思路就抓包 重发器发包看返回包

(三)robots.txt文件泄露

(四)index.phps文件泄露

(五)网站源码泄露

(六).git版本控制文件泄露

(七).svn/版本控制

(八)Vim 缓存文件泄露

(九)cookie泄露

三、实验操作

(一)第1关

(二)第2关

1、猜测js代码禁止调用F12

2、使用ctrl+u查看网站源码

3、使用插件扩展(chrome)

(三)第3关

(四)第4关

(五)第5关

(六)第6关

(七)第7关

(八)第8关

(九)第9关

(十)第10关


一、实验准备

1、ctf网站:ctf.show

2、工具:chrome浏览器、hackbar插件

3、burpsuite抓包工具

二、实验技巧

(一)F12摸奖 源码泄露

(二)没思路就抓包 重发器发包看返回包

(三)robots.txt文件泄露

(四)index.phps文件泄露

(五)网站源码泄露

(六).git版本控制文件泄露

(七).svn/版本控制

(八)Vim 缓存文件泄露

(九)cookie泄露

三、实验操作

(一)第1关

做题第一步,首先看要求,发现已经近乎明牌的告诉我们flag的位置就在注释中了,所以我们直接F12查看即可

验证后确实如我们所料,右键->edit html,直接复制提交flag

(二)第2关

依旧老思路,查看题目给我们的暗示:js前台拦截 === 无效操作,

可能大家对这句话理解不深,我们来解释一下:

首先我们知道,开发通常分为前端和后端,其中js属于前端语言,负责编写界面显示内容和检验前端交互数据

===符号就是处理交互数据的一种比对方式,只有在比对的数据的类型和值全部一致时,返回True(真),否则False;而==则是只要值一致即返回True,不用在意类型

解释完后,可能依旧云里雾里,我们延续第1题F12看源码摸奖

发现无法查看源码,F12阵亡!

信息收集吗,讲的就是如何“收集”,所以我们去找下F12调不出的解决措施即可

1、猜测js代码禁止调用F12

禁用前端js使用

(1)点击浏览器右上角三个点后点击设置

(2)隐私与安全->网站设置

(3)、设置不允许网站使用javascript

(3)、刷新题目网址->F12,同时得到flag提交  

同时查看源代码后,验证我们的猜想正确,确实使用js禁用了鼠标右键、键盘输入F12、文本复制

  • window.oncontextmenu函数部分
    • window.oncontextmenu = function(){return false};:这个函数用于处理鼠标右键单击事件。在网页中,当用户右键单击时,通常会弹出一个上下文菜单(包含复制、粘贴、查看源代码等选项)。通过将window.oncontextmenu设置为一个总是返回false的函数,就禁止了右键菜单的弹出。这样做可以防止用户通过右键菜单中的 “查看源代码” 选项来查看网页的 HTML 和 CSS 代码,或者阻止用户使用右键菜单中的其他功能(如复制图片、链接等),从而在一定程度上保护网页内容。
  • window.onselectstart函数部分
    • window.onselectstart = function(){return false};:此函数用于处理文本选择的开始事件。在网页中,当用户试图通过鼠标拖动或者其他方式选择文本内容时,这个事件就会触发。通过返回false,就阻止了用户在网页上选择文本。这可能是为了防止用户复制网页中的特定文本内容,例如一些受版权保护的文字、敏感信息或者防止用户对网页的布局(因选择文本而出现的高亮显示等)造成干扰。
  • window.onkeydown函数部分
    • window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};:这个函数用于处理键盘按键按下事件。event.keyCode表示按下的按键对应的代码。在这里,它检查是否按下的是键码为123的按键。在大多数浏览器中,F12键的键码是123。如果检测到按下的是F12键,就将event.keyCode设置为0(相当于取消这个按键的操作),并将event.returnValue设置为false,这样就阻止了F12键的功能。因为在浏览器中,按下F12键通常会打开开发者工具,通过这种方式可以防止用户通过F12打开开发者工具来查看网页源代码、调试 JavaScript 等操作。

2、使用ctrl+u查看网站源码

由于在1中验证了自己猜想是网站使用js禁止了访问,所以使用其他快捷键查看即可

3、使用插件<view-source>扩展(chrome)

如果是foxfire则使用Web Developer插件

下载地址:<view-source>下载

使用:点击扩展->输入需要查看的url->submit

4、使用命令行curl发包

命令(cmd):curl url

只需要替换url为自己的即可,flag拿到

5、使用js逆向调试 

由于此办法过于鸡肋,此处不做扩展讲解

位置:开发者工具->sources

(三)第3关

优先看暗示,没思路则抓包?在跟着暗示走之前我们先F12摸奖,发现一无所获,只能burp抓包

查看数据包内容,没找见flag,放入重发器(repeater)查看返回包(reponse),flag得到!

GET / HTTP/1.1
Host: 4d80bd78-a245-4d0c-8cd3-ba1ffac89a0a.challenge.ctf.show
Cache-Control: max-age=0
Sec-Ch-Ua: "Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Referer: https://4d80bd78-a245-4d0c-8cd3-ba1ffac89a0a.challenge.ctf.show/
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Priority: u=0, i
Connection: close

此处欢迎抓包进入摸奖技术列表!

(四)第4关

查看暗示,robots.txt?

此文件为服务器和爬虫工程师们之间的君子约定,里面存放了服务器不允许爬取的文件内容路径,但是有的时候会错误放入重要信息形成此地无银三百两的现象!

虽然有新的暗示,但是我们依旧可以F12摸奖和抓包摸奖,没成功也没事。

访问robots.txt文件,发现一个不允许访问的路径,我偏去!访问后成功获取flag!

此处欢迎访问robots.txt进入摸奖技术列表!

(五)第5关

查看暗示,phps源码泄露?

PhpS 文件泄露是指在 Web 应用程序中,由于配置错误、漏洞或不当的操作,使得包含敏感信息的.phps 文件内容被暴露给未授权的用户。.phps 文件通常是经过某种处理(如备份、编辑器临时文件等)的 PHP 文件。例如,开发人员在使用编辑器编写 PHP 代码时,编辑器可能会生成临时备份文件(如.phps),这些文件如果被错误地部署到 Web 服务器上并且没有适当的访问限制,就可能导致泄露。

不忘本,摸奖三兄弟上了没成功,锻炼技术吗!多用咱有个印象。不过知道了使用的中间件和开发语言版本。

尝试访问index.phps路径,发现下载了该文件,我们使用文本编辑器打开,发现flag。

至于为什么访问一定要访问index.phps文件,大部分属于经验之谈,理解原理即可,下次遇见php开发网站当作自己的一个测试点即可

此处欢迎访问index.phps进入摸奖技术列表!

(六)第6关

解压源码?源码泄露!摸奖四件套,发现没有用。

试着解压缩www.zip文件,发现存在fl000g.txt,提交发现错误!,在url后加上路径fl000g.txt尝试,成功获取flag

但是此时我们会有这样一个疑问,你怎么知道要访问www.zip文件呢?这是因为考察的是源码泄露,我们是通过其他渠道发现的,所以在题目直接访问会很突兀,但是实际中,你可能是在github、cms等中发现的源码。

所以现在你记住可以使用这个来摸奖!

(七)第7关

版本控制?

定义:在 Web 开发过程中,.git 文件夹包含了整个项目的版本控制信息。当这个文件夹被错误地暴露在 Web 服务器可访问的目录下时,就会发生.git 版本控制泄露。这使得攻击者能够访问项目的源代码历史、开发人员的提交记录、分支信息以及可能包含的敏感信息,如数据库连接密码、API 密钥等。

通俗来讲:解释我们可以通过.git文件间接得到网站源码

利用此漏洞脚本:https://github.com/lijiejie/GitHack

首先访问.git/index目录,此时直接就出现flag了,不过我们不用在意,继续分析,实战中会出现403错误,这是因为资源在服务器存在,但是我们没有访问权限。获得此消息后,我们使用脚本来获取源码

命令:python gitHack.py url

url中带/.git/index或者/.git/

真是幽默,竟然不是.git文件,怪不得直接把flag爆出来了。不过大家知道这个处理思路就好

(八)第8关

发现依旧是版本控制泄露问题,我们直接上脚本跑。

首先访问验证/.git/index或者/.git/文件(文件夹),发现没有回显,我们不信邪,再用脚本跑一边,发现确实不是。

命令:python gitHack.py url

后续发现此为.svn版本控制泄露,我们直接术业有专攻,访问/.svn/即可。

与.git 泄露类似,如果.svn 目录被意外地暴露在 Web 服务器可访问的区域,攻击者可以获取项目的源代码。因为.svn 目录包含了工作副本中的所有文件版本信息,通过这些信息可以还原出完整的项目代码,包括一些可能尚未发布的功能代码或者旧版本的代码。

(九)第9关

看描述似乎是需要下载某文件进行vim编辑,但是为什么会死机?

尝试上述解题思路,发现不行。开始换思路,查找vim编辑死机会产生何种泄露?

Vim 缓存文件的产生与类型

交换文件(.swp):当使用 Vim 编辑文件时,它会自动创建一个交换文件(文件名格式通常是原文件名加上.swp 后缀)。这个交换文件用于在意外情况(如 Vim 崩溃、系统崩溃等)下恢复文件内容。例如,如果你正在编辑一个名为index.php的文件,Vim 可能会生成一个名为index.php.swp的交换文件。

备份文件(.bak 等):Vim 也可能会根据配置生成备份文件。这些备份文件包含了文件之前的版本内容,备份文件的命名格式可以通过 Vim 的配置进行设置,常见的有文件名加上.bak 后缀。它们的作用是提供文件内容的备份,以便在需要时可以恢复到之前的状态。

撤销文件(.undo):用于记录文件的编辑历史,方便用户撤销之前的操作。它存储了文件在不同编辑阶段的内容,使得用户可以回退到之前的编辑状态。

知晓vim编辑退出和交换文件.swp有关,所以我们试着访问/index.php.swp。自动下载了index.php.swp文件,我们打开看看,发现flag

(十)第10关

发现此题大概率和cookie泄露相关,查找相关资料认识cookie。

定义:Cookie 是网站存储在用户浏览器中的一小段文本信息。它主要用于在用户访问网站的不同页面之间记住用户的状态或偏好。例如,当用户登录一个网站后,网站会通过 Cookie 来识别用户身份,使得用户在浏览其他页面时不需要重复登录。Cookie 通常包含键值对,如username=John,其中username是键,John是值。

既然知道了是cookie泄露,那么我们就无需尝试其他泄露去摸奖。而cookie一般存在于返回包处,所以我们联动burpsuite抓包工具查找。确实发现flag,但是好像被编码了,携带百分号%,猜测是url编码,进行解码,得到flag。

至此完成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2233782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis ——发布订阅

问题引入&#xff1a; 服务器A、B、C、D&#xff0c;客户端&#xff1a;C1&#xff0c;C2&#xff0c;C3&#xff0c;C4&#xff1b; 客户端基于集群聊天服务器的负载均衡分配&#xff1b; C1 被分配到A&#xff0c;C2 被分配到B&#xff0c;C3 被分配到C&#xff0c;C4 被分…

【漏洞复现】某平台-QRcodeBuildAction-LoginSSO-delay-mssql-sql注入漏洞

《Java代码审计》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484219&idx1&sn73564e316a4c9794019f15dd6b3ba9f6&chksmc0e47a67f793f371e9f6a4fbc06e7929cb1480b7320fae34c32563307df3a28aca49d1a4addd&scene21#wechat_redirect 《Web安全》h…

API网关 - JWT认证 ; 原理概述与具体实践样例

API网关主要提供的能力&#xff0c;就是协议转换&#xff0c;安全&#xff0c;限流等能力。 本文主要是分享 如何基于API网关实现 JWT 认证 。 包含了JWT认证的流程&#xff0c;原理&#xff0c;与具体的配置样例 API网关认证的重要性 在现代Web应用和微服务架构中&#x…

Excel:vba实现批量插入图片

实现的效果&#xff1a; 实现的代码&#xff1a; Sub InsertImageNamesAndPictures()Dim PicPath As StringDim PicName As StringDim PicFullPath As StringDim RowNum As IntegerDim Pic As ObjectDim Name As String 防止表格里面有脏数据Cells.Clear 遍历工作表中的每个图…

什么是 OpenTelemetry?

OpenTelemetry 定义 OpenTelemetry (OTel) 是一个开源可观测性框架&#xff0c;允许开发团队以单一、统一的格式生成、处理和传输遥测数据&#xff08;telemetry data&#xff09;。它由云原生计算基金会 (CNCF) 开发&#xff0c;旨在提供标准化协议和工具&#xff0c;用于收集…

电商美工必备神器:千鹿 AI 轻松解决场景图主图尺寸问题

前言 在电商领域&#xff0c;美工在做详情页设计时&#xff0c;常常会为图片尺寸问题而苦恼。而 AI 扩图在此刻就成为了美工们的得力助手。其中&#xff0c;场景图主图太小是一个让人颇为头疼的难题。千鹿 AI 作为一款强大的工具&#xff0c;能够一键将图片改成指定尺寸&#…

关于 PDF 抽取的吐槽

今天一下午写了8&#xff0c;9个 PDF 抽取的脚本。最后又回归最开始简单的模式了&#xff0c;要疯了&#xff0c;谁懂啊。 我是下午的工作是这样的(我是这么疯的) 最开始使用最简单的策略&#xff0c;先使用 PyPDF2.PdfReader(file) 读取文件&#xff0c;然后在每一页使用 pag…

无人机避障——(局部规划方法)DWA(动态窗口法)

传统的DWA算法更加倾向于车辆等差速无人车&#xff0c;旋翼无人机是全速的&#xff0c;全向的。 全局路径是通过A*算法生成的 局部路径规划效果&#xff1a; DWA算法效果&#xff1a; 过程图&#xff1a; 完整过程&#xff1a; PID算法效果&#xff1a; 过程图&#xff1a…

知识吾爱纯净版小程序系统 leibiao SQL注入漏洞复现(XVE-2024-30663)

0x01 产品简介 知识吾爱纯净版小程序系统是一款基于微信小程序平台开发的知识付费应用,旨在帮助用户快速建立自己的知识付费平台,实现支付变现和流量主收益。它提供了简洁明了的用户界面和良好的用户体验,同时注重用户隐私保护,确保用户信息的安全存储和传输。 0x02 漏洞…

基于web的便捷饭店点餐小程序的设计与实现(lw+演示+源码+运行)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…

全面解析:深度学习技术及其应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 全面解析&#xff1a;深度学习技术及其应用 全面解析&#xff1a;深度学习技术及其应用 全面解析&#xff1a;深度学习技术及其应…

项目实战使用gitee

1.创建本地仓库 2.进行提交到本地仓库 创建仓库后在idea中会显示图标&#xff0c;点击绿色的√进行快速提交 3.绑定远程仓库 4.番外篇-创建gitee仓库 注意不要勾选其他

【鸿蒙新闻】10月29日警用鸿蒙开发者大会在北京胜利召开,开启智慧应用新时代!

10月29日&#xff0c;在公安部科技信息化局、公安部装备财务局指导下&#xff0c;由公安部第一研究所主办&#xff0c;鼎桥通信技术有限公司、OpenHarmony生态委员会及公共安全专委会协办的警用鸿蒙开发者大会在北京胜利召开。会议以“拥抱警鸿创新生态 开启智慧应用新时代”为…

Spring Boot 3.3 【九】Redis 的五种数据结构深入浅出(String List Set Hash Zset)

如果觉得本文能够帮到您&#xff0c;请关注&#x1f31f;、点赞&#x1f44d;、收藏&#x1f4da;&#xff0c;让这份美好延续下去&#xff01; 一、Redis 数据结构简介 在现代应用开发中&#xff0c;高效的数据存储和管理是构建强大系统的关键。Redis 作为一种高性能的内存数…

命令行参数、环境变量、地址空间

命令行参数&#xff1a; int main(int argc, char *argv[ ])&#xff0c;main的参数可带可不带。argc参数通常代表后面的char *argv的元素个数有多少。 在linux中会把输入的字符串存到char *argv[ ]中&#xff0c;在数组的结尾为NULL。 命令行参数可以让同一个程序可以通过不同…

持续优化,构建更好地 auto git commit 体验

几个月前&#xff0c;受到一篇推文的启发 https://x.com/mtrainier2020/status/1802941902964277379 &#xff0c;我突然想到可以借助 git alias 添加一些小命令&#xff0c;加速我的 git workflow 流程&#xff0c;于是我花了两个小时的时间进行工程封装&#xff0c;并发布了 …

C#-类:声明类、声明类对象

一&#xff1a;类的声明 class 类名 {//特征——成员变量//行为——成员方法//保护特征——成员属性//构造函数和析构函数//索引器//运算符重载//静态成员 }类名&#xff1a;帕斯卡 同一个语句块中的不同类 不能重名 二&#xff1a;声明类对象 2.1 类的声明 ≠ 类对象的声…

【学习enable_if模板, 学习unqiue_str 删除操作】

enable_if 是 C 标准库中的一个模板结构体&#xff0c;它用于条件编译和 SFINAE&#xff08;Substitution Failure Is Not An Error&#xff09;。enable_if 的主要作用是通过条件编译来控制模板的实例化&#xff0c;从而实现条件编译和 SFINAE。 1. enable_if 的基本用法如下…

AIGC产品经理高频面试题❗️看完的都拿高薪了

&#x1f914;️如果你正在考虑找AI产品经理相关的工作, 建议好好准备这些面试问题, 如果想要更加详细的回答可以直接询问海螺AI哦! 谁用了不说一句: AI真的太适合准备面试啦(&#x1f640;尖叫抛开 之后会分享更多岗位的面试题目, 以及如何用AI准备面试的tips哦! 大模型&A…

【VS+QT】联合开发踩坑记录

最新更新日期&#xff1a;2024/11/05 0. 写在前面 因为目前在做自动化产线集成软件开发相关的工作&#xff0c;需要用到QT&#xff0c;所以选择了VS联合开发&#xff0c;方便调试。学习QT的过程中也踩了很多坑&#xff0c;在此记录一下&#xff0c;提供给各位参考。 1. 环境配…