为了账号安全,请及时绑定邮箱和手机立即绑定

一条SQL注入的SQL语句疑问

一条SQL注入的SQL语句疑问

PHP
杨魅力 2019-03-14 14:15:19
正常的SQL是: select * from post where id = '10'; 这里是注入的点: 10" union select id,username,salt,password,5 from user where id="2 对注入的内容进行转义后: select * from post where id = '10\" union select id,username,salt,password,5 from user where id=\"2' 不懂为啥能查询出数据?
查看完整描述

2 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

你的 id MYSQL设置是数字类型,但是你查询的却是字符类型。这时候,MYSQL会进行隐式转化并且不会使用索引。其中字符转数字:

  1. 从左开始处理
  2. 字符串是以非数字开头,转为数字0
  3. 字符串是以数字开头,就直接截取到非数字的位置。也就是你的问题中的: 10
查看完整回答
反对 回复 2019-03-18
?
墨色风雨

TA贡献1853条经验 获得超6个赞

sql语句的执行过程中就出现了隐式转化

查看完整回答
反对 回复 2019-03-18
  • 2 回答
  • 0 关注
  • 369 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信