基于PHP的Web应用SQL注入漏洞检测系统的设计和实现
2018-01-25何金栋
何金栋
(国网福建省电力有限公司电力科学研究院,福建福州,350007)
0 引言
PHP是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHPCMS是国内领先的网站信息发布管理系统,同时也是开源的PHP开发架构。PHPCMS由内容模型、广告、邮件订阅、短消息、自定义表单、全站搜索等二十多个功能模块组成,内置新闻、图片、下载、信息、产品五大内容模型。PHPCMS采用模块化开发,支持自定义内容模型和会员模型,并且可以自定义字段。该软件采用模块化开发,支持多种分类方式,使用它可方便实现个性化网站的设计、开发与维护。它支持众多的程序组合,可轻松实现网站平台迁移,并可广泛满足各种规模的网站需求,可靠性高。PHPCMS采用PHP5+MYSQL做为技术基础进行开发。采用OOP(面向对象)方式进行基础运行框架搭建。
SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:(1)不当的类型处理(2)不安全的数据库配置(3)不合理的查询集处理(4)不当的错误处理(5)转义字符处理不合适(6)多个提交处理不当。
在某些web页面表单中,用户输入的内容直接用来构造动态SQL命令,或者作为存储过程的输入参数,这些表单特别容易受到SQL注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是SQL注入就被恶意利用了。网站程序员在写代码的时候,没有对用户提交的数据参数进行严格验证。导致恶意用户可以提交非法Sql语句查询数据库内容,窃取当前数据库用户权限。
该工具针对基于PHP的Web应用SQL注入漏洞研发,通过深入逆向分析SQL漏洞的形成原因编写了此漏洞检测系统。通过建立检测语句库,快速检测SQL注入点,提交特殊的数据库查询代码进行验证,并对SQL漏洞进行消除和加固防护,高效防护公司web应用安全稳定运行。
1 主要功能
基于PHP的Web应用SQL注入漏洞检测系统包括以下四个功能模块。
(1)目标URL地址模块:自主研发PHPCMSV9SQL注入漏洞利用工具可输入网站URL地址到目标URL地址输入框。
(2)管理员信息回显模块:自主研发PHPCMSV9SQL注入漏洞利用工具可通过SQL注入漏洞获取系统管理员帐号信息,回显到该模块。
(3)密码信息回显模块:自主研发PHPCMSV9SQL注入漏洞利用工具可通过SQL注入漏洞获取系统管理员密码信息,回显到该模块。
(4)密码Salt信息回显模块:自主研发PHPCMSV9SQL注入漏洞利用工具可通过SQL注入漏洞获取系统管理员登录的密码Salt信息,回显到该模块。
2 开发设计
该款基于PHP的Web应用SQL注入漏洞检测系统概要设计图如图1所示。
图1 设计图
函数详细说明:
(1)static void Main();
自主研发PHPCMSV9SQL注入漏洞利用工具程序主函数、入口点。
(2)private void button1_Click();
自主研发PHPCMSV9SQL注入漏洞利用工具按钮功能,进行漏洞检测与利用。
(3)public string getexp(string poc);
自主研发PHPCMSV9SQL注入漏洞利用工具功能接口,利用POC获取相关信息。
3 实现应用
通过自主研发PHPCMSV9SQL注入漏洞利用工具对目标网站http://192.168.XX.XX/2/进行扫描为例。
(1)双击“phpcms_v9_Sqli_EXP.exe”,网址处输入网站地址http://192.168.XX.XX/2/,如下图2所示。
(2)点击“获取验证码”按钮,在“填入验证码”模块处输入验证码,点击开始注入,工具会提示是否存在SQL注入漏洞,在回显的文本框中返回管理员帐号信息、密码信息、密码Salt信息,如图3所示。
图2
图3
(3)如果填入验证码信息错误,工具会提示验证码信息错误,在回显的文本框中不会返回管理员帐号信息、密码信息、密码Salt信息,如图4所示。
图4
4 结论
该安全漏洞检测系统主要过对基于PHP架构的WEB应用进行深度遍历,针对典型的SQL注入漏洞进行检测,分析验证注入点的危害程度,模拟黑客使用的漏洞发现技术和攻击手段,获得敏感信息或者管理员权限,有利于国网福建省电力有限公司制定有效的Web应用安全加固措施,有效提高公司重要网站和信息系统的防御能力。通过该工具的安全检测和渗透测试,有效提高国网福建省电力有限公司网络与信息系统的安全检测能力,完善公司信息安全防御体系,保障公司网络与信息系统安全稳定运行,全面提升公司Web应用的主动防御能力。
[1]刘凯凌. 基于PHP数据加密安全性探讨[J]. 电脑编程技巧与维护. 2017(04).
[2]胡华海,王新宇. 深入研究PHP程序开发中存在的漏洞[J].科技风.2016(12).
[3]聂庆鹏. 一种PHP程序源代码加密保护机制的设计[J]. 信息系统工程. 2017(06).