1. SQL注入概述
定义:SQL注入是指Web应用程序不判断用户输入数据的合法性。攻击者可以在 Web 应用程序中预定义查询语句的末尾添加额外的 SQL 语句来实现此目的。欺骗数据库服务器进行未经授权的任意查询,从而进一步获取相应的数据信息。
为了让大家更直观的了解SQL注入原理,贴一张SQL注入攻击原理图●SQL注入威胁可以体现在以下几点:
●绕过认证获取非法权限
●猜出后台数据库中的所有信息
●注射可使用数据库的存储过程,用于执行权限提升等操作
●SQL注入攻击的典型手段
?●收集信息并确定数据库类型
●根据注入的参数类型重构SQL语句原本的样子
●猜猜表名和字段名
●获取帐户信息,攻击网络或为下一次攻击做好准备
2。 SQL注入的简单示例
1。判断SQL注入漏洞的几种方法
①http://m.genealogy-computer-tips.com/showtail.asp?id=40'
②http://m.genealogy-computer-tips.com/showtail.asp?id=40 和 1=1
③http://m.genealogy-computer-tips.com/showtail.asp?id=40 和 1=2
如果执行①后,页面提示错误或数据库错误,则说明存在注入漏洞。
如果执行②后页面显示正常,但执行③后出现错误,则说明该页面存在注入漏洞。
2。收集信息并确定数据库类型
信息 从返回的信息中可以判断数据库的类型。更有可能知道一些数据库中的字段以及其他有用的信息,为下次攻击提供了缓冲。3。根据注入的参数类型重构原来的SQL语句
①ID=40 这种注入的参数是数值型的,所以原来的SQL语句大致为: Select*from 表名 where field=40
②name=movie 该类型注入的参数为字符类型。原SQL语句大致为: Select*from 表名 where field=‘movie’
4。猜测表名和字段名(直接在URL中添加SQL语句)
①并且存在(从表名中选择*)
如果页面没有任何变化,则说明附加条件成立,则说明猜测的表名是正确的。否则说明该表不存在。然后继续猜,直到知道正确为止
②并且存在(从表名中选择字段)
方法原理与理相同猜测字段内容(用上面猜测的表名和字段名,方法老了,麻烦)
●猜猜字段内容的长度
(从表名中选择前1个len(字段名))>0 直到猜测>n不成立,字段长度为:n+1。
●拿到长度后猜猜具体内容
(从表名中选择前1个asc(mid(用户名,1,1))>0直到>m不成立,即可猜出ASCII码值。
注意:我是学习 SQL 注入的新手。如果有错误的地方,请指出并改正。谢谢你! ! !