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

ctfshow_web9

点进网页,发现是一个登录界面,提示“管理员认证”,并且账号输入框默认设置了“admin”,随便输入密码提交发现并有什么响应显示

但是有一次输入密码,发现有密码错误的显示,但是有的有,有的没有。反复尝试后发现是密码的长度问题,当密码长度大于10的时候,会有密码错误的回显

密码长度回显再加上“管理员认证”的提示,打消了准备使用BP爆破的密码的打算(密码长度不一定就是10位以上,但是综合考虑感觉不太会是爆破,可以先尝试其他的方法)
尝试SQL万能密码注入也没有回显,源码中也也没有什么提示,使用dirsearch扫一下网址目录结构,扫出一个robots.txt文件

python dirsearch.py -u https://0817ad67-681d-4a6d-9eba-348070b79e3d.challenge.ctf.show/

查看robots.txt文件,提示index.phps

访问index.phps文件,使用记事本打开,是一段php代码

分析代码: 1. 从POST请求中获取一个名为'password'的参数。 2. 检查密码的长度是否大于10,如果是,则输出"password error"并终止脚本。 3. 构造一个SQL查询语句,查询user表中username为'admin'且password等于`md5($password, true)`的结果。 - 注意:`md5($password, true)`中的第二个参数设置为true,这意味着md5函数返回原始二进制格式(16字节),而不是通常的32字符十六进制字符串。这个二进制数据可能会在拼接进SQL语句时产生问题,因为其中可能包含特殊字符,如单引号等。 4. 执行查询,如果查询返回的行数大于0(即找到了匹配的用户),则输出"登陆成功"和`$flag`

也就是说,我们需要让SQL查询的条件成立,让查询返回至少一行才能输出flag。

我们需要构造一个password值,使得md5($password, true)的二进制结果包含SQL注入 payload,从而让查询条件恒真。

常见的用于SQL注入的md5值:有一个著名的例子是:md5("ffifdyop", true)的结果是:or'6<乱码>。实际上,md5("ffifdyop", true)的二进制结果为:'or'6�]��!r,��b,当这个字符串被放入SQL查询时,由于其中有'or',并且后面有字符,可能会形成一个永真条件。(这个可以作为经验记小本本)

尝试输入密码为ffifdyop,最终得到flag

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

相关文章:

  • 如何在电脑查询内存硬件的方式
  • EmotiVoice在智慧城市建设中的潜在用途
  • 如何在5分钟内用Mermaid语法轻松生成专业流程图?
  • 终极Grafana监控神器:mcp-grafana让数据可视化变得如此简单
  • 面试官:如何提升AIGC生成的可控性?
  • 现代Python包管理工具效能对比:uv与pip深度评测
  • 16、基于第三方工具包构建增强现实应用指南
  • 【数据结构】主席树 可持久化线段树
  • ImageOptim跨版本兼容性:5个关键问题及其技术解决方案
  • 3、开发环境搭建与iOS设备硬件组件检测
  • Bark语音生成模型:从零到精通的完整实战指南
  • ChromePass终极指南:轻松提取Chrome浏览器保存的密码
  • llama.cpp分布式KV缓存:实现多会话并发推理的性能飞跃
  • 用户需求征集:你希望EmotiVoice增加什么功能?
  • 4、增强现实应用的硬件检测与位置服务使用指南
  • 如何评估EmotiVoice生成语音的质量?专业指标解读
  • 5分钟搞定垃圾分类AI模型:从零开始的实战指南
  • 5、iOS 开发中的位置服务与地图显示
  • YT29A凿岩机张家界实地测评2025
  • Exo分布式AI集群资源管理终极指南:让闲置设备变身高性能AI服务器
  • EmotiVoice在应急广播系统中的备用方案
  • 5分钟搞定实时语音识别:FunASR流式模型实战指南
  • 6、iOS 开发:位置服务与传感器应用
  • Cosmos-Server终极指南:打造最安全的家庭服务器解决方案
  • Draft.js工具栏深度定制:从零构建企业级编辑体验
  • 7、iOS开发中的传感器与音频处理
  • 节日祝福语音定制:EmotiVoice创意玩法
  • EmotiVoice语音抗噪能力测试:嘈杂环境可用性
  • EmotiVoice声音克隆功能实测:5秒样本还原度高达90%以上
  • RuoYi-Cloud-Plus SSE推送:5分钟实现微服务实时通信的终极指南