[发明专利]一种基于逆向分析的物联网设备栈溢出漏洞挖掘及利用方法在审
申请号: | 202310209547.1 | 申请日: | 2023-03-07 |
公开(公告)号: | CN116305152A | 公开(公告)日: | 2023-06-23 |
发明(设计)人: | 郑炜;林昊天;王寒冰;朱欣怡;张晓雨;秦世伟 | 申请(专利权)人: | 西北工业大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/14 |
代理公司: | 西安匠星互智知识产权代理有限公司 61291 | 代理人: | 陈星 |
地址: | 710072 *** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 逆向 分析 联网 设备 溢出 漏洞 挖掘 利用 方法 | ||
1.一种基于逆向分析的物联网设备栈溢出漏洞挖掘方法,其特征在于:包括以下步骤:
步骤1:获取物联网设备固件及Web服务后端代码及结构;
步骤2:追踪Web服务后端代码中的危险函数,以关系链为单位对代码进行逆向分析,捕捉漏洞点,记录漏洞相关信息。
2.根据权利要求1所述一种基于逆向分析的物联网设备栈溢出漏洞挖掘方法,其特征在于:步骤1包括以下步骤:
步骤1.1:对物联网设备固件的文件系统进行提取,并在提取到的文件系统中找到该物联网设备提供Web服务的二进制文件;
步骤1.2:使用IDA逆向工具对找到的二进制文件进行预加载,从而获取物联网设备Web服务后端汇编代码与使用IDA反汇编功能生成的C语言代码,并获得逻辑完整的代码结构;所述代码结构包括函数之间的调用关系、字符串引用关系。
3.根据权利要求2所述一种基于逆向分析的物联网设备栈溢出漏洞挖掘方法,其特征在于:步骤1.1中,使用Binwalk工具对物联网设备固件的文件系统进行提取。
4.根据权利要求1所述一种基于逆向分析的物联网设备栈溢出漏洞挖掘方法,其特征在于:步骤2包括以下步骤:
步骤2.1:在获取的Web服务后端代码中寻找危险函数,并根据获取的代码结构追踪危险函数调用关系并获取变量传递关系;
步骤2.2:根据函数调用关系以及变量传递关系,确定关系链,以关系链为基本单位进行后续漏洞定位和分析;所述关系链由函数调用链及变量传递链共同组成,可清晰、完整地展现漏洞触发逻辑;
步骤2.3:对每一关系链,按照以下规则进行判断,确定关系链是否存在漏洞点:
以下三个条件都满足的关系链为漏洞点所在关系链:①末尾结点变量被初始化为用户在前端Web页面输入的字符串;②在变量传递过程中并未进行字符串长度检查;③从获取用户在前端Web页面输入的字符串到赋值给本规则①中所述末尾结点变量的过程中,并未进行字符串长度检查;
步骤2.4:定位漏洞点后,确定漏洞点前后端关联和漏洞触发逻辑。
5.根据权利要求4所述一种基于逆向分析的物联网设备栈溢出漏洞挖掘方法,其特征在于:步骤2中,所述变量为字符串类型变量。
6.根据权利要求4所述一种基于逆向分析的物联网设备栈溢出漏洞挖掘方法,其特征在于:步骤2中,所述关系链基本特征为:
(1)关系链的函数调用链起点为危险函数;
(2)关系链的变量传递链起点为同时满足以下条件的变量:①为函数调用链起点危险函数的参数;②该值通过危险函数被写入另一变量;
(3)函数调用链中的每一个函数称为结点函数,则将调用当前函数调用链末尾结点函数的函数被添加至函数调用链末尾;
(4)变量传递链中的每一个变量称为结点变量,若某一变量经过函数调用参数传递或赋值传递形成当前变量传递链末尾结点变量,则将该变量被添加至变量传递链末尾;
(5)为每一结点变量添加属性,属性为该变量所在函数;
(6)关系链的函数调用链和变量传递链均为单链,若函数调用或参数传递出现分支,则被视为不同的关系链;
(7)满足以下任一条件时,关系链结束:①出现漏洞点;②结点变量被初始化为某一具体字符串时,漏洞点仍未出现。
7.根据权利要求1或4或6中所述一种基于逆向分析的物联网设备栈溢出漏洞挖掘方法,其特征在于:步骤2中,所述漏洞相关信息包括危险函数、关系链、是否出现漏洞点的分析结果,若出现漏洞点,则还包括漏洞点API接口字符串、其他API接口字符串。
8.权利要求1~7任一所述挖掘方法挖掘得到的漏洞的利用方法,其特征在于:确定漏洞后,通过访问物联网设备Web页面,构造恶意请求,向物联网设备进行攻击,触发栈溢出漏洞。
9.根据权利要求8所述利用方法,其特征在于:具体包括以下步骤:
步骤a:确定漏洞后,分析关系链中各函数功能,将后端函数功能与前端业务模块位置对应,得到触发漏洞的业务模块对应的Web页面;
步骤b:进入出现漏洞的物联网设备的Web页面,并跳转到漏洞点对应的Web页面;
步骤c:对漏洞点对应的Web页面中需要填写的内容进行合法的用户输入,并在保存用户输入时进行抓包,得到POST请求数据包;
步骤d:修改获取到的POST数据请求包,对字符串进行恶意构造,并发送修改后的POST数据请求包。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西北工业大学,未经西北工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310209547.1/1.html,转载请声明来源钻瓜专利网。