|
|
| 首页 | 技术文章 | 软件下载 | 博客 | 论坛 | 精品教程 | 黑客动画 | 视频资源 | 在线服务 | 黑客游戏 | | ||||
|
|
||||||||
|
||||||||
|
|||||
| 不当编写SQL语句导致系统不安全 | |||||
作者:未知 文章来源:CnXHacker.Net 点击数: 更新时间:2006-12-14 ![]() |
|||||
|
一、漏洞的产生 用于登录的表 Users(name,pwd) 建立一个窗体Frmlogin,其上有两个文本框Text1,Text2和两个命令按钮cmdok,cmdexit。两个文本框分别用于让用户输入用户名和密码,两个命令按钮用于“登录”和“退出”。 1、定义Ado Connection对象和ADO RecordSet对象: Option Explicit
Set Adocon = New ADODB.Connection
select * from usersswheresname=’123’ and pwd=’a’ or ’a’=’a’
这样的问题将会出现在所有使用select * from usersswheresname=’" && name && "’ and pwd=’" && password &&"’的各种系统中,无论你是使用那种编程语言。 二、漏洞的特点 在网络上,以上问题尤其明显,笔者在许多网站中都发现能使用这种方式进入需要进行用户名和密码验证的系统。这样的一个SQL漏洞具有如下的特点: 1、与编程语言或技术无关 无论是使用VB、Delphi还是ASP、JSP。 2、隐蔽性 现有的系统中有相当一部分存在着这个漏洞,而且不易觉察。 3、危害性 不需要进行用户名或密码的猜测即可轻易进入系统。 三、解决漏洞的方法 1、控制密码中不能出现空格。 2、对密码采用加密方式。 这里要提及一点,加密不能采用过于简单的算法,因为过于简单的算法会让人能够构造出形如a’ or ’a’=’a的密文,从而进入系统。 3、将用户验证和密码验证分开来做,先进行用户验证,如果用户存在,再进行密码验证,这样一来也能解决问题。 |
|||||
| 文章录入:IceRiver 责任编辑:IceRiver | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 熊猫烧香作者拘留所编写杀毒 ASP编写的加密和解密类 PE型病毒编写总结 自己编写能删除各种病毒尸体 自己编写能删除各种病毒尸体 学会用 VC++ 动态链接库编写 了解VB编写病毒的大体方法 学会用 VC++ 动态链接库编写 制作编写超级批处理病毒 编写漏洞扫描器 |
网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!) |
| 关于我们 - 版权声明 - 帮助(?) - 广告服务 - 联系我们 - 友情链接 - 用户注册 - | Powered by ICE RIVER - STUDIO |
| » CnXHacker.CoM | © CopyRight 2002-2006, CnXHacker.CoM™, Inc. All Rights Reserved. |