文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术黑客技术攻防技巧PHP数据库安全之SQL注入
精品推荐
特别推荐
·简单方法查找黑客老巢
·一次入侵过程的公开分析
·快速利用135端口入侵个人电脑
·基础知识 初级黑客安全技术命令详解
·IPC$入侵的高级手段与方法
·在QQ上与任意陌生人聊天的新绝招
·“黑客”教你如何远程控制计算机
·多种DDoS攻击技术方法
·黑客入侵前的信息收集
·看黑客如何发动对电子邮件系统的攻击
·经典:各个网络端口的入侵方法
·防范黑客 从两大方面阻止域名被劫持
·黑客、红客、蓝客、飞客究竟是什么?
·认清虚虚实实的“ARP攻击”防御方法
·黑客知识 彻底堵死SQL注入工具漏洞
·赛迪网"IT技术百家讲坛"开讲 如何防御黑客?
·黑客如何利用DNS欺骗在局域网中挂马
·Windows黑客编程基础
·黑客很狡猾 如何减轻DDoS攻击危害?
·网络攻击的几种攻击与防御手法大揭秘
热点TOP10
·最详细的黑客入门法则
·“黑客”教你如何远程控制计算机
·我是怎么进入他人计算机的
·黑客技术之知道对方IP入侵别人的电脑
·经典常见计算机密码破解实用手册
·不用任何软件(木马程序)盗取账号密码
·从零开始学黑客:网络黑客新手入门指南
·基础知识 初级黑客安全技术命令详解
·Windows黑客编程基础
·流光5.0使用小窍门
·菜鸟变黑客高手
·Telnet高级入侵攻略及原理
·收费网站破解攻略
·谁能知道微软在你的计算机里隐藏的秘密
·黑客破解电脑密码实用技巧大全!
·迎刃而解——破解密码的常用工具
·经典:各个网络端口的入侵方法
·快速利用135端口入侵个人电脑
·用IE即可轻松远程控制对方电脑
·让对方QQ掉线代码

攻防技巧PHP数据库安全之SQL注入

日期:2007年7月13日 作者: 查看:[大字体 中字体 小字体]


很多 web 开发者没有注意到 SQL 查询是可以被篡改的,因而把 SQL 查询当作可信任的命令。殊不知道,SQL 查询可以绕开访问控制,从而绕过身份验证和权限检查。更有甚者,有可能通过 SQL 查询去运行主机操作系统级的命令。

  直接 SQL 命令注入就是攻击者常用的一种创建或修改已有 SQL 语句的技术,从而达到取得隐藏数据,或覆盖关键的值,甚至执行数据库主机操作系统命令的目的。这是通过应用程序取得用户输入并与静态参数组合成 SQL 查询来实现的。下面将会给出一些真实的例子。

  由于在缺乏对输入的数据进行验证,并且使用了超级用户或其它有权创建新用户的数据库帐号来连接,攻击者可以在数据库中新建一个超级用户。 例子 27-2. 一段实现数据分页显示的代码……也可以被用作创建一个超级用户(PostgreSQL系统)。

  

  $offset = $argv[0]; // 注意,没有输入验证!

  $query = "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

  $result = pg_query($conn, $query);

  ?>

  一般的用户会点击 $offset 已被斌值的“上一页”、“下一页”的链接。原本代码只会认为 $offset 是一个数值。然而,如果有人尝试把以下语句先经过 urlencode() 处理,然后加入URL中的话:

  0;

  insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)

  select 'crack', usesysid, 't','t','crack'

  from pg_shadow where usename='postgres';

  --

  那么他就可以创建一个超级用户了。注意那个 0; 只不过是为了提供一个正确的偏移量以便补充完整原来的查询,使它不要出错而已。

  注: -- 是 SQL 的注释标记,一般可以使用来它告诉 SQL 解释器忽略后面的语句。

  对显示搜索结果的页面下手是一个能得到密码的可行办法。攻击者所要做的只不过是找出哪些提交上去的变量是用于 SQL 语句并且处理不当的。而这类的变量通常都被用于 SELECT 查询中的条件语句,如 WHERE, ORDER BY, LIMIT 和 OFFSET。如果数据库支持 UNION 构造的话,攻击者还可能会把一个完整的 SQL 查询附加到原来的语句上以便从任意数据表中得到密码。因此,对密码字段加密是很重要的。 例子 27-3. 显示文章……以及一些密码(任何数据库系统)

  

  $query = "SELECT id, name, inserted, size FROM products

   WHERE size = '$size'

   ORDER BY $order LIMIT $limit, $offset;";

  $result = odbc_exec($conn, $query);

  ?>

  可以在原来的查询的基础上添加另一个 SELECT 查询来获得密码:

  'union select '1', concat(uname  '-'  passwd) as name, '1971-01-01', '0' from usertable;

  --

  假如上述语句(使用 ' 和 --)被加入到 $query 中的任意一个变量的话,那么就麻烦了。

  SQL 中的 UPDATE 也会受到攻击。这种查询也可能像上面的例子那样被插入或附加上另一个完整的请求。但是攻击者更愿意对 SET 子句下手,这样他们就可以更改数据表中的一些数据。这种情况下必须要知道数据库的结构才能修改查询成功进行。可以通过表单上的变量名对字段进行猜测,或者进行暴力破解。对于存放用户名和密码的字段,命名的方法并不多。 例子 27-4. 从重设密码……到获得更多权限(任何数据库系统)

  

  $query = "UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";

  ?>

  但是恶意的用户会把 ' or uid like'%admin%'; -- 作为变量的值提交给 $uid 来改变 admin 的密码,或者把 $pwd 的值提交为 "hehehe', admin='yes', trusted=100 "(后面有个空格)去获得更多的权限。这样做的话,查询语句实际上就变成了:

  
  
  // $uid == ' or uid like'%admin%'; --

  $query = "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

  // $pwd == "hehehe', admin='yes', trusted=100 "

  $query = "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE

[1] [2] [3] 下一页 




上一篇:了解数据容灾,你需要第三方灾难备份吗?

下一篇:专家视点:防火墙防控DDOS攻击三步曲

攻防技巧PHP数据库安全之SQL注入 相关文章:
·电脑高手的140个电脑技巧
·《拳皇2002》隐藏超杀出招表 - 技巧心得
·楼梯的上做爱技巧 (图)
·太阁立志传4 攻略及技巧
·新出QQ技巧十六招
·WindowsXP超级技巧
·Vista系统使用技巧总结
·IE浏览器再现严重安全漏洞 微软紧急发补丁程序
·Windows XP的20个超级实用技巧大全
·绝对好用的注册表技巧
攻防技巧PHP数据库安全之SQL注入 相关软件:
·Kaspersky(卡巴斯基) Internet Security 安全套装 V6.0.2.621 中文版
·招聘面试技巧 视频教程
·中文版Excel 2003实例与技巧
·交际-电话沟通技巧
·摄影技巧与欣赏
·如何加固Windows XP 主机安全
·中文版 AutoCAD2004 应用实例与技巧
·电脑技巧精彩文章一百篇
·美萍安全卫士v12.3
·温瑞安全集

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn