SQL注入

本文详细介绍了SQL注入攻击的原理,如何通过未过滤的用户输入执行恶意SQL,可能导致的数据泄漏、网页篡改、系统控制等危害。同时提出了防范措施,如使用预编译语句、参数过滤和安全设备部署等。
摘要由CSDN通过智能技术生成

漏洞描述

SQL注入攻击包括通过输入数据从客户端插入或 “注入” SQL查询到应用程序。
SQL注入是一种注入攻击。它将SQL命令注入到数据层输入,从而影响执行预定义的SQL命令。
本质是:把用户输入的数据当作代码执行。

漏洞场景 URL

可能存在的位置:URL地址

搜索框、登录框、留言板

确定存在性:

功能涉及到与数据库进行交互;

前后端进行交互 ;

数据库的内容是否会回显至页面中

漏洞原理(原因)

web页面源代码对用户提交的参数没有做出任何过滤限制,直接扔到SQL语句中去执行,
导致特殊字符改变了SQL语句原来的功能和逻辑。黑客利用此漏洞执行恶意的SQL语句,
如查询数据、下载数据,写webshell、执行系统命令以此来绕过登录权限限制等。

漏洞危害

   1.数据库信息泄漏︰数据库中存放的用户的隐私信息的泄露。
   2.网页篡改:通过操作数据库对特定网页进行篡改。
   3.网站被挂马,传播恶意软件︰修改数据库一些字段的值,嵌入网马链接,进行挂马攻击。
   4.数据库被恶意操作︰数据库服务器被攻击,数据库的系统管理员帐户被窜改。
   5.服务器被远程控制︰被安装后门。经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统。
   6.破坏硬盘数据,瘫痪全系统。
   7.一个成功的SQL注入攻击可以从数据库中获取敏感数据、修改数据库数据(插入/更新/删除)
、执行数据库管理操作(如关闭数据库管理系统)、恢复存在于数据库文件系统中的指定文件内容,在某些情况下能对操作系统发布命令。
   8.攻击者可以查询数据库中任何自己需要的数据,利用数据库的一些特性,可以直接获取数据库服务器的系统权限。

漏洞评级 --- 高级 中级 低级

高级

漏洞验证 弹框存在

1.-1 或 +1
2. ' 或 "
3. and 1=1  或   and 1=2
4. and sleep(5)
5. \   判断转义
主要关注:数据库内容是否回显;数据库报错信息是否回显;布尔类型状态;延时

漏洞利用

判断列数

判断显示位置

获取数据库中敏感信息

获取管理员账密

漏洞防御

1. 避免采用拼接的方式构造 SQL 语句,可采用预编译等技术;

2. 对进入 SQL 语句的参数进行足够过滤;

3. 部署安全设备比如 WAF;

4. 现行很多开发框架,基本上已经从技术上,解决 SQL  注入问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值