![[SUCTF 2019]EasySQL](http://pic.xiahunao.cn/yaotu/[SUCTF 2019]EasySQL)
根据题目我们可以知道根SQL注入有关这里我们先采用手动的方式找漏洞。1; SELECT *, 1 //堆叠注入 但是需要猜测返回的结果错误案例关键词被WAF过滤了所以无法正常使用需要转义或者别的操作这里只使用堆叠注入做为手法。至于为什么不是slect *,AI给出了说明如下核心原因后端只取了第一个结果集PHP 中有两种执行 SQL 的方式mysqli_query()只执行第一条 SQL忽略后面的。mysqli_multi_query()执行多条需要手动遍历结果集。你的现象1;select *只返回Array ( [0] 1 )说明后端很可能用了mysqli_multi_query()但遍历代码写得有问题。导致你看到这个结果的两种具体原因原因1循环体有break或逻辑错误最常见php// 后端代码可能是这样的 if (mysqli_multi_query($conn, $sql)) { do { if ($result mysqli_store_result($conn)) { $row mysqli_fetch_row($result); print_r($row); // 打印了第一行 [0] 1 break; // ⚠️ 这里 break 了循环直接结束没去拿第二个结果 } } while (mysqli_next_result($conn)); }第一次循环执行1;→ 结果[0] 1→ 输出 →break退出没机会走到SELECT *的结果原因2SELECT *执行出错被静默忽略如果SELECT *查询的表不存在或者没有权限sql1; SELECT * -- 假设没有默认数据库或表名不合法第一条1成功 → 输出[0] 1第二条执行失败 →mysqli_next_result()返回false循环终止你没看到报错是因为error_reporting(0)被开启了很多 CTF 题默认这样。