SQL注入与防御

SQL注入

什么是SQL注入:是指通过构建特殊的输入作为参数传入web应用程序,而这些输入大多数是SQL语法的一些组合

SQL漏洞产生的原因:程序没有细致的过滤用户输入的数据,导致非法数据入侵系统

SQL注入原理:SQL注入攻击是通过将恶意的SQL查询或添加语句插入到应用的输入参数中,再在后台SQL服务器上解析执行进行的攻击

说个题外话

我们做运维还有做云计算的朋友应该都比较清楚用户的数据都依托于数据存储的,所以数据的安全都是属于重点防御的

对于web应用而言,用户核心数据大多都储在各种数据库中比如MySQL及SQL还有Oracle等

SQL注入的危害性

1.脱裤…emm

不是这个裤,是这个库

咳咳

1.脱库(导致用户数据泄露)

2.失去web应用的控制权

3.用户信息被非法买卖

4.被脱库后要是没有处理好后续的事情可能会导致企业倒闭


SQL语句

想必各位对SQL语句都超级熟悉吧

常用SQL注入语句:https://www.cnblogs.com/spadd/p/4085544.html

可以参考一下

SQL注入类型

数字型注入

判断是否存在SQl注入点

检测方法:

当输入的参数为整形时,如果存在注入漏洞,可以认为是数字型注入。

and 1=1	返回正确
and 1=2	返回错误
等等

字符型注入

判断是否存在SQl注入点

检测方法:

HTTP://xx.xxx.xxx/abc.php?p=YY’(附加一 个单引号),

此时SQL语句: select * from表名where字段='YY",abc.php运 行异常;

HTTP://xxxxxx/abc.php?p=YY and ‘1’='1, abc.php运行正常,

而且与HTTP://xxx.xx.xxx/abc.php?p=YY运行结果相同;

此时SQL语句如下:select * from表名where 字段=YY and ‘1’='1

HTTP://xxxxxxx/abc.php?p=YY and ‘1’='2, abc.php运行异常;

此时SQL语句如下: select * from表名where 字段=YY and ‘1’='1

如果以上三步全面满足,abc.php中 一定存在SQL注入漏洞。

来自:https://wenku.baidu.com/view/855aee35f8c75fbfc67db227.html

SQL注入过程

1.注入点检测

判断哪里可以存在SQL注入点

2.收集数据库信息

判断数据库的方法有很多,比如可以输入特殊字符让程序返回错误信息,我们根据错误信息提示进行判断

也可以通过函数来判断

3.破解用户名和密码

像是一些企业级的数据库大多都有特定的命名规范,也就是一般都有规律的

过构造特殊SQL语句在数据库中依次猜解出表名、字段名、字段数、用户名和密码

4.找web管理入口

像是这一些不对普通用户开放控制台,一般是用一些扫描工具进行扫描,一般的话一扫就是一大堆,接下来就是一个一个试

5.这里就是白帽和小黑的分界线了,登录后台管理器

是要搞维护还是破坏

后台管理器具有的权限比客户端及一般的管理员权限都要大

可以进行任意破坏

注入防护措施

防火墙基本是拦截不了SQL注入

1.禁止将变量直接写入到SQL语句

2.对用户进行分级管理,严格控制用户的权限

3.防范SQL注入要对用户输入进行检查,确保数据输入的安全性,在具体检查输入或提交的变量时,对于单引号、双引号、冒号等字符进行转换或者过滤

4.数据库信息加密

SQL注入报告

HP的WebInspect自动生产报告,不可取,是真的香

其他链接

哔哩哔哩
会同步该博客发一些自制视频

微博
用的比较少

Github
一些源代码

知乎
不懂的我一般会在上面提问

简书
同步该博客内容相同

CSDN
同步该博客内容相同

个人联系方式

QQ:2446264712

微信:X15019749137

邮箱:[email protected]

有意添加请备注 啊啊啊啊

发布了25 篇原创文章 · 获赞 15 · 访问量 772

猜你喜欢

转载自blog.csdn.net/Cloud_ink/article/details/105205258