Buuctf-Web-[极客大挑战 2024]EasySQL 1 题解及思路总结

username输入1"时,形成的sql语句是正确的
SELECT*FROM table_name WHERE username='1"'and password='123';
当字符串内需要包含双引号时,除了使用转义字符外,也可以使用一对单引号来包括字符串。字符串内的双引号被视为普通字符,无需特殊处理
同理,当字符串内需要包含单引号时,除了使用转义字符外,也可以使用一对双引号来包括字符串。字符串内的单引号被视为普通字符,无需特殊处理

username输入的是1',形成的sql语句是错误的
SELECT*FROM table_name WHERE username='1''and password='123';
第一个单引号和第二个单引号形成了新的闭合,剩余第三个单引号,组成的sql语句不正确,于是语句报错。

所以可以推出SQL语句闭合方式是单引号。

假设SQL语句是双引号闭合的情况

username输入1时,形成的sql语句是正确的
SELECT*FROM table_name WHERE username="1"and password="123";

username输入1"时,形成的sql

你可能感兴趣的:(程序员,前端,数据库,服务器)