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

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 id="d"><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}

总结

通过本题学到:

抓包

爆破

查找匹配

http://www.jsqmd.com/news/550195/

相关文章:

  • Cursor滑跪开源技术报告:Kimi基模这样微调能干翻Claude
  • 马尔可夫链与蒙特卡洛模拟(MCMC)在贝叶斯参数估计与参数反演中的应用:通用实现模版的有效算法
  • 3步解锁Trilium Notes中文版:打造你的本地化知识管理利器
  • 企业级后台快速开发解决方案:Element-UI Admin全指南
  • 论文写作“黑科技”:书匠策AI,让课程论文创作如虎添翼!
  • DeepFilterNet实战指南:5步实现高质量语音降噪的完全手册
  • OpenClaw备份方案:百川2-13B模型与技能配置的容灾策略
  • 抖音弹幕抓取神器:DouyinBarrageGrab 3分钟快速上手教程
  • 如何高效解决Cursor试用限制?完整实用的解决方案指南
  • 从C3D到SlowFast:5种视频理解模型实战对比(附PyTorch代码)
  • BCI Competition IV 2a数据集:5个新手必犯错误与完整解决方案
  • 如何高效搞定PDF处理?Poppler Windows一站式解决方案
  • 精通上下文工程:解锁LLM潜能的四大关键阶段,打造理想AI工作环境!
  • 解锁论文写作新境界:书匠策AI——你的课程论文智囊团
  • SEO_2024年最新SEO趋势与高效优化方法介绍
  • SGMICRO圣邦微 SGM5348-12XTQ16G/TR TQFN-33-16 模数转换芯片ADC
  • Metabase安全警报:如何检测和防御CVE-2021-41277信息泄露漏洞
  • 百度网盘直链解析实战指南:高效获取真实下载地址的完整方案
  • 专利+1!咕泡科技创新实力再获权威认证!
  • 简历中关于分类的问题
  • 升鲜宝社区团购商城软件设计功能文档(含完整功能设计、业务流程图、数据字典、DDL 口径与后台权限设计)--生鲜配送供应链管理系统源码
  • 湖南品牌设计,打造企业视觉名片
  • 基于SpringBoot+Vue的传统服饰租赁与交易平台设计与实现
  • 利用快马ai快速生成spring boot整合mybatis的数据访问层原型
  • 4个步骤打造专业家庭KTV系统:UltraStar Deluxe开源K歌解决方案
  • C#.NET ConcurrentStack<T> 深入解析:无锁栈原理、LIFO 语义与使用边界
  • Z-Image-GGUF参数详解:CFG/Steps/Seed调优指南,提升出图质量与稳定性
  • Wan2.1-UMT5集成MySQL实战:用户生成记录与视频元数据管理
  • 彼得林奇如何看待公司的股息政策可持续性
  • 【SpringAIAlibaba新手村系列】(3)ChatModel 与 ChatClient 的深度对比