admin管理员组

文章数量:1531246

2024年2月14日发(作者:)

基于PHP的Web应用SQL注入漏洞检测系统的设计和实现

何金栋

【摘 要】基于PHP的Web应用SQL注入漏洞检测系统通过建立检测语句库,快速检测SQL注入点,提交特殊的数据库查询代码进行验证,并对SQL漏洞进行消除和加固防护,高效防护公司web应用安全稳定运行.%The application of PHP

Web SQL injection vulnerability detection system through the

establishment of detection statement base based on rapid detection of

SQL injection, submitted to the special database query code is verified, and

the SQL vulnerabilities were eliminated and strengthening protection,

stable operation, web application security protection.

【期刊名称】《电子测试》

【年(卷),期】2017(000)024

【总页数】3页(P72-73,45)

【关键词】PHP;Web注入检测漏洞

【作 者】何金栋

【作者单位】国网福建省电力有限公司电力科学研究院,福建福州,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注入漏洞利用工具对目标网站/2/进行扫描为例。

(1)双击“phpcms_v9_Sqli_”,网址处输入网站地址/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).

本文标签: 漏洞注入信息检测进行