【PHP开源代码栏目提醒】:网学会员PHP开源代码为您提供数据库服务器中PHP注入的安全分析与防范 - 互联网参考,解决您在数据库服务器中PHP注入的安全分析与防范 - 互联网学习中工作中的难题,参考学习。
学术研究 朱薛质李建华上海交通大学信息安全工程学院上海 摘 要随着
开源软件的流行越来越多的网站选择使用模式其网络安全问题将越来越受到重视
论文基于模式的工作原理着重阐述和分析了模式中存在的注入漏洞同时提出了针对各类漏洞的防范措施关键词
开源软件模式网络安全注入漏洞中图分类号 文献标识码 文章编号 Security Analyzing and Defending of
PHP Injection on the Database ServerZhu Yun Xue Zhi Li JianhuaDepartment of Information Security Shanghai Jiaotong University Shanghai 200240 ChinaAbstractWith the popularity of open source software more and more
web servers prefer to choose LAMP mode sotheir network security problems will be paid more attention to. This paper gives emphasis on describing and analyzingPHP injection leaks existed in LAMP mode based on LAMP and presents defending measures about various injectionleaksKey
wordsopen source software LAMP mode network security injection leak数据库服务器中注入的安全分析与防范收稿日期作者简介朱年生硕士生研究方向网络与信息安全薛质年生副教授研究方向网络与信息安全李建华年生教授研究方向网络与信息安全 引言现今随着
计算机和
网络技术的快速发展网络信息量的增长十分惊人因此数据的有效管理显得极其重要和必要目前绝大多数的网站使用服务器脚本语言数据库操作系统的模式构建其中以 为主但是随着一些公开
代码的软件的流行越来越多的网站开始使用的模式俗称为模式相应地随着该模式的流行采用此模式的不少网站都存在安全上的隐患其中主要的隐患是存在注入漏洞此种漏洞可能造成数据库信息泄露被攻击者注入后门脚本等较为严重的后果 注入
工作原理是一种被广泛使用的开放源
代码多用途脚本语言其最大的特点是可嵌入于中适合开发是一种完全网络化的跨平台关系型数据库系统也是具有客户机服务器体系结构的分布式数据库
管理系统它采用结构化查询语言对于数据库进行操作目前由于服务器的广泛使用一般客户都是图 工作流程万方数据 学术研究通过浏览建立在服务器上面的网页来查询和操作数据库其工作原理的流程如图所示首先用户通过浏览器输入合法的 然后通过网络浏览器将用户的请求发送到指定的服务器服务器在接收到请求时首先检测服务器中是否存在用户请求的脚本一般为在
代码中嵌入类似标记的
代码若检测到则执行相应的操作然后将执行的结果通过网络显示在用户的浏览器上 注入分析所谓注入就是攻击者利用脚本编写时存在的各种漏洞在输入合适的地址后添加一串字符达到探测数据库信息或提升权限等目的一般情况下注入点较多出现在各个网站的提供输入
注册信息或查询和操作数据库的页面例如针对存在漏洞语句 的页面攻击者输入为 则可查询出用户名为的用户信息或者当不存在这个用户时查询结果返回表内所有的用户信息注入漏洞形成的主要原因是在编写
代码时缺乏对于输入信息的检测和控制从而让攻击者有机可趁构成其所需要的语句达到其获取关键信息或提升自身权限的目的从语句来看使用语法时都存在注入的可能性如表所示 应用实例分析现阶段利用注入技术的工具主要有和在此我们以为例其实现注入技术集成化提供的输入及网页浏览功能首先判断输入的地址所对应的网页是否存在注入漏洞使用了联合
查询的方法在输入的后面添加在中代表空格然后处理返回的头信息根据处理后的信息来判定是否存在漏洞并将注入后的页面显示在浏览框内以供用户参考在存在漏洞的情况下提供了探测文件内容利用函数实现查询指定数据表信息植入后门程序等功能 注入的防范从上面的分析可以看出导致注入的主要原因在于对提交的数据没有进行过滤处理或者过滤处理的不够严谨导致访问者可以对数据库进行操作达到查询数据或提升权限的目的因此对于的安全设置及对于提交数据的过滤能够防范注入漏洞的产生 数据库的安全设置 的授权表给数据库的访问提供了灵活的权限控制因此权限设置关系到数据目录和数据文件的安全性在服务器操作
系统中我们利用数据库数据目录的默认路径就能够看到类似的下列结果表 注入分析表万方数据学术研究 其中表示用户拥有读写和运行权限而其余用户没有任何操作权限这种数据目录属性是相对安全一旦将属性设置为或时访问用户只需将这些数据库下载到本机数据目录就能获取数据库的内容无需构造注入语句就达到注入的目的 避免使用用户启动远程服务因为当使用用户启动远程服务数据库用户就拥有了用户的写权限故当远程用户注入成功时那么此用户就可以利用中 和等语句来读取文件内容或将表中选择的数据导入到新创建的文件中以达到建立后门程序的目的 利用和语句来创建和删除用户权限可以限制哪个用户可以连接服务器从哪里连接以及连接后可以做什么操作这样就降低了 的威胁性当远程用户利用构造联合查询语句进行注入时则由于远程用户没有权限而无法跨表查询信息导致注入不成功 的安全设置 配置服务的文件中的令其为启动将对系统相关的文件打开命令执行等函数进行限制使所有此类函数只能操作与脚本相同的文件这就防止了远程用户在注入成功后修改用户没有权限修改的文件同时用户不能随意修改全局变量防止了远程用户在进行认证时利用构造注入语句绕过认证过程 配置的文件令为要求
程序员对作为判断的变量在程序开始时初始化一个值避免远程用户控制判断变量此项设置也会为编程带来难度令为关闭远程打开文件的功能 严格配置文件和目录的权限只允许上传的目录能够让远程用户可写并且对于上传目录去掉解释功能即此目录下的文件不能被解释因此即使远程用户成功注入上传了后门脚本也无法起到作用远程用户访问此脚本时只能直接显示
源码具体操作为修改文件中的 令其为 配置的文件中的令其为启动将输入的值中的单引号双引号反斜线和空字符转换为含有反斜线的字符如对于上述提到的存在漏洞的语句 当输入为 时则执行的语句为 这样注入的目的就被阻止了 配置的文件中的 部分内容 关闭警告及错误信息的返回防止远程用户通过此类信息获取脚本所在的物理信息为远程用户的进一步攻击提供有利的信息 过滤提交数据 利用和函数检查操作的文件是否是用户上传的文件防止用户将系统文件拷贝到目录下同时也可以检测上传文件是否为脚本文件防止注入后门程序 利用函数过滤用户输入的命令通过检测用户输入的内容确保过滤后的内容中不存在任何用户输入的命令防止远程用户任意执行命令 利用函数处理输入的查询数据插入数据及更新数据作用类似于将设置为降低注入的可能性 结束语随着模式越来越多地使用于网站建立中注入的
问题会越来越受到重视本文分析了漏洞可能存在的方式及如何防范漏洞得出注入漏洞的产生主要是由于脚本
代码的编写不够严谨服务器数据库及设置存在较大的缺陷由于技术的快速发展注入必然会出现新的方式所以本文一定存在未考虑到的地方但通过本文阐述的内容可以完善网站建立过程参考文献 手册 注入专题黑客档案 完全手册 北京电子工业出版社 黑客防线 万方数据