【ctfshow—web】——信息搜集篇1(web1~20详解)

2024-02-23 19:36

本文主要是介绍【ctfshow—web】——信息搜集篇1(web1~20详解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ctfshow—web题解

  • web1
  • web2
  • web3
  • web4
  • web5
  • web6
  • web7
  • web8
  • web9
  • web10
  • web11
  • web12
  • web13
  • web14
  • web15
  • web16
  • web17
  • web18
  • web19
  • web20

web1

题目提示

开发注释未及时删除

那就找开发注释咯,可以用F12来查看,也可以Ctrl+U直接查看源代码呢

在这里插入图片描述
就拿到flag了
在这里插入图片描述

在这里插入图片描述

web2

题目提示

js前台拦截 === 无效操作

沿用web1的思路,发现右键点不了了,F12也没反映了,这样可不行,我要拿到我最爱的flag!qwq
但是Ctrl+U还是可以正常用的

在 JavaScript 中,=== 是严格相等运算符,用于比较两个值的类型和数值。如果前台拦截中提示 “===
无效操作”,可能是因为在拦截的代码中,使用了不正确的语法或者操作方式导致了这个错误。

在进源码拿到flag的同时,发现
在这里插入图片描述

> window.oncontextmenu = function(){return false}; 	
> window.onselectstart = function(){return false}; 	
> window.onkeydown = function(){if (event.keyCode==123){event.keyCode=0;event.returnValue=false;}};

分析易得这段代码是用来禁止在网页上右键点击(禁用上下文菜单)、禁止选择文本和禁止按下 F12 键打开开发者工具的操作。具体功能解释如下:

window.oncontextmenu:这行代码将右键点击事件的默认行为禁止,即禁用了浏览器的上下文菜单。

window.onselectstart:这行代码阻止了文本被选中,使得用户无法通过鼠标选择页面上的文本内容。

window.onkeydown:这行代码捕获键盘按下事件,当按下的键为 F12 时,将其事件码设置为 0 并且取消默认行为,从而阻止了按下F12 键打开浏览器的开发者工具。

web3

题目提示

没思路的时候抓个包看看,可能会有意外收获

他让我们抓包那就抓吧,打开抓包工具burpsuite,再熟练的打开代理

肯定有人说这也没啥啊,
在这里插入图片描述
确实没啥,那就点点看呗,点到hex里面的时候,发现藏在这里的flag,拿下
在这里插入图片描述
当然在前端的网络里面也可以看到这个flag
在这里插入图片描述

web4

题目提示

总有人把后台地址写入robots,帮黑阔大佬们引路。

那就得知道在网络上的robots是什么

robots.txt是一种文本文件,用于向网络爬虫(如搜索引擎的爬虫)提供网站访问的指导。它位于网站的根目录下,通过规定哪些页面可以被爬虫访问,以及哪些页面应该被忽略,来控制搜索引擎对网站内容的抓取和索引。

通过编辑robots.txt文件,网站管理员可以告诉搜索引擎爬虫哪些页面应该被排除在外,以保护隐私或防止搜索引擎浪费资源爬取不必要的页面。同时,也可以使用robots.txt来指示搜索引擎爬虫对特定页面的抓取频率限制,以避免对服务器造成过大负担。

然而,需要注意的是,robots.txt只是一种约定和建议,而并非强制规定。善意的搜索引擎会尊重robots.txt文件的指示,但恶意的爬虫可能会无视这些规则。

就拿百度的看看https://www.baidu.com/robots.txt
这里面的内容是这样的,大多数就是一些目录,如下图
在这里插入图片描述
知道这个就好做了,直接在后面加上robots.txt
在这里插入图片描述
发现个关于flag的文件,继续拼接,成功拿下flag。
在这里插入图片描述

web5

题目提示

phps源码泄露有时候能帮上忙

疑惑?什么是phps

phps即为 PHP Source。PHP Source 由 The PHP Group 发布,是最通用的关联应用程序。

phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。其实,只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型

已知站点是php搭建的
在这里插入图片描述
而且默认建站规则都有index.php
联想到可能是index.phps
那就实践试试,在原网页的请求上加上/index.phps,这道题之后会给下载这个文件
文件下载好后用正在使用的浏览器打开,打开后看到是空白网页
这时候查看这个网页源码即可从注释中得到flag
直接用burpsuite抓包也可以直接回显出来,成功拿下flag
在这里插入图片描述

web6

题目提示

解压源码到当前目录,测试正常,收工

条件反射www.zip,别问为什么,问就是经验,常见的网站源码备份文件

常见的网站源码备份文件后缀

• tar
• tar.gz
• zip
• rar
常见的网站源码备份文件名
• web
• website
• backup
• backup
• www
• wwwroot
• tempWeb.tar
Web.
Web.
Web.website.
website.
website.
website.backup
backup
backup
backupbackup
backup
backup
backupwww
www
www
wwwwwwroot
wwwroot
wwwroot
wwwroottemp
temp
temp
temp

拿下flag
在这里插入图片描述
提示在fl000g.txt下,那么在URL后加上这个txt,成功拿下flag!

web7

题目提示

版本控制很重要,但不要部署到生产环境更重要。

根据提示说的什么不要部署在生产环境什么的不太懂,反正就肯定是信息泄露嘛,继续保持开发者工具、抓包、dirsearch三连,dirsearch发现可以访问/.git/
在这里插入图片描述

尝试访问一下,成功得到flag

web8

题目提示同web7一样 这道题和上面一道题类似,都是版本控制器问题 常用的就是Git和SVN上面那题用的是/.git/

这一题只需要将git改为svn即可

在这里插入图片描述

web9

题目提示

发现网页有个错别字?赶紧在生产环境vim改下,不好,死机了

根据提示,在Linux生产环境上使用vim或者vi做修改时,会生成一个swp为后缀的文件

第一次意外退出生成的是.swp
第二次意外退出生成的是.swo
第三次为.swn
因此可以尝试打开第一次退出时产生的这个文件,输入/index.php.swp
会下载出文件
打开即可得到flag
在这里插入图片描述

在这里插入图片描述

web10

题目提示

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

饼干?嘿嘿嘿好吃😋喜欢吃饼干,不对,cookie在这里好像不是饼干的意思,那是什么呢?

Cookie是一种存储在用户计算机上的小型文本文件。它由网站通过用户的浏览器创建并存储在用户的硬盘上。当用户访问同一个网站时,浏览器会将该网站的Cookie发送回服务器,以便识别用户、跟踪其活动和提供个性化的服务。

Cookie通常用于以下目的:

会话管理:通过保存用户的会话信息,使用户在同一网站上进行多个请求时保持登录状态。 用户偏好:记录用户的偏好设置,如语言选择、字体大小等。
购物车功能:在电子商务网站上,Cookie可以帮助存储用户的购物车内的商品信息。
广告定向:广告公司可以使用Cookie来跟踪用户的浏览行为,并根据其兴趣向其展示相关广告。
网站分析:网站管理员可以使用Cookie来收集用户访问网站的统计数据,从而改进网站的性能和用户体验。
需要注意的是,Cookie只能存储少量的数据,并且是明文存储在用户设备上的,因此应谨慎处理敏感信息,同时用户可以通过浏览器设置来控制Cookie的接受与拒绝。

好好好,cookie是这样的是吧,那我们怎么得到cookie呢,很简单,抓包or直接在F12里的 network找
在这里插入图片描述
很明显的看到cookie里的flag就得到了,不过还得url编码下,%7B和&7B是左右花括号
在这里插入图片描述
成功拿下flag!或者按下面的网络里得到flag
在这里插入图片描述

web11

题目提示

域名其实也可以隐藏信息,比如flag.ctfshow.com 就隐藏了一条信息 由于动态更新,txt记录会变 最终flag
flag{just_seesee}

Unlock Hint for 0 points 通过dns检查查询flag https://zijian.aliyun.com/ TXT
记录,一般指为某个主机名或域名设置的说明。

查找flag.ctfshow.com域名下的txt记录

刚拿到题目有点懵,还给了提示,仍然一头雾水,看了半天大概明白是了跟踪路由然后返回域名设置的,
那么跟踪路由命令nslookup,要查询域名的指定解析类型的解析记录

格式:nslookup -type=type domain [dns-server]

其中 type 为解释类型
在这里插入图片描述

那么接下来就好办了,直接命令一把梭

nslookup -qt=txt flag.ctfshow.com

但是本地不知道哪里出问题了运行不出来
在这里插入图片描述

只能依托gpt师傅帮帮忙了
在这里插入图片描述
good!!!成功拿下!!!

web12

题目提示

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

根据题目提示,我们访问robots.txt,获取到后台地址

robots.txt下发现/admin/目录
在这里插入图片描述
然后我们访问一下后台

账号名直接盲猜admin,密码是网站底部的这串数字,372619038
在这里插入图片描述
在这里插入图片描述
登录后成功拿下flag。

web13

题目提示

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

既然跟默认密码有关,可能是密码泄露,在开发文档中极有可能泄露
在网站找到一个超链接

在这里插入图片描述

访问后,发现开发者在文档中写了自己的后台地址和账号密码

在这里插入图片描述
这里your-domain换成自己的做题环境,访问后台地址

https://your-domain/system1103/login.php
在这里插入图片描述
在这里插入图片描述
拿下flag。

web14

题目提示

小0day:某编辑器最新版默认配置下,如果目录不存在,则会遍历服务器根目录
有时候源码里面就能不经意间泄露重要(editor)的信息,默认配置害死人

查看网页源代码、抓包、dirsearch,dirsearch发现存在可以访问的/editor/,和题目提示很像,进去看看
打开网站,根据提示访问http://your-domain/editor/
发现了个编辑器
在这里插入图片描述点击图片空间或者文件空间时,发现居然能直接访问服务器根目录
在这里插入图片描述
在这里插入图片描述
一路从根目录到网站目录找,在var/www/html/editor/旁边发现了一个叫nothinghere的文件夹,那肯定里面有东西了,发现fl000g.txt 直接抓包访问获得flag
/editor/attached/image/var/www/html/nothinghere/fl000g.txt
在这里插入图片描述

web15

题目提示

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

根据题目提示邮箱,在网页底部发现一个邮箱

在这里插入图片描述
再url后面加上admin访问一下后台
在这里插入图片描述

有一个忘记密码选项,点击一下

在这里插入图片描述
有密保问题,联想到qq邮箱,搜索一下qq

在这里插入图片描述
得到地址为西安,于是提交西安得到重置后的密码
在这里插入图片描述

得到密码为admin7789,账号还是admin,登录后获得flag

web16

题目提示

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

php探针是用来探测空间、服务器运行状况和PHP信息用的,
探针可以实时查看服务器硬盘资源、内存占用、网卡流量、系统负载、服务器时间等信息。是一个查看服务器信息的工具。
比如查看服务器支持什么,不支持什么,空间速度等等状况!
根据提示用到php探针知识点
输入默认探针tz.php
打开后点击phpinfo就可以查看到flag

在这里插入图片描述

再点击phpinfo查看信息,搜索ctfshow得到flag
在这里插入图片描述

web17

题目提示

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

用dirsearch扫出url/backup.sql
打开靶机,直接用dirsearch扫描目录,扫出了/backup.sql
在这里插入图片描述

访问url/backup.sql,自动下载了backup.sql
打开backup.sql,即可获取flag
在这里插入图片描述

web18

题目提示

不要着急,休息,休息一会儿,玩101分给你flag

谢邀,玩了好几把,速度快的飞起,根本玩不了,作为一名ctfer怎么能玩游戏通关呢,必须得hack他
在这里插入图片描述
一般来说,这种游戏都是js里控制的,我们翻看js代码
在这里插入图片描述
解码147行的代码
在这里插入图片描述\u4f60\u8d62\u4e86\uff0c\u53bb\u5e7a\u5e7a\u96f6\u70b9\u76ae\u7231\u5403\u76ae\u770b\u770b

在这里插入图片描述
根据提示,访问110.php,构造url/110.php

得到flag
在这里插入图片描述

web19

题目提示

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

打开一个登录框,既然提示前端,那就看看源代码有没有什么线索
在这里插入图片描述
发现了一些奇怪的东西,分析复习分析在这里插入图片描述
一共两段js代码

function checkForm(){var key = "0000000372619038";var iv = "ilove36dverymuch";var pazzword = $("#pazzword").val();pazzword = encrypt(pazzword,key,iv);$("#pazzword").val(pazzword);$("#loginForm").submit();}
function encrypt(data,key,iv) { //key,iv:16位的字符串var key1  = CryptoJS.enc.Latin1.parse(key);var iv1   = CryptoJS.enc.Latin1.parse(iv);return CryptoJS.AES.encrypt(data, key1,{iv : iv1,mode : CryptoJS.mode.CBC,padding : CryptoJS.pad.ZeroPadding}).toString();
}

这段代码是一个用于在客户端对密码进行加密后再提交表单的函数。
它使用了 CryptoJS 库中的 AES 加密算法来对密码进行加密。具体来说,它做了以下几件事情:
获取输入框中 id 为 “pazzword” 的密码值。
通过指定的 key 和 iv 对密码进行 AES 加密。
将加密后的密码设置回输入框 “pazzword” 中。
提交表单。

需要注意的是,这段代码中使用的是 ECB 模式和 ZeroPadding 填充方式。在实际应用中,建议考虑使用更安全的加密模式(如 CBC 模式)和填充方式(如 PKCS7 填充)来加强安全性。

<!--error_reporting(0);$flag="fakeflag"$u = $_POST['username'];$p = $_POST['pazzword'];if(isset($u) && isset($p)){if($u==='admin' && $p ==='a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04'){echo $flag;}
}-->

这段代码是一个简单的 PHP 代码片段,用于处理用户提交的用户名和密码,并根据条件进行简单的验证,如果验证通过则返回一个标志。
具体来说,它做了以下几件事情:
关闭了错误报告输出,使得 PHP 不会输出错误信息到页面上。
定义了一个变量 $flag 并赋了一个值 “fakeflag”,这个变量可能在其他地方被使用。
从 POST 请求中获取了用户名和密码。
如果用户名和密码都被设置了,且用户名为 “admin”,且密码为特定的哈希值,则返回变量 $flag 的值。

结合以上几点来看:

密文输出编码: 十六进制hex 
偏移量iv: ilove36dverymuch 
密钥:0000000372619038
密文为: a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
模式为CBC
填充为ZeroPadding
编码为Hex

利用在线解密工具直接得到密码为:i_want_a_36d_girl
在这里插入图片描述
输入admini_want_a_36d_girl
登陆成功得到flag
利用hackbar或者burpsuite抓包发送post请求,post传参也可以得到username=admin&pazzword=a599ac85a73384ee3219fa684296eaa62667238d608efa81837030bd1ce1bf04
在这里插入图片描述

web20

题目提示

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

早期 asp+access 架构的数据库文件为db.mdb ,所以访问 /db/db.mdb 下载一个文件。
打开得到flag:flag{ctfshow_old_database}
在这里插入图片描述

这篇关于【ctfshow—web】——信息搜集篇1(web1~20详解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/739696

相关文章

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

Java Web指的是什么

Java Web指的是使用Java技术进行Web开发的一种方式。Java在Web开发领域有着广泛的应用,主要通过Java EE(Enterprise Edition)平台来实现。  主要特点和技术包括: 1. Servlets和JSP:     Servlets 是Java编写的服务器端程序,用于处理客户端请求和生成动态网页内容。     JSP(JavaServer Pages)

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

BUUCTF靶场[web][极客大挑战 2019]Http、[HCTF 2018]admin

目录   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 [web][HCTF 2018]admin 考点:弱密码字典爆破 四种方法:   [web][极客大挑战 2019]Http 考点:Referer协议、UA协议、X-Forwarded-For协议 访问环境 老规矩,我们先查看源代码

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

EasyPlayer.js网页H5 Web js播放器能力合集

最近遇到一个需求,要求做一款播放器,发现能力上跟EasyPlayer.js基本一致,满足要求: 需求 功性能 分类 需求描述 功能 预览 分屏模式 单分屏(单屏/全屏) 多分屏(2*2) 多分屏(3*3) 多分屏(4*4) 播放控制 播放(单个或全部) 暂停(暂停时展示最后一帧画面) 停止(单个或全部) 声音控制(开关/音量调节) 主辅码流切换 辅助功能 屏