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

爆火 OpenClaw「龙虾」从 0 到 1 保姆级全指南:安装→QQ 机器人→运维→卸载全流程,附全网高频报错解决方案

爆火 OpenClaw「龙虾」从 0 到 1 保姆级全指南:安装→QQ 机器人→运维→卸载全流程,附全网高频报错解决方案

引言:OpenClaw:一爪入魂,万事自动。 🔥 前言:为什么全网都在「养龙虾」? 最近 AI 圈顶流非 OpenClaw(昵称「龙虾」)莫属! 这个能住在你电脑里的 AI 智能体,不仅能读写本地文件、操控浏览器、自动化办公、一键搭建网站,甚至能接入 QQ 变身私人机器人,让你随时随地都能「养虾」调用。 但随之而来的是乱象丛生:网上出现数百元的上门安装服务,甚至深圳腾讯大厦门口曾出现千人排队免费安装的盛况。其实自己安装全程免费,30 分钟就能搞定,还能彻底规避他人操作电脑带来的数据泄露风险! 本文整合OpenClaw 官方权威文档+ 全网高频踩坑解决方案,带你从 0 到 1 零失败上手,从安装配置、QQ 机器人接入、日常运维到彻底卸载,保姆级一步到位,新手也能轻松玩转。 📋 前置准备与安全红线 1.

机器人远程控制终极指南:免费手机AR技术快速上手

机器人远程控制终极指南:免费手机AR技术快速上手 【免费下载链接】lerobot🤗 LeRobot: State-of-the-art Machine Learning for Real-World Robotics in Pytorch 项目地址: https://gitcode.com/GitHub_Trending/le/lerobot 还在为专业机器人控制器的高昂价格而烦恼吗?🤔 今天我要分享一个革命性的解决方案:用你的智能手机实现专业级机器人远程控制!通过LeRobot项目,任何人都能在30分钟内搭建完整的手机AR控制系统,无需任何额外硬件投入。 为什么选择手机AR控制机器人?✨ 传统机器人控制需要专用手柄、编程软件或复杂的控制面板,而手机AR控制技术彻底颠覆了这一模式: * 零成本投入:利用现有手机,无需购买额外设备 * 直观操作:AR界面让机器人控制像玩游戏一样简单 * 跨平台兼容:支持iOS和Android系统 * 专业精度:实现6自由度精准控制,满足工业级需求 快速入门:5步搭建手机控制环境 🚀 第一步:环境准备 确保你的设备满足

配置钉钉龙虾OpenClaw机器人调用OpenMetadata

配置钉钉龙虾OpenClaw机器人调用OpenMetadata

目录 * 一、前言 * 1️⃣钉钉(DingTalk) * 2️⃣OpenClaw * 3️⃣OpenMetadata * 4️⃣MCP(Model Context Protocol) * 二、安装OpenClaw * 三、配置OpenClaw钉钉机器人 * 四、调用OpenMetadata MCP 一、前言 先介绍下这四个工具/协议的定位与核心能力,本文将从零开始配置。 1️⃣钉钉(DingTalk) 阿里巴巴旗下的企业协作平台,2014年上线,是中国市场份额最大的企业即时通讯与办公套件之一。 核心能力包括:即时消息与视频会议、考勤打卡与审批流、企业通讯录、低代码应用搭建(宜搭)、以及近年来整合的 AI 助理功能。它更像一个"企业操作系统",把 HR、OA、协同文档、

FPGA 跨时钟域 CDC 处理:3 种最实用的工程方案

本人多年 FPGA 工程与教学经验,今天跟大家聊一个重点——跨时钟域 CDC,这可是项目里最容易出玄学 bug、最难复现、最难定位的一类问题,新手必踩坑,老手也得谨慎! 还是老规矩,不搞虚的、不扯理论,只给大家工程里真正在用、稳定可靠、可直接复制上板的3种方案,不管是自学、做项目,还是面试,都能用得上、能拿分。 1. 什么是跨时钟域 CDC? 不用记复杂定义,简单说清楚3个关键点,就完全够用: * 核心场景:信号从一个时钟域(比如clk_a)传到另一个时钟域(比如clk_b); * 触发条件:两个时钟的频率不同,或者相位无关(没有固定的时间关系); * 直接后果:如果不做处理,直接打拍会出现亚稳态,进而导致数据错误,严重的还会让整个系统死机。 划重点:只要是多时钟系统,就必须做 CDC 处理,