XCTF-Web新手区刷题-WriteUp

XCTF-Web新手区刷题-WriteUp

前言

本文章主要是博主刷的题目+题解,供参考:)


view_source-(★)

在这里插入图片描述


跳转主页后直接F12查看源码发现注释的部分就是flag。


get_post-(★)

获取场景F12进入开发者模式进去HackBar功能(Google商店的扩展插件)

在这里插入图片描述

在url给网址添加上要求的Get请求,然后点击Execute执行

在这里插入图片描述

再点击 Use POST method 写入对应的Post要求然后执行

在这里插入图片描述


flag就出来了。


robots-(★)

打开靶机地址,发现什么都没有,F12发现flag也不在,此题需要使用robots协议的知识

robots 协议(robots.txt)是一种网站用来告知搜索引擎哪些页面或路径可以抓取、哪些不应抓取的约定规则。但是,这个robots协议不是防火墙,也没有强制执行力,搜索引擎完全可以忽视robots.txt文件去抓取网页的快照。
在这里插入图片描述


我们访问robots.txt,发现了一个不让访问的地址,但是我们可以访问到,
所以我们接着访问

在这里插入图片描述


最后发现flag就在这里。


backup-(★)

发现需要寻找备份文件,然后我们这里使用kali里面的dirsearch工具扫描即可

Kali中的dirsearch安装步骤:sudo apt updatesudo apt install dirsearch
在这里插入图片描述

执行后发现了一个index.php的备份文件,进行访问

在这里插入图片描述


然后会下载一个bak文件

在这里插入图片描述


在这里插入图片描述


打开后发现flag就在这里。


Tip:
Cookie 是网站存储在用户浏览器中的一小段数据,用于在多次请求之间识别用户并保存状态信息(如登录状态、偏好设置)。
在这里插入图片描述


打开靶机网站后,点击应用找到Cookie然后查看到有一个cookie.php,然后我们进行访问

在这里插入图片描述


让我们看响应,然后我们在网络处进行查看

在这里插入图片描述


随后发现Flag。


disabled_button-(★)

在这里插入图片描述


拿到题目后发现flag确实如题目所说的不能点击的按钮,查看cookie发现没有东西,然后查看代码部分,发现按钮部分是一个表单的格式

在这里插入图片描述


发现是disabled,我们直接将其删除即可,发现flag可以点击了

在这里插入图片描述

点击后出现flag

在这里插入图片描述


我们还可以在HackBar中发现这是发送了一个Post请求

在这里插入图片描述
Note
在 HTML 中,disabled 是一个布尔属性。对于这类属性,浏览器并不关心你给它赋了什么值,它只关心这个属性是否存在,只要标签内出现了 disabled 这个单词,浏览器都会统一理解为:这个插件是被禁用的。

simple_js-(★★★)

打开靶机网站,发现要求输入一个密码,我们肯定是不知道的,然后随便填后出现串提示

在这里插入图片描述


这里知道密码是错的,然后还被嘲讽了,我们点击F12进入开发者模式查看代码

在这里插入图片描述


发现head标签里面这么大一串 js 代码,分析一下,发现下面有一个window.prompt的窗口提示,显然是与我们刚进来时一样的,然后会有一个alert,其中执行dechiffre函数,传入的是我们输入的值,我们继续看这个函数

在这里插入图片描述


发现其中的形参传进去后给了tab变量,后面赋值情况全都是被tab2给覆盖了,所以这个函数结果与形参根本没有关系,同样和我们的输入也没有关系。

在这里插入图片描述


随后我们发现这里有一长串编码的字符串,在python中打印出来是这样的

在这里插入图片描述


在这里插入图片描述


发现是一串ASCII码值,我们只需要写一个脚本把 “,” 分离出来,然后再把ASCII码转换为字母就可以了。

在这里插入图片描述


最后结果如下:

在这里插入图片描述


直接将这个用规定Flag格式包裹起来提交即可。


xff_referer-(★★)

Note
X-Forwarded-For(XFF)
:XFF 是代理在转发请求时,为了让后端服务器知道“请求最初来自谁”而附加的请求头。
HTTP Referer:用于告知服务器当前请求是从哪个页面跳转或发起的 HTTP 请求头。

打开靶机

在这里插入图片描述


发现有一串信息,根据题目可知道和 xff 有关,因为可以用 xff 来知道最初一定来自该指定 ip 地址

在这里插入图片描述


使用HackBar在此处添加上 xff 然后执行

在这里插入图片描述


发现中间的文字改变了,又要求必须来自某一个网址,而这恰好又和 referer 相关

在这里插入图片描述


添加后点击执行

在这里插入图片描述


提交该flag即可。


weak_auth-(★)

打开靶机网址

在这里插入图片描述


发现是一个登录界面,我们先随便输入试一下

在这里插入图片描述


在这里插入图片描述


然后发现需要我们以 admin 的用户名形式进行登录,我们再次以 admin 用户名,密码随便输入试一下

在这里插入图片描述


在这里插入图片描述


密码不正确,我们可能需要对密码进行爆破得到结果

在这里插入图片描述


首先我们得在 SwitchyOmega 插件中将代理服务器设置为一个本地回环的地址,便于我们进行抓包,此处我已经设置好了

然后我们打开 BurpSuite

在这里插入图片描述


点击代理选项卡,然后点击代理设置查看代理监听器

在这里插入图片描述


设置为我们的本地回环地址

在这里插入图片描述


然后退出来将拦截开启

在这里插入图片描述


回到页面将代理开启,此时为本地回环,然后再随意输入一个密码

在这里插入图片描述

发现 burp 已经抓到了,并且能看到我随便输入的密码为123

在这里插入图片描述

右键将它发给 Repeater

在这里插入图片描述


然后在 Repeater 中点击发送

在这里插入图片描述


右边说我们需要一个字典,所以坐稳了本题是需要进行爆破了

在这里插入图片描述


返回代理部分,然后将其发到 intruder 部分

在这里插入图片描述


在 payload 区域将自己准备好的字典加载上去

在这里插入图片描述

将 payload 加载到指定位置,此处就是 password 后面,然后点击 Attack 开始攻击

在这里插入图片描述


爆破结束通过长度排序,发现密码为123456

在这里插入图片描述


选中后查看响应,发现flag


command_execution-(★★)

打开靶机地址

在这里插入图片描述


发现和ping命令有关,我们随便ping一下

在这里插入图片描述

这里我们ping一下本地回环,发现执行成功了,通过命令格式发现 -c 这种一般是Linux的命令格式

在这里插入图片描述

我们使用管道符 | 来进行操作,发现可行

Note
Linux中的管道符 |
:将前一个命令的输出直接传递给下一个命令作为输入。
在这里插入图片描述


使用 ls /来查看根目录,没有有用信息,继续尝试家目录,因为一般 flag 或者重要信息一般会藏在根目录或者家目录中

在这里插入图片描述


使用 ls /home 发现 flag 就在家目录下

在这里插入图片描述


最后使用 cat /home/flag.txt 查看命令,查看对应家目录下的 flag 文本,得到flag。


simple_php-(★)

打开靶机地址
发现一串

在这里插入图片描述


发现是一段简短的php代码,对代码进行分析,看到判断部分,发现是一个 松散比较

在这里插入图片描述

我们可以通过PHP 类型比较表查看相关信息,
这里我们让a弱等于0为true的都可以,这里我们选择false

在这里插入图片描述


以GET形式传入变量后发现前半段的flag已经出现了,我们继续分析变量b

此处涉及了一个 is_numeric函数

Note
is_numeric
:检测变量是否是数字或数字字符串

所以if判断如果简单思考发现也是矛盾的

在这里插入图片描述


我们这里输入数字大于了1234,但是在函数 is_numeric 处就已经退出了,那如果不能为数字,后续的数字比较判断就不能执行

在这里插入图片描述

所以这里也涉及了php的特性,我们可以在这个大于1234的数字后面加上一个字符,函数 is_numeric 不会认为这是一个数字所以会放行,然后比较的时候只会对数字进行比较,比较到a时候就截至,此时大于1234,故flag出现。


总结

本套题主要覆盖了以下 Web 安全核心漏洞类型:

  • 信息泄露:view_source / robots / backup
  • 前端绕过:disabled_button / simple_js
  • 协议层问题:get_post / cookie / xff_referer
  • 认证问题:weak_auth
  • 高危漏洞:command_execution / simple_php

适合作为 Web CTF 入门训练靶场。

Read more

Telegram中文生态探索:@letstgbot 中文群组频道搜索机器人的技术解析与开发实践

Telegram中文生态探索:@letstgbot 中文群组频道搜索机器人的技术解析与开发实践

在Telegram(简称TG)这个全球化的即时通讯平台上,中文用户群体日益壮大。然而,由于Telegram官方搜索功能对中文支持有限,许多用户在寻找高质量群组、频道、机器人或贴纸时常常面临“找群难、找资源更难”的痛点。@letstgbot(LetsTG官方搜索机器人)正是针对这一场景诞生的开源友好型中文搜索引擎工具。它通过Telegram Bot机制,为用户提供高效、精准的中文社群发现服务。本文将从技术原理、使用方法、API集成到二次开发实践,全方位解析@letstgbot,帮助开发者与普通用户更好地理解和利用这一工具,同时也分享Telegram Bot开发的通用知识点。 一、Telegram中文搜索的背景与挑战 Telegram作为MTProto协议驱动的开源通讯软件,其生态高度依赖用户自建群组与频道。中文用户主要集中在科技、学习、资源分享、兴趣爱好等领域,但官方搜索仅支持英文关键词的精确匹配,对中文分词、模糊语义的支持较弱。这导致:新手难以快速发现优质中文社群;群管理员难以有效推广自己的群组/频道;开发者难以构建智能化的社群推荐系统。 LetsTG平台(官网letstg.c

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装 前言 在进行 Flutter for OpenHarmony 的社交或客户支持类应用开发时,除了核心的 WebSocket 传输,如何规范化定义“消息(Message)”的数据结构以及处理复杂的对话逻辑状态,往往决定了项目的后期维护性。bavard 是一个专为高度语义化聊天交互设计的协议封装库。它能让你在鸿蒙端以极具逻辑感的对象模型来驱动对话流。本文将带大家了解如何利用 bavard 构建标准化的聊天架构。 一、原理解析 / 概念介绍 1.1 基础原理 bavard 将一次对话拆解为“参与者(Participants)”、“话题(Topics)”和“原子消息(Discrete Messages)”。它提供了一套完整的状态机,用于驱动从“

GLM-4.6V-Flash-WEB模型能否识别食物种类并估算热量?

GLM-4.6V-Flash-WEB模型能否识别食物种类并估算热量? 在智能健康管理逐渐走入日常的今天,一个看似简单却长期困扰开发者的问题浮出水面:用户拍一张餐食照片,AI能不能立刻告诉我“这顿饭大概多少大卡”?过去,这类功能依赖复杂的系统流水线——图像先由CNN模型分类,再匹配数据库中的营养信息,最后拼接成回答。流程冗长、延迟高、维护成本大,用户体验往往大打折扣。 而如今,随着多模态大模型的成熟,一种更简洁、更高效的解决方案正在成为现实。智谱AI推出的 GLM-4.6V-Flash-WEB 模型,正是这一趋势下的代表性产物。它不仅能在毫秒级时间内“看懂”图片内容,还能结合自然语言指令进行推理,直接输出如“一碗红烧肉配米饭,估计约850千卡”这样的结构化语义结果。那么问题来了:这个轻量级模型,真能胜任食物识别与热量估算这种对精度和常识都要求较高的任务吗? 答案或许比我们想象的更乐观。 从架构设计看能力边界 GLM-4.6V-Flash-WEB 并非凭空而来,它是GLM系列在视觉理解方向上的又一次轻量化演进。名字本身就透露了关键信息:“GLM”代表通用语言模型底座,“4.6V

当WebGL遇上跨域:一个二进制数据流的性能优化实验

WebGL跨域纹理加载:二进制数据流方案性能优化实战 在WebGL游戏开发中,纹理加载是影响性能的关键环节之一。当开发者尝试从不同域加载纹理资源时,常常会遇到Failed to execute 'texImage2D'或texSubImage2D的安全错误。这个看似简单的跨域问题背后,隐藏着浏览器安全策略与性能优化的深层博弈。 1. 跨域纹理加载的核心问题解析 WebGL的安全限制源于Canvas的"污染"概念。当尝试使用跨域图像作为纹理时,浏览器会阻止WebGL操作,防止潜在的数据窃取风险。传统解决方案通常围绕CORS(跨域资源共享)展开,但这往往带来额外的性能开销。 关键限制因素: * Tainted canvases错误触发条件:任何跨域图像未经CORS许可直接用于WebGL纹理 * 内存占用差异:不同加载方式对GPU内存的影响可达30%以上 * 主流浏览器对二进制流处理的兼容性差异 实际测试发现,在Chrome 112+版本中,使用Blob加载4K纹理比传统CORS方案节省约18%的内存峰值 2. 二进制数据流方案对比测试 我们针对三种主流传输方式进行