Bugku——WEB篇(持续更新ing)

目录

一、滑稽

二、计算器

方法一

方法二

三、alert

四、你必须让他停下

五、头等舱

六、GET

七、POST

方法一

方法二

八、source

九、矛盾

十、备份是个好习惯

一、滑稽

1.启动环境后,访问URL,页面出现了一堆滑稽表情

2.按f12(或fn+f12)打开开发者工具查看网页源码,发现flag

二、计算器

启动环境后访问URL,出现了一个简单的数学计算题,输入答案时发现只能最多只能输入1位

方法一

按f12点击输入框,将maxlength的值改为3,输入正确答案即可得到flag

方法二

直接打开调试器在代码中搜索flag

三、alert

1.启动环境后访问URL,出现一个弹窗,点击确定后弹窗不断出现

2.直接按f12在调试器中查看网页源代码,在最后一行的注释中看到可疑信息

3.猜测应该是Unicode编码,解码后发现是flag

四、你必须让他停下

1.启动环境后访问URL,页面一直在不断刷新

2.使用burpsuit持续抓包,在下图出现时查看响应包

3.发送到repeater中查看响应包,响应包中发现flag

五、头等舱

1.启动环境后访问URL,网页源码和f12均没有什么发现

2.用burpsuite抓包,发送到repeater中查看响应包,在头部FLAG字段中发现flag

六、GET

1.启动环境后访问URL,页面出现一段代码

代码审计

        这段代码表示从 URL 中获取 what 参数,输出其值,并检查是否为 'flag' ,若匹配则额外输出 'flag{***}'。其中,$_GET 是 PHP 的一个超全局数组,用于获取通过 URL 查询字符串传递的参数。

2.根据代码的提示,在URL后拼接/?what=flag,页面回显flag

七、POST

启动环境后访问URL,页面出现一段代码

代码审计

        这段代码表示从 POST 请求获取 what 参数,输出其值,并检查是否为 'flag',若匹配则输出 'flag{***}'。其中,$_POST 是 PHP 的超全局数组,用于获取通过 HTTP POST 方法提交的数据(通常来自表单提交)。

方法一

使用火狐插件HackBar,选中Post data输入数据what=flag,页面回显flag

方法二

1.使用burpsuite抓包

2.发送到repeater中更改提交方式并插入内容what=flag,响应包中显示flag

八、source

1.启动环境后访问URL,页面没有什么信息

2.f12发现了一个flag,但是是假的flag

3.打开kali虚拟机,扫描网站目录

dirsearch -u http://117.72.52.127:14333/ -x 403

4.发现了一个flag.txt文件,也是假的

5.有许多git目录,应该是git源码泄露,访问url/.git/

git源码泄露是什么?

        git 源码泄露指的是通过git版本控制系统的某些操作或配置不当,导致存储库中的敏感信息(如源代码、配置文件、密钥等)被意外暴露给未经授权的访问者。.git/config 可能包含远程仓库 URL,.git/HEAD 指向当前分支,.git/objects 存储所有提交和文件内容。

与git相关的命令

git log:查看历史记录

git filter-branch 或 BFG Repo-Cleaner :删除敏感数据

git reflog:记录 HEAD 和分支的操作历史,用于恢复丢失提交或查看操作记录

git show:显示指定提交Git对象详细信息

6.使用wget将git源码下载下来,文件会存储到以url命名的文件夹中

​wget -r http://117.72.52.127:14333/

7.进入/.git目录下,查看下载文件,发现有三个文件和flag相关

8.依次查看三个文件,即可找到flag

九、矛盾

1.启动环境后访问URL,页面显示一段代码

代码审计

        这段代码表示从 URL 获取 num 参数,检查其是否为数值,输出该值,并检查是否等于 1,若等于则输出 'flag{********}'。is_numeric() 函数检查输入是否为数字类型,如果不是数字(例如字符串、数组等),则进入条件块。

PHP 的 == 比较会尝试将两侧值转换为相同类型后再比较,对于字符串和数字的比较,PHP 会将字符串转换为数字,如果字符串开头是有效的数字部分,则取该部分作为数值,否则转换为0。例如:

        "1abc" == 1 为 true,因为 "1abc" 被转换为 1

        "abc" == 1 为 false,因为 "abc" 被转换为 0 

        "1" == 1 为 true,因为 "1" 被转换为 1

2.在URL后拼接/?num=1aaa,页面回显num值与 flag

十、备份是个好习惯

1.启动环境后访问URL

2.打开kali虚拟机,扫描网站目录

​dirsearch -u http://117.72.52.127:17267/ -x 403

3.访问并下载index.php.bak文件,应该是一个index.php的备份文件

代码审计

        这段 PHP 代码的作用是从 URL 的查询字符串中提取参数,尝试解析为 $key1 和 $key2,计算它们的 MD5 哈希值,并通过检查哈希值相等但值不同的条件来输出存储在 flag.php 中的 $flag 变量拼接 "取得flag",然而由于 str_replace("key", "", $str) 删除了 "key" 前缀,需输入特定 MD5 碰撞对才能满足条件并获取 flag。

4.找到并拼接两个值不同但哈希值相同的字符串,页面回显flag

/?kkeyey1=MMHUWUV&kkeyey2=MAUXXQC

声明

1.本博客文章均为博主日常学习原创内容,转载请注明出处。

2.文章内容如有涉及侵犯您的知识产权和版权问题,请及时与我联系。

3.希望以上的学习经验分享能对您有所帮助。

4.本内容仅供学习和研究使用,严禁用于任何非法或不道德的行为,任何违反法律的行为将由行为人自行承担。

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

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

相关文章

Linux 网络命名空间的奥秘:深入解析struct net与内核模块编译陷阱

引言:网络隔离的基石 在Linux容器化技术(如Docker)和云计算网络中,网络命名空间是实现网络隔离的核心机制。每个隔离的网络环境都由一个关键的内核数据结构描述——struct net。这个结构体不仅是网络隔离的技术基础,也是内核开发者常遇到的编译陷阱源头。 一、解剖网络命…

idea的EasyCode插件连接瀚高数据库(APP)

文章目录 环境症状问题原因解决方案 环境 系统平台:Linux x86-64 Red Hat Enterprise Linux 7 版本:5.6.5 症状 客户在idea工具中使用EasyCode插件连接瀚高数据库的企业版时,连接设置的url中提示“jdbc:highgo不存在”的错误 问题原因 E…

VMware设置虚拟机为固定IP

1. 修改虚拟网络编辑器 打开虚拟机网络“编辑” 点击“VMnet8” 选择“NAT”模式 修改网关:前面的不要修改,最后一位设置为“1”,然后确定 记住这里的网关,后面的配置要保持一致 设置子网IP和子网掩码:一般就…

智核引擎融合生成式AI,重塑企业知识图谱与研发创新范式!

目录 系统架构设计核心实现步骤步骤1:知识图谱构建与数据预处理步骤2:生成式AI与知识图谱融合(RAG增强)步骤3:智能推理工作流 核心流程可视化企业级部署方案性能优化策略应用场景示例结语 本文将手把手实现企业级知识图…

LogisticRegression(solver = ‘lbfgs‘)的ConvergenceWarning问题解决

👦👦一个帅气的boy,你可以叫我Love And Program 🖱 ⌨个人主页:Love And Program的个人主页 💖💖如果对你有帮助的话希望三连💨💨支持一下博主 LogisticRegression的Co…

web3 docs

区块链重构信任机制,去中心化,用唯一的hash编号来实现防篡改。以数字货币的形式交易,个人持有唯一的数字秘钥(唯一,不可篡改) 详见 以太坊的白皮书 和 数字货币 (加密货币实现隐私交易) 底层基础的很多特点 1.例如p2p&#xf…

AI入门 | 计算自注意力时QK^T的计算复杂度是多少?

0. 背景 假设我们有两个矩阵: 矩阵 A,尺寸为 (n, d_k)矩阵 B,尺寸为 (d_k, n) 我们要计算它们的乘积 C A * B。 那么这个过程所需的计算量是多少? 1. 结果矩阵的尺寸 首先,结果矩阵 C 的尺寸是由第一个矩阵的行数…

NeRF-Lidar实景重建:大疆Mavic 4 Pro低成本建模方案(2025实战指南)

摘要 面对传统激光雷达建模​​成本高昂​​(单设备超$20万)与​​操作复杂​​的行业痛点,本文提出基于消费级无人机大疆Mavic 4 Pro的​​NeRF-LiDAR融合重建方案​​,实现厘米级精度建模成本降低至1/10。核心技术突破在于&…

x64dbg设置条件断点

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、x64是什么?二、条件断点1.CreateWindowExW函数设置当窗口名称为xxx字符串时候break总结前言 提示:这里可以添加本文要记录的大概内容: x64dbg设置条件断点 版本 2024 mar 27 提示:以…

RNN人名分类器案例

RNN人名分类器案例 1 任务目的: 目的: 给定一个人名,来判定这个人名属于哪个国家 典型的文本分类任务: 18分类---多分类任务 2 数据格式 注意:两列数据,第一列是人名,第二列是国家类别,中间用制表符号&q…

鸿蒙HarmonyOS 关于图片、视频的选择详解

背景 在聊天软件中,发送相册中视频和照片、用相机拍摄视频和图片发送是很常用的功能。在Android和iOS端,大部分应用都通过API方式定义UI来实现相册选择照片、视频,相机拍摄照片、视频,它们一般都支持以下功能: 相册选…

iOS 网络请求断连重试失败?抓包分析丢包原因的完整流程

在移动 App 的开发中,中断网络环境(如切换到飞行模式再回网)后,App 在重连过程中有时会出现请求未重新发送或丢包的情况。这类问题难重现、难定位,尤其在 iOS 平台上更容易被忽视。我们最近就遇到一个用户反馈“切换网…

使用 DHTMLX Gantt 添加迷你地图:提升大型项目可视化与导航体验

在应对数千个任务构成的大型项目时,DHTMLX Gantt 以其卓越的性能表现和流畅渲染能力广受欢迎。然而,在实际使用中,终端用户往往需要快速定位到时间线中的特定位置,这在面对庞杂任务结构时尤为困难。为此,DHTMLX 提供了…

ROM修改进阶教程------用于自启脚本来打开系统的一些常用开关等指令 备份收藏 【一】

在定制化rom中。有很多项目需要反编译系统的相关应用来实现。但有些功能项完全可以使用指令来更改。那么结合自启脚本就可以很方便的来实现很多功能。网络虽然有很多类似的指令,但一些相关定制化项目的指令很少见而且不全面。此博文将全面收录此类指令。方便rom修改用户借鉴参…

腾讯云TSE注册中心实战:Nacos高可用集群搭建与流量治理避坑指南

1. 为什么选择腾讯云TSE托管Nacos? 在微服务架构中,注册中心承担着服务发现与配置管理的核心职能。Nacos作为阿里开源的动态服务发现组件,已成为国内微服务生态的事实标准。腾讯云微服务引擎TSE(Tencent Cloud Service Engine&am…

领域驱动设计(DDD)【26】之CQRS模式初探

文章目录 一 CQRS初探:理解基本概念1.1 什么是CQRS?1.2 CQRS与CRUD的对比1.3 为什么需要CQRS? 二 CQRS深入:架构细节2.1 基本架构组成2.2 数据流示意图 三 CQRS实战:电商订单案例3.1 传统CRUD方式的订单处理3.2 CQRS方…

项目测试-接口测试

软件测试的分类 软件测试主要分硬件和软件 硬件测试: cpu,内存条,显卡...测试可以看得见摸得着的东西 软件测试: web,app,小程序... 测试可以看得见摸不着的东西 web端 web端是在电脑上常常使用的, 也可以称之为网站.(web端是B/S架构) web端的客户端是任何一个访问这个网…

相机的光圈

光圈(Aperture)是镜头中一个控制光线进入相机的开口,它在摄影中起着至关重要的作用。光圈的大小决定了进入相机传感器的光线数量,并影响曝光、景深、以及拍摄效果。光圈参数通常用f/值(光圈值)来表示&#…

HarmonyOS NEXT仓颉开发语言实战案例:小而美的旅行App

大家周末好,本文分享一个小而美的旅行app首页,效果图如下: 很显然这个页面还是使用List容器,页面两侧有统一的边距,我们可以在List容器统一设置: List(space:20){ } .padding(left:14,right:14,top:62) .w…

Python银行管理系统01升级(适合初学者)

目录 框架如下: 1. Account类 - 账户数据模型 2. Bank类 - 银行业务逻辑 3. BankApp类 - 图形用户界面 关键概念解析(适合初学者) 1. 面向对象编程(OOP)概念 2. Tkinter GUI编程基础 3. 数据持久化 4. 输入验证 学习建议 系统功能概览 完整代码: 在Python银行…