SQL注入-搜索形注入理解

学习i春秋的时候难得的一节课没听懂但感觉自己能搞懂(其他课就是完全听不懂,或者简单到不需要听)
搜索形注入

搜索性注入

通常被注入的是这样的代码

1
select * from user where username like '%p%';

这里的p是一个变量的值.也许在某个url中这个语句的变量是这样使用的

1
http://192.168.3.5/1.php?p=best

best传入了p

查询语句变成了

1
select * from user where username like '%best%';

这里我们探索注入点

就需要构造,比如让最终查询语句变成下面这种形式.

1
select * from user where username like '%best%' union select version(),2,3,4 '%%'

其实就等于下面这样

1
select * from user where username like '%best%' union select version(),2,3,4

我们实际注入的代码是%' union version(),2,3,4 '%,这就是p的值

所以url中就是这样输入

1
http://192.168.3.5/1.php?p=best%' union select version(),2,3,4 '%

中途的疑问

其实注入的原理还是很简单,其中我对sql语句产生了疑问.

  • 首先,是union后的select那些2,3,4是什么?
    这其实就是充数的,为了让union后的列和union前的列相同,这样才满足union的使用条件.真实情况,我们不知道有多少列,就得一个一个试.测试中由于知道就直接写了4列.
  • 然后是为什么union后的select 没有使用from?
    因为这个select并没有在某个表中查字段,所以不需要from,例如select 1;这样的查询语句其实是成立的.

结束

还是自己的mysql语法不熟悉.

如果文章有问题欢迎指出,或者你也可以联系我
本文作者:E1se
本文链接: 2018/12/27/SQL注入-搜索形注入理解/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!
-------------本文结束-------------
0%