一,问题概述
某些web站点,会直接使用用户输入的字符串来作为SQL文的一部分。这就会产生SQL注入的风险。
二,举例说明 1、PHP + PostgreSQL
$query = "SELECT * FROM usr WHERE uid = '$uid' AND pass = '$passh';
$result = pg_query($conn, $query);
场景:这是容易被理解的SQL注入发生的场景,使用用户输入的用户名和密码来验证该用户是否可以login。
恶意输入模式:
uid:taro'--
pass:任意值
分析:这样一来,验证用的SQL就变成以下SQL文:
SELECT * FROM usr WHERE uid = 'taro'--' AND pass ='eefd5bc2...'
2、Perl+DBI
$query = "SELECT * FROM usr WHERE uid = '$uid' AND pass = '$passh'";
$sth =$dbh->prepare($query);
$sth->execute();
场景:同上
恶意输入模式:
uid:taro'--
pass:任意值
分析:从代码上看,已经使用了预处理方法对SQL进行了预处理。但是由于SQL文中包含变量,导致预处理不能进行。因此还是会导致SQL注入风险。
三,可能的后果
1、非公开信息的泄露
2、数据库中保存信息的被恶意篡改,删除。
3、绕开认证的login
4、恶意者可能会利用该漏洞使用存储过程来运行恶意的os command。
四,可能被攻击网站的特征
1、所有用到数据库的web站点
五,如何解决
彻底解决方案
1-1、使用Placeholder来产生SQL语句。即preparedstatement。
1-2、无法使用preparedstatement的场合,尽量使用数据库引擎提供的escape函数来过滤用户字符串。
2、不要使用用户输入的参数组成SQL文
改善方案
1、不要将系统产生的错误消息直接输出到最终用户的浏览器。
2、数据库账号严格实行最小权限赋予原则
更容易阅读的版本,见附件。
分享到:
相关推荐
SQL注入分析与防范策略.pdf
对于现代SQL注入检测大部分都是将语法分析策略为基础,但是此种策略检测的效率较低,并且还存在漏洞扫描不完善的问题,实现基于Web的SQL注入漏洞扫描系统的设计。对SQL注入漏洞给相应检测及防御技术进行研究,通过...
本文介绍了SQL注入攻击的原理与常见的注入方式,并给出了常见SQL注入攻击的防范方法
基于HMAC的SQL注入攻击防范策略.pdf
用NBSI 2.0对网上的一些ASP网站稍加扫描,就能发现许多ASP网站存在SQL注入漏洞……
基于Oracle的SQL注入与防范策略研究.pdf
SQL注入攻击原理及防范策略.pdf
SQL注入方法剖析及防范策略.pdf
SQL注入的方式与防范策略.pdf
SQL注入的检测与防范策略研究.pdf
基于.NET的SQL注入式攻击防范策略.pdf
包头医学院校园网SQL注入攻击防范策略研究.pdf
SQL注入攻击与防护措施研究,非常经典。
SQL注入攻击的一个新的防范策略.pdf
2.1.2 SQL注入漏洞防范措施 4 2.1.3 SQL注入漏洞检测方法 5 2.2 表单漏洞测试 6 2.2.1 表单漏洞实现原理 6 2.2.2 表单漏洞防范措施 6 2.2.3 表单漏洞检测方法 6 2.3 Cookie欺骗漏洞测试 8 2.3.1 Cookie欺骗...
口令暴解 窃听 SQL注入 跨站脚本 恶意代码 误操作 系统漏洞 系统故障 蠕虫病毒 黑客入侵 混合攻击 自然灾害 跨站脚本 网站挂马 弱点扫描 木马 DoS攻击 轻则: 系统不稳定 网络或业务访问缓慢 成为攻击跳板 造成信誉...
口令暴解 窃听 SQL注入 跨站脚本 恶意代码 误操作 系统漏洞 系统故障 蠕虫病毒 黑客入侵 混合攻击 自然灾害 跨站脚本 网站挂马 弱点扫描 木马 DoS攻击 轻则: 系统不稳定 网络或业务访问缓慢 成为攻击跳板 造成信誉...
口令暴解 窃听 SQL注入 跨站脚本 恶意代码 误操作 系统漏洞 系统故障 蠕虫病毒 黑客入侵 混合攻击 自然灾害 跨站脚本 网站挂马 弱点扫描 木马 DoS攻击 轻则: 系统不稳定 网络或业务访问缓慢 成为攻击跳板 造成信誉...
面临的安全威胁与风险 近年来政府门户网站被篡改、网络钓鱼、SQL注入和跨站脚本等带来严重后果的攻击事件频频发生,严重影响了人们对政府网站公信力的认可,经过数据分析,基于Web的应用基本都存在安全问题,其中很...