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

得而不惜就该死!

--章总

开始新的篇章!

零、目录

一、实验准备

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.xdnf.cn/news/7219.html

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

相关文章

AI驱动的医疗创新:信息抽取与知识图谱在临床应用中的转变

一、思通数科平台支持多种输入格式&#xff0c;如电子病历、临床数据和医学文献等&#xff0c;并能将这些信息快速转换为结构化数据&#xff0c;包括自动360度不同角度的旋转识别&#xff0c;提升数据的可操作性和可检索性。通过我们的解决方案&#xff0c;医疗机构能够有效整合…

js | undefined vs null vs void 0

背景 你就说为啥吧&#x1f447; console.log(nullundefined,nullundefined); // true false console.log(null false,undefinedfalse) // fasle false console.log(0false,NaNfalse) // true falseconsole.log(0null,0<null); // false true console.log(0false,0<fa…

【YOLOv11[基础]】实例分割Seg | 导出ONNX模型 | ONN模型推理以及检测结果可视化 | python

本文将导出YOLO-Seg.pt模型对应的ONNX模型,并且使用ONNX模型推理以及结果的可视化。话不多说,先看看效果图吧!!! 目录 一 导出ONNX模型 二 推理及检测结果可视化 1 代码 2 效果图

qt QDataStream详解

1. 概述 QDataStream是Qt框架中的一个核心类&#xff0c;主要用于处理二进制数据的序列化和反序列化。它提供了高效、跨平台的方式&#xff0c;将C数据结构转化为字节流&#xff0c;便于在网络传输、持久化存储等场景下使用。QDataStream可以处理包括整数、浮点数、布尔值、字…

云专线优势有哪些?对接入网络有什么要求?

云专线是一种连接企业本地数据中心与云服务提供商之间的专用网络连接方式&#xff0c;具有以下优势&#xff1a; 高安全性&#xff1a;云专线提供了物理隔离的数据传输通道&#xff0c;减少了数据在公共互联网上传输时可能遭遇的安全风险。 低延迟&#xff1a;由于是直接连接&a…

使用python向钉钉群聊发送消息

使用python向钉钉群聊发送消息 一、在钉钉群中新建机器人二、使用代码发送消息 一、在钉钉群中新建机器人 在群设置中添加机器人 选择自定义 勾选对应的安全设置 完成后会展示webhook&#xff0c;将地址复制出来&#xff0c;并记录&#xff0c;后面会用到 二、使用代码发送消…

简单又便宜的实现电脑远程开机唤醒方法

现有的远程开机方案 1&#xff09;使用向日葵开机棒 缺点是比较贵一点&#xff0c;开机棒要一百多&#xff0c;而且查了评论发现挺多差评说不稳定&#xff0c;会有断联和无法唤醒的情况&#xff0c;而且设置也麻烦&#xff0c;还需要网卡支持WOL 2&#xff09;使用远程开机卡 …

Netty ByteBuf 分配 | 池化复用 、直接内存

Netty ByteBuf 分配 本文主要内容关于 ByteBuf 分配介绍&#xff0c;为了更好的理解本文&#xff0c;我们可以带着几个问题思考 在IO密集型业务场景下&#xff0c;可能涉及大量ByteBuf分配&#xff0c;这时我们需 要考虑会不会产生OOM会不会出现频繁GC会不会内存泄露 根据上…

推荐一款windows右键管理工具:ContextMenuManager

Windows右键菜单管理工具是一款可以为系统打造一个异常丰富的右键菜单组&#xff0c;能自定义添加右键菜单项和管理“发送到”及第三方程序添加的右键菜单项目。 主要功能 一个纯粹的Windows右键菜单管理程序 • 管理常见位置右键菜单、自定义添加右键菜单 • 启用或禁用文件…

#渗透测试#SRC漏洞挖掘#自动化脚本的编写01

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…

个人学习记录平台的

摘 要 随着互联网的不断发展&#xff0c;人们由Web 1.0以静态、单向阅读为主的只读式网络走向了以分享为内核的实时现代化网络&#xff0c;即Web 2.0时代逐渐向着Web 3.0迈进。 随着技术的不断更新迭代&#xff0c;互联网从业者也必须处于终身学习的状态&#xff0c;他们要不…

算法日记 14—16 day 二叉树

前两天没有更新&#xff0c;这次把之前的补上&#xff0c;大篇章。 直接冲&#xff01;&#xff01;&#xff01; 题目&#xff1a;找树坐下角的值 513. 找树左下角的值 - 力扣&#xff08;LeetCode&#xff09; 给定一个二叉树的 根节点 root&#xff0c;请找出该二叉树的 最…

第三十一章 Vue之路由(VueRouter)

目录 一、引言 1.1. 路由介绍 二、VueRouter 三、VueRouter的使用 3.1. 使用步骤&#xff08;52&#xff09; 3.2. 完整代码 3.2.1. main.js 3.2.2. App.vue 3.2.3. Friend.vue 3.2.4. My.vue 3.2.5. Find.vue 一、引言 1.1. 路由介绍 Vue中路由就是路径和组件的映…

特朗普钦定的编程语言!

大家好&#xff0c;我是程序员面试刷题平台的鸭鸭&#xff01; 鸭鸭昨天一直关注美国大选&#xff0c;最终川普获胜&#xff01;然后就刷到了一个图&#xff1a; 看到上面这张图片了吗&#xff1f; 你没有看错&#xff0c;特朗普也开始关心起 Java 了&#xff01;Java 的迷弟…

day20:三剑客——awk基础

一&#xff0c;概述 AWK 是一种用于处理文本和数据的编程语言&#xff0c;特别擅长用于处理格式化文本文件。它通过将输入数据分成字段&#xff0c;逐行进行处理&#xff0c;广泛应用于数据分析、文本处理和系统管理中。 二&#xff0c;使用方式 命令模式&#xff08;重点&a…

如何优化 B2B 转化率?这些步骤你不可不知

企业怎么才能把上网逛的人变成潜在买家&#xff0c;再进一步变成真金白银的付费客户呢&#xff1f;这对营销团队来说&#xff0c;可是头等大事。特别是在B2B这行&#xff0c;提升转化率&#xff08;CRO&#xff09;不光是任务&#xff0c;更是让营销更高效、收入噌噌涨的秘密武…

CPU Study-Multi-Port Cache

参考来源&#xff1a;《超标量处理器设计》—— 姚永斌 关于Multi-Port Cache可以参考&#xff1a;https://compas.cs.stonybrook.edu/~nhonarmand/courses/sp16/cse502/slides/04-caches.pdf 为了实现每个周期执行多条load/store指令&#xff0c;Cache必须支持多端口。 True…

Linux-c TCP服务模型

1、TCP模型&#xff0c;服务端与客户端的搭建时序图 2、TCP模型&#xff0c;在创建阶段和通信阶段&#xff0c;对套接字的理解 2.1、tcp连接阶段 2.2、tcp通信状态 一个服务端与多个客户端的通信状态 TCP与UDP的对比 &#xff08;下图是笔者理解所画&#xff0c;可能也许有错…

一文了解Android的Doze模式

Android 的 Doze 模式是一项省电功能&#xff0c;主要用于减少设备的功耗&#xff0c;特别是在屏幕关闭且设备长时间未被使用的情况下。Doze 模式在 Android 6.0&#xff08;API Level 23&#xff09;首次引入&#xff0c;并在后续版本中不断改进&#xff0c;以便更智能地管理后…

Redis设计与实现 学习笔记 第十六章 Sentinel

Sentinel&#xff08;哨岗、哨兵&#xff09;是Redis的高可用性&#xff08;high availability&#xff09;解决方案&#xff1a;由一个或多个Sentinel实例&#xff08;instance&#xff09;组成的Sentinel系统可以监视任意多个主服务器&#xff0c;以及这些主服务器属下的从服…