一种识别Web程序漏洞的方法与流程

文档序号:11831279阅读:419来源:国知局

本发明涉及一种识别漏洞的方法,具体涉及一种识别Web程序漏洞的方法。



背景技术:

现有识别通用Web程序漏洞的方法,是通过收集网络上已公开的通用Web程序的漏洞,分析Payload(针对漏洞触发点的攻击利用代码)关键特征,然后建立漏洞库,并在日志中用这些特征匹配请求日志,未被匹配上的请求日志也可能会存在0day(未公开的漏洞),需要人工进一步分析;这种方法的思路类似杀毒软件病毒特征库,全程需要大量人工干预,如:收集漏洞、提取Payload特征、分析未能匹配上的日志,都需要耗费大量人力成本;而且还可能存在特征误报,Payload需要反复做抽检才可以提高精度。



技术实现要素:

本发明公开了一种可以减轻人力成本,提高准确率的识别Web程序漏洞的方法。

本发明采用的技术方案是:一种识别Web程序漏洞的方法,包括以下步骤:

A、获取HTTP请求日志,选择其中使用通用Web程序网站的日志;

B、将日志还原成HTTP请求格式,并将HTTP协议的Host字段修改为Web运行环境的地址;

C、将还原后的HTTP置于Web运行环境中,对函数的调用和SQL语句执行进行记录;

D、如果调用了危险函数或SQL语句有构造SQL注入攻击,则有漏洞触发。

进一步的,所述危险函数指调用系统命令、执行任意代码的函数。

进一步的,所述危险函数包括system、exec、passthru和eval。

进一步的,所述步骤C中Web运行环境预先将底层函数调用和最终执行的SQL语句输出到文件中。

进一步的,所述步骤A中从CDN节点获取HTTP请求日志。

本发明的有益效果是:

(1)本发明可以从是否触发漏洞行为来判断是否是未知漏洞,对未知漏洞的识别率更高;

(2)本发明可以不必建立漏洞库,减轻人力成本。

附图说明

图1为本发明流程示意图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步说明。

如图1所示,一种识别Web程序漏洞的方法,包括以下步骤:

A、获取HTTP请求日志,选择其中使用通用Web程序网站的日志(例如Discuz!);

B、将日志还原成HTTP请求格式,并将HTTP协议的Host字段修改为Web运行环境的地址;

C、将还原后的HTTP置于Web运行环境中,对函数的调用和SQL语句执行进行记录;

D、如果调用了危险函数或SQL语句有构造SQL注入攻击,则有漏洞触发。

进一步的,所述危险函数指调用系统命令、执行任意代码的函数。

进一步的,所述危险函数包括system、exec、passthru和eval;当然并不限于列举的这几种函数,也可以包括其他函数。

进一步的,所述步骤C中Web运行环境预先将底层函数调用和最终执行的SQL语句输出到文件中。

进一步的,所述步骤A中从CDN节点获取HTTP请求日志。

本发明将Web日志还原为正常HTTP请求到特定的Web环境中,看是否触发漏洞行为来判断是否是未知漏洞,从而减轻人力成本,并提高挖掘的准确率;首先部署Web程序的运行环境,该平台运行着通用的Web应用程序,例如Discuz!;将收集的HTTP日志还原成完整的HTTP请求,将请求到事先布置好的Web运行环境;Web运行环境直线对底层的函数调用、最终执行的SQL语句等关键调用信息单独输出到文件中;Web运行环境会对语言的关键函数调用、SQL语句进行记录,最后通过分析调用的函数和SQL语句,判断是否有漏洞出发;使用此方法可以还原攻击“现场”,通过回访请求的方式发现其中的“0day攻击”能将未知漏洞识别工作80%以上自动化。

文中:CDN的全称是Content Delivery Network,即内容分发网络;SQL全称是Structured Query Language,结构化查询语言;Discuz!全称是Crossday Discuz!Board是一套通用的社区论坛软件系统;system、exec、passthru和eval是一种windows操作系统下的函数语言。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1