logo好方法网

系统命令注入漏洞检测方法和装置、设备及存储介质


技术摘要:
本申请公开了一种系统命令注入漏洞检测方法,该方法通过构造payload,将payload插入到HTTP请求中并记录payload和HTTP请求参数,将HTTP请求发送给目标操作系统,由使目标操作系统执行payload进行DNS查询,从自建DNS服务器中获取DNS查询记录,若DNS查询记录中包括特定字  全部
背景技术:
系统命令为了方便应用程序的使用者处理相关应用场景的功能,各种常见的语言 都提供了命令执行相关类函数,同时调用的变量未考虑安全因素,就会执行恶意的命令调 用,被攻击利用。应用中,因为是由程序拼凑命令行(包括参数)来实现调用外部程序的,因 此用户也能够通过小计量来突破限制,实现调用其他外部程序。系统命令注入即能够在服 务器上执行任意命令,利用系统命令注入漏洞可以根据远程攻击者的指令执行命令来对系 统进行远程控制。 现有技术中,系统命令注入检测是常见的漏洞检测方式之一,按照判断漏洞的方 法,系统命令注入漏洞检测方法包括基于页面响应有回显的系统命令注入检测,基于时间 盲注的系统命令注入漏洞检测。 基于页面响应有回显的系统命令注入漏洞检测通过构造带有合适payload的请求 包使当前应用程序输出特定的字符串,根据判断这个预定于的字符串来判断漏洞是否存 在。当应用程序执行了系统命令不改变页面回显时,根据前面的检测方法将会判断系统命 令注入漏洞不存在,导致系统命令注入漏洞的漏报。 基于时间盲注的系统命令注入漏洞检测通过构造带有合适payload的请求包使当 前应用程序响应时间发生改变,通过多次请求来判断页面响应耗时与带有预定于的 payload请求包是否匹配来判断是否存在系统命令注入漏洞。基于时间盲注的系统命令注 入漏洞检测可以不依赖响应内容来检测无回显的情况下发生的漏洞。但在实际过程中,由 于网络波动造成的网络延迟将不可避免,导致采用基于时间盲注的系统命令注入漏洞检测 方法也比较容易产生误报,另一方面在检测耗时上也比较多,检测效率不高。
技术实现要素:
有鉴于此,本公开提出了一种系统命令注入漏洞检测方法,用于检测目标操作系 统中的漏洞,包括: 构造payload;其中,所述payload包含特定字符串; 将所述payload插入到HTTP请求中并记录所述payload和HTTP请求参数; 将所述HTTP请求发送给所述目标操作系统,由使所述目标操作系统执行所述 payload进行DNS查询; 从自建DNS服务器中获取DNS查询记录,若所述DNS查询记录中包括所述特定字符 串,依据所述HTTP请求参数确定漏洞位置; 其中,所述DNS查询记录包含所述目标操作系统进行DNS查询时得到的信息。 在一种可能的实现方式中,所述构造payload包括: 4 CN 111597559 A 说 明 书 2/6 页 随机生成一组所述特定字符串; 将所述特定字符串与预设域名进行拼接得到域名串; 将所述域名串填充到命令中得到所述payload。 在一种可能的实现方式中,将所述payload插入到HTTP请求中并记录所述payload 和HTTP请求参数包括: 将所述payload插入到所述HTTP请求中对应的参数中; 记录所述特定字符串和所述HTTP请求参数; 将所述特定字符串和所述HTTP请求参数存储到本地数据库中。 在一种可能的实现方式中,从自建DNS服务器获取DNS查询记录,若所述DNS查询记 录中包括所述特定字符串,依据所述HTTP请求参数确定漏洞位置包括: 获取所述自建DNS服务器的DNS查询记录; 提取所述DNS查询记录中的域名; 若所述域名中的子字符串与所述特定字符串相同,则依据所述HTTP请求参数确定 漏洞位置。 在一种可能的实现方式中,若所述DNS服务器中不存在DNS查询记录,则不存在漏 洞。 在一种可能的实现方式中,所述命令依据所述目标操作系统的种类设定。 根据本公开的另一方面,提供了一种系统命令漏洞检测装置,其特征在于,包括 payload构造模块、payload插入模块、HTTP请求发送模块和漏洞位置确定模块; 所述payload构造模块,被配置为构造payload;其中,所述payload包含特定字符 串; 所述payload插入模块,被配置为将所述payload插入到HTTP请求中并记录所述 payload和HTTP请求参数; 所述HTTP请求发送模块,被配置为将所述HTTP请求发送给目标操作系统,由使所 述目标操作系统执行所述payload进行DNS查询; 所述漏洞位置确定模块,被配置为从自建DNS服务器中获取DNS查询记录,若所述 DNS查询记录中包括所述特定字符串,依据所述HTTP请求参数确定漏洞位置; 其中,所述DNS查询记录包含所述目标操作系统进行DNS查询时得到的信息。 在一种可能的实现方式中,所述payload构造模块包括字符串生成单元、字符串拼 接单元和域名串填充单元; 所述字符串生成单元,被配置为随机生成一组所述特定字符串; 所述字符串拼接单元,被配置为将所述特定字符串与预设域名进行拼接得到域名 串; 所述域名串填充单元,被配置为将所述域名串填充到命令中得到所述payload。 根据本公开的另一方面,提供了一种系统命令漏洞检测设备,其特征在于,包括: 处理器; 用于存储处理器可执行指令的存储器; 其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。 根据本公开的另一方面,提供了一种非易失性计算机可读存储介质,其上存储有 5 CN 111597559 A 说 明 书 3/6 页 计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现前面任一所述的 方法。 通过构造payload,其中,payload包含特定字符串,将payload插入到HTTP请求中 并记录payload和HTTP请求参数,将HTTP请求发送给目标操作系统,由使目标操作系统执行 payload进行DNS查询,从自建DNS服务器中获取DNS查询记录,若DNS查询记录中包括特定字 符串,依据HTTP请求参数确定漏洞位置,其中,DNS查询记录包含目标操作系统进行DNS查询 时得到的信息。通过基于DNS通道的系统命令注入漏洞检测能够对系统命令注入漏洞进行 快速检测,对目标应用程序不要求是否有回显,适用的目标更加广泛,且能够快速对漏洞进 行检测减少了漏洞检测时间,提高了扫描效率,并且正确性上有稳步提高,减少了误报率和 漏报率。 根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得 清楚。 附图说明 包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的 示例性实施例、特征和方面,并且用于解释本公开的原理。 图1示出本公开实施例的系统命令注入漏洞检测方法的流程图; 图2示出本公开实施例的系统命令注入漏洞检测方法的另一流程图; 图3示出本公开实施例的系统命令注入漏洞检测装置的框图; 图4示出本公开实施例的系统命令注入漏洞检测设备的框图。
分享到:
收藏