SQL注入

什么是sql注入?
sql注入是网络攻击的一种方式,主要是利用软件中查询语句的漏洞,对数据库进行非法访问。用法是在软件现有的查询语句之后在加上新的sql语句,进行查询的时候,就能够直接或间接的得到数据库的其他信息。
例图:
我猜测软件的查询语句,具有条件 id。如图所示:
在这里插入图片描述

那么我在此查询语句之后再加上 “OR 1=1”,我就能够去操作此次查询目标的所有数据。如图所示:
在这里插入图片描述

不加尾缀之前,数据库内部查询:

在这里插入图片描述

添加了尾缀之后,数据库内部查询:

在这里插入图片描述

sql注入主要有数型注入和字符串注入两种方式。
数型注入我已经介绍了。
还有一种是字符串注入。在进行字符串类型查询时,比如:根据名字进行模糊查询时,where条件为: WHERE user_name = ‘name’,当我输入的不是name而是 xxx’ OR 1=1 # 时,我同样的也能等到我此次查询目标的所有内容
如图所示:
在这里插入图片描述

在使用字符串注入之后的查询:
在这里插入图片描述

相当于查询所有行。

当然,我在了解了sql注入之后,也对自己写的代码,产生了怀疑。会不会,我能用这种方式在查询框中输入一段sql语句,从自己写的代码中非法访问数据库…。带着这个疑惑,我运行了自己的代码,在查询框中输入 xxxx’OR 1=1 # ,进行查询是时,结果却令我傻眼了,因为,查询结果显示 ‘ 无结果 ’
在这里插入图片描述

随后我返回代码中,翻看查询语句后我明白了为什么查询会无结果。Sql语句如图:
在这里插入图片描述

到数据库Where 条件比我想象的where条件多了一个引号,正因为这个引号,把sql注入的关键条件 OR 1=1# ,变成了字符串。数据库又没有类似值,所以会返回空值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值