CTFHub SQL 字符型注入
可以看到我们输入的数据会被单引号所括上
尝试正常的 1 and 1=2 发现没有报错 还是有回显
字符型的 1 and 1=2 就相当于只是字符串 并没有发挥其表达式的作用所以这就没有产生错误回显
(不太明白为什么 sql 还是会查询到 id = 1 的数据)
这时候我们添加 ' 手动闭合前一个 sql 语句然后再拼接上我们的 sql 语句进行测试
整个的 sql 语句大概是
$ sql = "select Data from table_name where id = ' $_GET[ ' id ' ] ' ";
如果我们手动闭合 '
1' and 1=2 就会出现
$ sql = "select Data from table_name where id = ' 1' and 1=2 ' ";
这时候就多出了一个 '
所以我们利用 sql 语句的注释语句 将后面的单引号给注释掉
可以使用 -- (-- 后面有个空格)、--+(这个+要在 url 地方输入这样才会等价于 -- )、
# (# 在url中不会转换成注释符号 然后用 %23来表达 # )
特殊字符在 UR