sql注入知识点(写给自己看的,本人纯纯小白,大家可以看看)

一、要明白在sql语句里面各英语所代表的含义:

(1)select*from , 后添加数据库名称,也就是我们所查询的信息是由这个数据库所提供(翻译:从中选择)

(2)database() , 查询数据库名称(翻译:database 数据库)

(3)table_name='  ' ,单引号里面填写表名称(翻译:table_name 表名称)(翻译:column_name列名称)

(4)order by 作用对查询结果进行排序处理

select * from 表名 order by 列名(或者数字) asc;升序(默认升序)
select * from 表名 order by 列名(或者数字) desc;降序

比如说select*from users order by id asc,也就是排序按照id大小升序,如果是select*from users order by username asc,设想一下username全是英文,那么它就是按照abcd...这样的顺序排,和英语字典是一个道理。

(5)union 多表的时候可以使用union来连接两个表,使之同时被查询,但是union使用时需要保证合并的两边列数一致数据类型相似,可以无限添加NULL来检测表有多少列。如果知道列表名也可以将NULL改成列表名称。

(6) where 自我总结是查询的作用,然后根据网页回显的正确错误来判断所查询的信息是否正确,where+列表名称(如id、username、city、password等等)+运算符号(=、>、<、>=、<=、<>(不等于) 等等)+判断内容(如admin、123等等)

需要注意的是,如果是判断账号密码是否等于某些字符,字符要加  '  '  单引号,如果是判断数字的大小,如员工是否大于20人,工资是否大于5000,这样的话,数字是不加  '  '  单引号的。

(7)limit a,b   a表示从第a+1条开始记录,b表示取b条数据,既记录a+1到a+b条数据。

(8)or  使用or时,计算机只要判断一个条件为真便会执行,所以不知道账号和密码也没关系,在要执行的操作后面加上or 1=1(或者其他真命题)计算机就会自动执行操作。

(9)count   count() 函数返回匹配指定条件的数值,count(*)函数返回表中的记录数。

select count(*)用于查找数据库中表的数量或者表中列的数量。

(10)information schema.tables 这个可以理解是数据库的表,information schema.columns数据库表列。

(11)--#(都是注释)

解题的一般顺序:查当前数据库的名称,查数据库表的数量,查表的名字(需要与flag有关的表),查找表列的数量,查找表列的名称,查表记录的数量,查表的记录值(即flag)。

先到这里,后面的知识点我再探索一下,总结了规律再来写。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值