CTF中sql注入的一些知识
最近一直在学习sql注入的知识,感觉sql注入确实是漏洞中的一大难点。首先是自己对数据库结构的不熟悉,所以构造的一些语句总是不能理解。其次是没有对自己学习的知识做好总结,看了很多视频、博客、题目,每次我都感觉自己好像知道要怎么去做了,可是再拿到一道题目,我还是只会加单引号,甚至在单引号没有报错的时候就不知所措。最后是没有好的状态,急功近利,想要一蹴而就,但这sql注入又哪是几天就能弄明白的,所以我还是想明白了,要多花时间去钻研,要多做思考,不能眼高手低,真正的把原理和方法弄懂。 所以我先对最近遇到的一些问题进行总结,等慢慢学习更多以后,再对此进行补充。 1、为什么有时候要用单引号闭合前面的引号,而有的时候却不用闭合呢? 2、为什么union前面搜索的值不存在,却还是可以把union联合查找的值给输出来呢? 3、为什么在url中不能用#号,而要用%23来表示呢? 4、在猜解列名时为什么要在表名前后加引号,而猜解字段内容时却不用加呢? 5、information_schema是啥?为啥猜解的时候要一直用这个东西? 6、为什么有时候引号输进去也不会报错?这个时候要怎么做? 1、关于引号的问题,其实这是因为sql语句的两种写法 这两种写法都是正确的,只是安全性不同罢了,所以在你看不到源代码的时候,也不能确定是否要加单引号去闭合,只能先加一个单引号来闭合尝试。 这两张图片是来自于: http