admin管理员组

文章数量:1794759

SQL注入——基础概念

SQL注入——基础概念

目录

1.什么是SQL注入? 2.为什么要了解sql注入? 3.sql注入原理 4.sql注入漏洞存在的原因 5.sql语言概述 6.学习sql语言的意义

一.什么是SQL注入?
  • 正常的web端口访问 正常访问是web传入程序设计者所希望的参数值,由程序查询数据库完成处理后,呈现结果页面给用户。

  • SQL注入是如何访问? SQL注入也是正常的web端口访问。 只是传入的参数值并非是程序设计者所希望的,而是传入了嵌套SQL代码的参数值。 参数值利用程序处理注入者的逻辑,按注入者的期望执行数据库查询。 页面甚至可以呈现按SQL注入者期望的样子显示。

  • SQL注入:是通过应用程序把带有SQL代码的参数传递给数据库引擎。

  • 二.为什么要了解SQL注入?
  • SQL注入危害大 黑客最终的目标是数据,SQL注入是直达数据库引擎,甚至提权后可以与系统层交互,敏感数据可能被泄露、破坏的风险。
  • SQL注入隐秘性强 SQL注入也是正常的web端口访问,系统或者数据库管理员不易发觉,可能被攻击者长期控制系统或者数据库。
  • SQL注入具有普遍性 SQL关系数据库行业的通用标准,SQL注入不仅是MySQL的问题,也是其它使用SQL的数据库的问题,有证据表明,60%以上有网站具有SQL注入漏洞。
  • 知己知彼,目标为防 深入了解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= ' ' or 1=1 -- $pwd=‘123456’ 结果:SELECT * FROM users WHERE login = ' ' or 1=1 --AND password = '123456' 四.SQL注入漏洞存在的根本原因

    SQL注入漏洞是应用程序的问题,而不是系统或者数据库的问题。

    SQL注入本质的原因是人对数据安全的意识薄弱。或者即使有安全的意识,而程序员对如何防范无从下手。因此导致程序没有对用户输入数据的合法性进行检查,对传入参数的安全性没有完全的过滤。

    五.什么是SQL语言?
    • SQL:结构化查询语言(Structured Query Language)
    • SQL的功能:查询数据库,它能插入、更新、删除和查询数据库并返回结果等。
    • SQL语言分类包括: DDL 数据定义语言(Data Definition Language ) DML 数据操作语言(Data Manipulation Language ) DCL 数据控制语言(Data Control Language)
    六. 了解SQL语言的意义
  • SQL注入的本质是什么? SQL注入的本质实际上是SQL语言的拼图游戏或者填空游戏。
  • SQL注入的目标 SQL注入的目标明确就是查询数据或控制系统。 (1)查询:利用复杂的select查询获取信,如管理员用户名和密码信 (2)插入:在管理员用户表中插入一条记录试图获得后台管理员权限 (3)更新:更新用户数据,进行提取,或者修改敏感数据。 (4)删除:删除管理员权限记录,清除脚印,破坏数据等。
  • 因此,精通SQL语言是SQL注入的基础。

    本文标签: 概念基础SQL