当前位置: 首页 > news >正文

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

相关文章:

  • 代理模式 - Flutter中的智能替身,掌控对象访问的每一道关卡!
  • JavaScript中的回调函数详解
  • Springboot 集成 SpringBatch 批处理组件
  • 软件著作权人的权利
  • 【系统分析师】高分论文:论软件开发模型及应用
  • GitHub vs GitLab 全面对比报告(2025版)
  • 大模型小模型选型手册:开源闭源、国内国外全方位对比
  • Vulkan 学习(18)---- 使用 ValidationLayer
  • Function Calling与MCP的区别
  • python训练day44 预训练模型
  • Windows系统安装鸿蒙模拟器
  • 原型设计Axure RP网盘资源下载与安装教程共享
  • wpf的Binding之UpdateSourceTrigger
  • Go语言--语法基础6--基本数据类型--数组类型(2)
  • MATLAB GUI界面设计 第七章——高级应用
  • 领域驱动设计(DDD)【26】之CQRS模式初探
  • 大语言模型训练阶段
  • Tang Prime 20K板OV2640例程
  • 30套精品论文答辩开题报告PPT模版
  • (八)聚类