0x01 SQL注入原理
- 什么是SQL注入漏洞
sql注入漏洞 是发生在应用程序与数据库层之间的安全漏洞
0x01.1 SQL注入发生的原因
网站内部直接使用的 SQL 请求一般不会有危险,但实际情况是很多时候需要结合用户所输入的数据动态的构造 SQL 语句,如果用户输入的数据被构造成恶意的 SQL 代码,Web 应用未对构造的 SQL 语句所使用的参数进行审查,则会带来意想不到的危险。
- 当用户在前端输入的数据被传输到后端,被用于构造动态 SQL 语句去查询数据库时,如果用户利用
sql命令的规则
构造出恶意代码,则数据库中的内容会脱离程序设计之初所想的方式被展示给用户。
0x01.2 SQL注入会造成的危害
- 简单示例:
select id,name from table where id = ?
- 该 sql 命令的作用是用来查询 table 表中的关于 id 为指定的数据。?部分即为用户所输入的内容。而我们也只想用户搜索自己id相关的内容。
- 但如果此时用户输入的内容为 1 or 1 = 1,那么当构造sql命令时,上方的命令会变成
select id,name from table where id = 1 or 1 = 1 等同于