news 2026/7/27 2:23:02

ctfshow_web10

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ctfshow_web10

和web9中一样的登录界面,但是之前默认的用户名“admin”没有了

随便输入账号密码,没有回显

尝试使用万能密码 admin ' or 1=1,发现SQL错误回显,应该是SQL注入

不小心点到取消,竟然触发下载了一个index.phps

返回检查源码,才发现了不一样,点击取消按钮会触发“cancel()”这个函数,这个函数应该是会下载源文件。(之前检查源代码的时候不够仔细

使用记事本打开查看index.phps文件

分析代码:

1. 对用户名和密码分别进行过滤,如果过滤前后的字符串长度不一致,则报错并退出。 2. 然后执行SQL查询:select * from user where username = '$username' 3. 如果查询结果有数据,则逐行取出,并比较密码(使用弱类型比较==),如果相等则输出flag。 4. 过滤机制:`replaceSpecialChar()`函数会删除SQL关键字(select, from, where, join, sleep, and, union, 逗号)和空格 5. 长度检查:如果过滤前后字符串长度变化,会终止执行(die("sql inject error")) 6. 登录逻辑: - 先查询用户名是否存在 - 如果存在,逐行比较密码是否相等(`==`弱类型比较) - 密码匹配则输出flag

PHP端的有password == $row['password']验证,这意味着我们必须让SQL查询返回一行我们“已知”密码的数据。

但是我们可以利用WITH ROLLUP 绕过密码验证,这是应对“PHP层验证密码”最经典且有效的绕过方式。

group by password with rollup 会产生一行 password 为 NULL 的数据,注意使用使用/**/绕过空格,构造payload如下:

​#注意密码设置为空 admin'/**/or/**/1=1/**/group/**/by/**/password/**/with/**/rollup/**/limit/**/1/**/offset/**/1# ​

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/26 17:59:29

[Web开发合集] 踏浪阿里巅峰之路 成为P6前端架构师的终极征程 80G深度探索31模块最新前沿技术潮流

解锁阿里 P6 前端架构师的核心能力:从执行者到系统设计者的跃迁在阿里巴巴的技术职级体系中,P6 不仅是一个岗位级别,更是一道关键的能力分水岭。对于前端工程师而言,成为 P6 前端架构师,意味着完成从“功能实现者”到“…

作者头像 李华
网站建设 2026/7/27 0:22:31

GESP认证C++编程真题解析 | B3871 [GESP202309 五级] 因数分解

​欢迎大家订阅我的专栏:算法题解:C与Python实现! 本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战! 专栏特色 1.经典算法练习:根据信息学竞赛大纲,精心挑选…

作者头像 李华
网站建设 2026/7/26 14:20:54

c/c++指针简单理解

普通情境下指针int *a &b; int b 1;int* 表示a是指向int型的指针变量, 所以 a 可以存放地址,示例:存放的b的地址。a,表示&b的别名,是地址的别名所以 可以通过 a 来找到 b 来进行操作。类似于&…

作者头像 李华
网站建设 2026/7/24 5:02:41

5小时整理60页《Google Agent指南》,不懂Agent的包教包会

花了五个小时,把 Google 白皮书拆解成一个可执行的 Agent 心智模型的长文。 没什么花里胡哨的新名词,但把模型、工具、编排、记忆、训练这几件核心事讲得比较完整,对于想要了解的Agent的初学者,是很不错的选择。 Google最近发布了…

作者头像 李华