SQL注入之万能密码
' or 1='1
这是最简的万能密码了,今天记录一种看到的新的万能密码。
当or、and以及注释符号被严格过滤时,便可以选择这种万能密码
查询语句:
1 | select * from table where username='username' and password='password' |
1 | select * from table where username='1'='0' and password='1'='0' |
这段代码利用了连等符号,首先对username='1'
进行判断,返回false
,然后在将false
与'0'
进行比较,当两种数据类型不同时,会进行强制的类型转换,所以'0'
的返回值也是false
,两个false
相比较,返回值为true
。然后后面password
的比较同理。所以,其实上面的这种万能密码还有很多的变换形式,将第一个值设为某个不存在的值 ,然后将第二个值设为能返回false
的值,如0
、'0'
、''
、false
都可。
- 本文作者: y0lo
- 本文链接: http://example.com/2021/01/08/SQL注入之万能密码/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!