Php+mySql注入漏洞分析与研究

来源 :光盘技术 | 被引量 : 0次 | 上传用户:competent110
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:在php+mysql的站点开发时,经常出现程序员编写代码的时候,没有对用户输入数据合法性进行判断,使站点存在安全隐患,本文从php+mysql注入的原理入手,对于使用php+mysql数据库的站点,在sql注入常用的方法和解决办法方面进行了研究。
  关键词:Php mySql注入漏洞;分析
  中图分类号:TP309.5文献标识码:A
  
  On Analysis and Prevention of Php+mySql Injection
  LV Kang1,FAN Jin-wei2
  (1.Zhengzhou University,Henan Zhengzhou 450000;2.Zhengzhou Commerce and Trade Technicians College,Henan Zhengzhou 450000)
  Key words: Php+mySql;injiection;analysis;prevention
  
  在Php+Mysql的站点开发时,经常出现程序员编写代码的时候,没有对用户输入数据合法性进行判断,使站点存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得信息,这就是所谓的SQL injection,即SQL 注入。SQL注入是从正常的www端口访问,而且表面看起来和一般的Web页面访问没有什么区别,而且目前市面上的防火墙都不会对SQL注入发出警报,如果管理员没有查看日志的习惯,可能在不知不觉中被攻击。国内研究PHP的人比研究ASP的人少得多,对asp+mssql或access注入研究的也比较多,有很多这样的文章,况且PHP的安全性比ASP高很多。本文主要从Php+mySql注入定义和原理出发,通过实例的研究,给站点开发者以提醒。
  
  1 Php+Mysql注入原理
  
  在Php+Mysql站点日益增多的今天,SQL注入仍是最有效最麻烦的一种攻击方式,有效是因为至少70% 以上的站点,包括国内大部分安全站点存在SQL Injection漏洞,因为MYSQL4以下的版本是不支持子语句的,而且当php.ini里的magic_quotes_gpc为On时。提交的变量中所有的‘(单引号),“(双引号),\(反斜线)and空字符会自动转为含有反斜线的转义字符,给SQL注入者一定的障碍。
  以下面两句SQL语句:①SELECT* FROM article WHERE articleid='$id' ②SELECT * FROM article WHERE articleid=$id
  两种写法在各种程序中都很普遍,但安全性是不同的,第一句由于把变量$id放在一对单引号中,这样使得我们所提交的变量都变成了字符串,即使包含了正确的SQL语句,也不会正常执行,而第二句不同,由于没有把变量放进单引号中,那我们所提交的一切,只要包含空格,那空格后的变量都会作为SQL语句执行,我们针对两个句子分别提交两个成功注入语句,来看看不同之处。
  ①指定变量$id为:1' and 1=2 union select * from user where userid=1/*
  此时整个SQL语句变为:SELECT * FROM article WHERE articleid='1' and 1=2 union select * from user where userid=1/*'
  ②指定变量$id为:
  1 and 1=2 union select * from user where userid=1
  此时整个SQL语句变为:SELECT * FROM article WHERE articleid=1 and 1=2 union select * from user where userid=1
  由于第一句有单引号,必须先闭合前面的单引号,这样才能使后面的语句作为SQL执行,并要注释掉后面原SQL语句中的后面的单引号,这样才可以成功注入,第二句没有用引号包含变量,那我们也不用考虑去闭合、注释,直接提交就可以了。
  
  2 实例应用
  
  我们拿一个用户验证的例子,看看如何学习构造有效的SQL语句。首先建立一个数据库和一个数据表并插入一条记录,如下:
  CREATE TABLE `user` (`userid` int(11) NOT NULL auto_increment,
  `username` varchar(20) NOT NULL default '',
  `password` varchar(20) NOT NULL default '',
  PRIMARY KEY (`userid`)
  ) TYPE=MyISAM AUTO_INCREMENT=3 ;
  #
  # 导出表中的数据 `user`
  #
  INSERT INTO `user` VALUES (1, 'angel', 'mypass');
  验证用户文件的代码如下:
  <?php
  $servername=“localhost”;
  $dbusername=“root”;
  $dbpassword=“”;
  $dbname=“injection”;
  mysql_connect($servername,$dbusername,$dbpassword) or die(“数据库连接失败”);
  $sql=“SELECT * FROM user WHERE username='$username' AND password='$password'";
  $result=mysql_db_query($dbname, $sql);
  $userinfo=mysql_fetch_array($result);
  if (empty($userinfo))
  {
  echo“登陆失败”;
  } else {
  echo“登陆成功”;
  }
  echo“<p>SQL Query: $sql<p>”;
  ?>
  用http://127.0.0.1/injection/user.php?username=angel' or '1=1访问时显示“登陆成功”,说明成功了。或者提交:http://127.0.0.1/injection/user.php?username=angel'/*
  或http://127.0.0.1/injection/user.php?username=angel'%23
  我们提交的第一句是利用逻辑运算,在ASP中运用可以说是非常广泛的,第二、三句是根据mysql的特性,mysql支持/*和#两种注释格式,在提交的时候是把后面的代码注释掉,值得注意的是由于编码问题,在IE地址栏里提交#会变成空的,这个要比逻辑运算简单得多了,由此可以看出PHP比ASP强大灵活。
其他文献
摘要:在工业电子设备的智能化和升级换代以及电路的设计中,常需要使用键盘,而使用标准PS2键盘则可简化设计。由于FPGA独特器件架构,利用FPGA设计键盘控制器,不仅硬件电路简单,而且编程过程比通用MCU比,简单易行。  关键词:控制器;键盘;FPGA;电路  中图分类号:TP271+.82 文献标识码:A    “注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
期刊
摘要:无线传感器网络Qos路由问题是NP完全问题,遗传算法对求解该类问题比较有效。本文在基本遗传算法基础上,应用于无线传感器网络Qos路由具体问题。通过具体问题的应用,得出最优路由。    “注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
期刊
摘要:网络学习系统是开展现代远程教育重要的教学平台。本文基于UML的网络学习系统需求分析,完成了网络学习系统的用例分析,创建了描述网络学习系统静态特征的UMI用例图、类图和描述系统动态行为的活动图和顺序图。  关键词:UML;网络学习系统;远程教育  中图分类号:G434 文献标识码:A    “注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
期刊
摘要:本文研究一种CELTS标准的课件制作系统,它以我国部颁CELTS为标准、以XML为文法,为课件建立规范化的描述框架,使得输出的课件具有统一性、标准性和开放性,实现资源的共享和重用。  关键词:网络课件;标准化;CELTS;XML  中图分类号:TP302.1 文献标识码:A    1  概述    1.1课件制作系统的发展现状和研究意义  1.1.1网络课件的作用。网络课件是根据网络教育信息
期刊
摘要:cAM350为计算机辅助制造软件,对于图形的优化、生产过程中各种数据的生成提供了极大的方便。本文讨论解决在CAM350软件中钻孔图层制作过程。  关键词:CAM350;计算机辅助;钻孔;路径优化  中图分类号:TP391.72 文献标识码:A    “注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文”。
期刊
根据近几年来的PRETCO应用能力考试的题型及分值来看,词汇的分值及其题量有增无减。我粗略统计,词汇题Section A 和Section B占了总分的15%,词汇题占了7%,阅读5篇文章,共25题,占总分的35%, 平均每篇文章有10—15个生词。由此可见,要提高高职高专学生应用能力考试的成绩,就必须从词汇抓起。通过调查统计得知,90%以上的学生采取死记硬背的方法,最大的困惑是今天记明天忘,所以
期刊
摘 要 国债回购具有类似于国债风险低、收益稳定、流动性高的特点,由于我国国债以及证券市场发展的不完善,在国债现券和回购之间长期存在着大约2%~3%的利差。利用国债现券与国债回购之间的利差进行无风险套利,既规避了金融风险,又充分利用了资金的使用价值,其收益远高于同期银行存款利率。在目前理财手段并不丰富的背景下,非常值得向投资者推荐。  关键词 国债 回购 无风险 理财 利差 套利证券交易所    一
期刊
在21世纪,以人为本是教育与教育管理的宗旨。这是因为人是教育和教育管理的根本出发点,教育与教育管理的根本目的就是促进人的发展。教育与教育管理是以人为对象的活动,其实施者也是人,以人为中心应是教育与教育管理的题中之义。  翻开人类教育史,我们可以发现一部教育“非人”的历史。在崇尚武力的时代,教育被当作培养战争机器的工具;在神学占统治地位的时代,教育是神学之附庸,是培养上帝奴仆的手段;在国家的需要压倒
期刊
2005年11月18日对于广州市番禺区市桥富都小学来说,是一个永远的痛。当天中午上学时,一名三年级男生在校园里不幸丧生于女教师的车轮之下。这起重大安全事故的发生,犹如一场突如其来的暴风雪,使该校社会形象在一片狂啸舆论中轰然坍塌。家长对学校的信任度瞬间达到冰点,以致2006年春季开学时有的家长连转学手续也不办就把孩子转走,一些骨干教师也以各种借口离开。  就是在这样的背景下,我被调任该校校长。彼时我
期刊
思维导图是表达发散性思维的有效图形工具,它运用图文并茂的技巧,把各级主题的关系用互相隶属于相关的层级图表现出来,把主题关键词与图像、颜色等建立记忆链接,充分运用左右脑的机能,利用记忆、阅读、思维的规律,协助人们在科学与艺术、逻辑与想像之间平和发展,开发人脑的无限潜能。它不但可以协助我们记忆,还能增进我们的创造力。  随着学生对思维导图的认识和掌握,思维导图可以应用在语文单元整体学习之中,帮助学生提
期刊