SQL注⼊——基础概念
⽬录
1.什么是sql注⼊?
2.为什么要了解sql注⼊?
3.sql注⼊原理
4.sql注⼊漏洞存在的原因
5.sql语⾔概述
6.学习sql语⾔的意义
⼀.什么是SQL注⼊?
1. 正常的web端⼝访问
正常访问是web传⼊程序设计者所希望的参数值,由程序查询数据库完成处理后,呈现结果页⾯给⽤户。
2. SQL注⼊是如何访问?
SQL注⼊也是正常的web端⼝访问。
只是传⼊的参数值并⾮是程序设计者所希望的,⽽是传⼊了嵌套SQL代码的参数值。
参数值利⽤程序处理注⼊者的逻辑,按注⼊者的期望执⾏数据库查询。
页⾯甚⾄可以呈现按SQL注⼊者期望的样⼦显⽰。
3. SQL注⼊:是通过应⽤程序把带有SQL代码的参数传递给数据库引擎。
⼆.为什么要了解SQL注⼊?
1. SQL注⼊危害⼤
⿊客最终的⽬标是数据,SQL注⼊是直达数据库引擎,甚⾄提权后可以与系统层交互,敏感数据可能被泄露、破坏的风险。
2. SQL注⼊隐秘性强
SQL注⼊也是正常的web端⼝访问,系统或者数据库管理员不易发觉,可能被攻击者长期控制系统或者数据库。
3. SQL注⼊具有普遍性
SQL关系数据库⾏业的通⽤标准,SQL注⼊不仅是MySQL的问题,也是其它使⽤SQL的数据库的问题,有证据表明,60%以上有⽹站具有SQL注⼊漏洞。
4. 知⼰知彼,⽬标为防
深⼊了解SQL注⼊的终极⽬标是做好防范。提⾼数据安全意识,把数据安全提⾼到⼀定的战略⾼度。
三.浅谈SQL注⼊⼯作原理
1.正常的访问
$sql="SELECT * FROM users WHERE login ='$uname' AND password ='$pwd'"
PHP程序传⼊结果参数:$uname=‘sumoka’
$pwd=‘123456’
结果:SELECT*FROM users WHERE login = ‘sumoka’ AND password = ‘123456‘
2.SQL注⼊访问
$sql="SELECT * FROM users WHERE login ='$uname' AND password ='$pwd'"
PHP程序传⼊结果参数:$uname=' 'or1=1--
$pwd=‘123456’
结果:SELECT*FROM users WHERE login =' 'or1=1--AND password = '123456'
四.SQL注⼊漏洞存在的根本原因
php的工作流程SQL注⼊漏洞是应⽤程序的问题,⽽不是系统或者数据库的问题。
SQL注⼊本质的原因是⼈对数据安全的意识薄弱。或者即使有安全的意识,⽽程序员对如何防范⽆从下⼿。因此导致程序没有对⽤户输⼊数据的合法性进⾏检查,对传⼊参数的安全性没有完全的过滤。
五.什么是SQL语⾔?
SQL:结构化查询语⾔(Structured Query Language)
SQL的功能:查询数据库,它能插⼊、更新、删除和查询数据库并返回结果等。
SQL语⾔分类包括:
DDL 数据定义语⾔(Data Definition Language )
DML 数据操作语⾔(Data Manipulation Language )
DCL 数据控制语⾔(Data Control Language)
六. 了解SQL语⾔的意义
1. SQL注⼊的本质是什么?
SQL注⼊的本质实际上是SQL语⾔的拼图游戏或者填空游戏。
2. SQL注⼊的⽬标
SQL注⼊的⽬标明确就是查询数据或控制系统。
(1)查询:利⽤复杂的select查询获取信息,如管理员⽤户名和密码信息
(2)插⼊:在管理员⽤户表中插⼊⼀条记录试图获得后台管理员权限
(3)更新:更新⽤户数据,进⾏提取,或者修改敏感数据。
(4)删除:删除管理员权限记录,清除脚印,破坏数据等。
因此,精通SQL语⾔是SQL注⼊的基础。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论