Bugku-web(bp)

Bugku-web(bp)

WriteUp1

题目信息

解题思路

打开页面,是一个登录页面

源码审计发现是个 form 表单提交

抓包,随便填写个密码提交观察

右键发送到重放器

点击发送

观察响应结果

发现有个 success.php 的页面,根据 JS 代码的 window.location.href 后面的地址知道,应该是访问服务器根路径下的 success.php 文件并携带查询参数

code 不等于 bugku10000 它才会走到 else,它来帮我们跳转到 success.php 并携带一个 code

所以猜测当账户密码正确时,会返回一个正确的code,错误时会返回bugku10000

猜测代码如下:

<?php // 获取提交的账号和密码 $username = $_POST['username']; // 假设表单字段名为username $password = $_POST['password']; // 假设表单字段名为password // 验证逻辑 - 实际中可能是查询数据库 $isValid = false; // 这里是实际的验证过程,比如查询数据库比对账号密码 // if (查询数据库验证成功) { // $isValid = true; // } // 根据验证结果设置不同的code if ($isValid) { // 账号密码正确,生成一个有效的code $code = generateValidCode(); // 生成类似'hacker1000'的有效code } else { // 账号密码错误,设置错误code $code = 'bugku10000'; } // 输出HTML页面,包含生成的code ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>登录检测</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link rel="stylesheet" href="layui/css/layui.css" media="all"> <style> </style> </head> <body> <div><div> <script> var r = {code: '<?php echo $code; ?>'} if(r.code == 'bugku10000'){ console.log('e'); document.getElementById('d').innerHTML = "Wrong account or password!"; }else{ console.log('0'); window.location.href = 'success.php?code='+r.code; } </script> </body> </html>

所以要爆破出来正确的密码,让 check.php 判断账号密码正确了才能有对的 code

所以使用密码字典开始尝试

题目中提示弱密码T1000,以z开头,把 z 开头密码挑出来然后在 burpsuite 里爆破 check.php 看结果

f = open('中国网民-弱密码字典 T1000.txt', 'r') # 文件名换成自己实际的 wf = open('以z开头的密码.txt', 'w') str = f.read() list = str.split('\n') for item in list: if item.startswith('z'): print(item) wf.write(item + '\n') 

结果如下

拿着新字典去爆破试试密码

右键发送到Intruder

添加payload

导入字典

点击开始攻击

发现响应的 length 全都一样长

已知 bugku10000 是不对的,而且刚才的 JS 代码告诉我们只要 code 的值不是 bugku10000,就会走 success.php 了,所以让 burpsuite 筛选下字符里不包含 bugku10000 的其他 code 值。或者一个一个点击查看每个密码的响应结果,看哪一个返回的code不是 bugku10000。

这里发现当密码为zxc123时返回结果不是bugku1000

当然,如果密码有很多的话,显然一个一个查看太费时间

应该筛选下字符里不包含 bugku10000 的其他 code 值

点击设置,找到检索匹配

勾选响应匹配的项

填写查找的字符串,点击添加

开始爆破观察特殊的 code 列

发现最后一个返回结果不一样

页面中输入密码zxc123

使用工具

Burp Suite

Pycharm

弱密码T1000

Flag

flag{94a3caa988cc28971f5d61c33c206e56}

总结

通过本题学到:

抓包

爆破

查找匹配

Read more

【实践】操作系统智能助手OS Copilot新功能测评

【实践】操作系统智能助手OS Copilot新功能测评

一、引言         数字化加速发展,尤其人工智能的发展速度越来越快。操作系统智能助手成为提升用户体验与操作效率的关键因素。OS Copilot借助语言模型,人工智能等,对操作系统的自然语言交互操作 推出很多功能,值得开发,尤其运维,系统操作等比较适用,优化用户与操作系统的交互模式。本次测评,按照测评指南进行相关测评,得出下面的测评报告。 二、OS Copilot简介         OS Copilot 是一款致力于深度融合于操作系统的智能助手,它旨在成为用户与操作系统交互的得力伙伴 。通过先进的自然语言处理技术和机器学习算法,OS Copilot 能够理解用户多样化的指令,将复杂的操作系统操作简单化。         在日常使用场景中,无论是文件管理、应用程序的操作,还是系统设置的调整,OS Copilot 都能提供高效的支持。例如,在文件管理方面,用户无需手动在层层文件夹中查找文件,只需通过描述文件的大致信息,如创建时间、文件内容关键词等,就能快速定位到目标文件。         对于应用程序,它不仅能根据用户的使用习惯智能启动,还能在应用程序运行时进行优化,确保

PyTorch 2.6+Stable Diffusion联动教程:云端GPU双开省80%

PyTorch 2.6+Stable Diffusion联动教程:云端GPU双开省80% 你是不是也遇到过这种情况:作为一名数字艺术生,手头有创意、有想法,但一打开本地电脑跑Stable Diffusion生成一张图就得等半小时,显存还经常爆掉?更别提想同时用PyTorch训练个小模型了——8G显存根本不够分。我试过很多方法,最终发现在云端用GPU资源双开PyTorch和Stable Diffusion,不仅流畅运行,还能省下至少80%的成本。 这篇文章就是为你量身打造的实战指南。我会带你一步步在ZEEKLOG星图平台部署预装PyTorch 2.6和Stable Diffusion的镜像环境,实现两个AI工具并行运行,彻底告别卡顿与等待。整个过程不需要你懂复杂的命令行操作,所有步骤我都整理成了可复制粘贴的代码块,小白也能轻松上手。 学完这篇教程后,你能做到: - 在云端一键部署支持PyTorch 2.6 + Stable Diffusion的完整环境 - 同时运行图像生成和模型训练任务,互不干扰 - 掌握关键参数设置,提升出图质量和训练效率 - 理解为什么云端方案比本地更省钱、更

【VSCode Copilot登录失败终极指南】:9大常见问题与高效解决方案

第一章:VSCode Copilot登录失败的典型表现 当使用 VSCode 中的 GitHub Copilot 插件时,用户在尝试登录过程中可能会遇到多种异常现象。这些表现不仅影响代码补全功能的正常使用,还可能干扰开发流程。以下是常见的登录失败典型表现。 认证窗口无法加载 部分用户在点击“Sign in to GitHub”后,浏览器或内置认证弹窗长时间停留在加载状态,最终显示空白页面或提示网络错误。这通常与本地网络策略、代理设置或防火墙规则有关。 登录成功但插件无响应 尽管认证流程显示已完成,Copilot 图标仍显示未登录状态,且不提供任何代码建议。此时可在命令面板(Ctrl+Shift+P)中执行以下命令检查状态: # 检查 Copilot 当前会话状态 Developer: Reload With Extensions Disabled # 重新启用后再次尝试 GitHub Copilot: Sign in to GitHub 错误提示信息汇总

极致压缩:Whisper.cpp 量化版本清单与 ggml 格式模型下载

Whisper.cpp 量化模型下载指南 Whisper.cpp 是 OpenAI Whisper 语音识别模型的高效 C++ 实现,支持量化技术来减小模型尺寸,实现“极致压缩”。量化通过降低模型参数的精度(如从 32 位浮点数到 4 位整数)来减少存储和计算需求,同时保持合理的准确性。ggml 格式是一种轻量级模型格式,专为资源受限设备优化。以下信息基于 Whisper.cpp 官方 GitHub 仓库(真实可靠),我将逐步引导您获取量化版本清单和下载链接。 1. 量化版本清单 Whisper.cpp 支持多种量化级别,每种对应不同的压缩率和精度权衡。以下是常见量化版本清单(基于最新官方数据): * q4_0:4 位量化,极致压缩,模型尺寸最小,适合内存受限设备(如嵌入式系统)。精度损失较高。