应用程序目录遍历回显漏洞的检测方法及系统与流程
- 国知局
- 2024-09-11 14:50:38
本发明涉及目录遍历回显漏洞的检测,尤其涉及一种检测应用程序目录遍历回显漏洞的方法及系统。
背景技术:
1、目录遍历回显漏洞是一种安全漏洞,它源于web服务器或web应用程序对用户输入的文件名称的安全性验证不足。网络攻击者可以利用这种漏洞,通过特定的字符或序列绕过服务器的安全限制,从而访问服务器上存储的敏感信息文件,这些文件可能包括应用程序的代码和数据、后端系统的凭据以及操作系统文件等。在某些情况下,攻击者甚至可能能够写入服务器上的任意文件,从而修改应用程序数据或行为,并最终完全控制服务器。
2、为了保障web应用程序的安全性,往往需要采取有效的检测方法来检测目录遍历回显漏洞。现有技术对于目录遍历回显漏洞的检测依赖于输入验证和配置管理,主要包括对用户输入进行严格验证、使用漏洞扫描工具和部署waf等方法。
3、目前的检测方法存在着如下缺陷:首先,传统的漏洞扫描工具和waf方法通过预设的规则库去静态地检测目录遍历回显漏洞,如果新型的漏洞攻击手法未被记录在该规则库中,则无法完全检测到应用程序中可能存在的目录遍历回显漏洞,易产生漏洞漏报。其次,通过预设规则库进行检测的方法难以对复杂的攻击手段进行检测,攻击者可采用其他技术对攻击手法进行混淆从而绕过规则库的检测,局限性大。最后,当前的检测技术无法定位到产生该目录遍历回显漏洞的代码行,需要检测人员手动调试以进行漏洞定位,查找工作量大,耗费时间和人力。
4、因此,需要对应用程序中遍历目录回显漏洞的检测方法进行改善,以保证应用程序质量。
技术实现思路
1、本发明的目的是提供一种可对应用程序中的目录遍历回显漏洞进行动态检测以提高检测准确性的应用程序目录遍历回显漏洞的检测方法及系统。
2、为实现上述目的,本发明公开了一种应用程序目录遍历回显漏洞的检测方法,其包括:
3、获取待测应用程序中的创建目录对象的输入参数,所述输入参数用于指示所述目录对象的访问路径;
4、当所述输入参数来源于用户所发出的遍历目录请求时,保存与该所述输入参数相对应的目录对象,以获得第一目录对象;
5、获取当前调用目录遍历函数的目录对象,以获得第二目录对象;
6、当所述第二目录对象与所述第一目录对象相同时,保存所述目录遍历函数的遍历返回值以及调用链;
7、如果当前所述遍历目录请求的响应数据与所述遍历返回值之间的相似性符合预期,则在该所述遍历目录请求上设置漏洞标记。
8、具体地,本检测方法通过插桩工具插桩所述待测应用程序,以获得所述应用程序的运行数据。
9、具体地,所述调用链包括所述第二目录对象在遍历所述输入参数指示的所述访问路径时所调用的所有函数的调用信息。
10、具体地,当前所述遍历目录请求的所述响应数据与所述遍历返回值之间的相似性判断方法包括如下两种情况中的任一种:
11、情况一:当所述响应数据的长度小于或等于所述遍历返回值时,通过字符串比较函数进行判断;
12、情况二:当所述响应数据的长度大于所述遍历返回值时,还提供一预设的相似度分析模型,通过所述相似度分析模型进行判断。
13、具体地,所述字符串比较函数包括equals函数和contains函数。
14、具体地,所述相似度分析模型按照下述步骤对当前所述遍历目录请求的所述响应数据与所述遍历返回值之间的相似性进行判断:
15、获取所述遍历返回值中每一子文件的路径信息和每一子目录的路径信息;
16、基于余弦相似度算法计算每一所述子文件的路径信息或每一所述子目录的路径信息与所述响应数据的文本相似度p1;
17、当0.5≤p1<1时,当前所述遍历目录请求的响应数据与所述遍历返回值之间的相似性符合预期。
18、本发明还公开一种应用程序目录遍历回显漏洞的检测系统,所述检测系统基于上述的检测方法工作。
19、本发明还公开一种应用程序目录遍历回显漏洞的检测系统,包括:
20、一个或多个处理器;
21、存储器;
22、以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的检测方法的指令。
23、本发明还公开一种计算机可读存储介质,包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的检测方法。
24、与现有技术相比,本发明上述技术方案提供的检测方法,首先,获取待测应用程序中的创建目录对象的输入参数,该输入参数用于创建目录对象并指示目录对象的访问路径,紧接着,判断输入参数是否来源于用户所发出的遍历目录请求,以判断该请求是否有可能存在目录遍历回显漏洞,随后,判断由输入参数创建的目录对象是否与当前调用目录遍历函数的目录对象是否相同。基于上述两个步骤,对该遍历目录请求是否存在目录遍历漏洞进行了详细的判断。
25、接着是判断是否存在目录遍历回显漏洞阶段,这需要对遍历目录函数所获得的遍历返回值和请求返回的响应数据的相似性进行分析。在这过程中,判断回显漏洞是否存在所基于的是目录对象动态遍历得到的遍历返回值与响应体实际被写入的响应数据,遍历返回值和响应数据仅随输入参数的改变而改变,而不依赖于特殊的环境和工具,可适用于所有应用程序。这种方法能够基于请求实际运行得到的数据动态地检测出遍历目录回显漏洞,而不是静态地筛选所有可能存在漏洞的请求,从而有效地增加了分析准确性。另外,在检测过程中还获取了目录遍历函数的调用链,使得检测人员能够根据调用链所包含的信息精准定位漏洞产生处,省去调试和查找时间,为后续漏洞的修复工作提供了极大帮助。
26、总之,该检测方法基于动态遍历得到的遍历返回值和响应数据的基础上对请求是否具有遍历回显漏洞进行了判断,有效地提高了检测的精确度和应用程序的整体安全性,该检测方法的适用性强和灵活性高,还能够定位漏洞所在行,减少漏洞修复前的查找和调试工作量。
技术特征:1.一种应用程序目录遍历回显漏洞的检测方法,其特征在于,包括:
2.根据权利要求1所述的应用程序目录遍历回显漏洞的检测方法,其特征在于,通过插桩工具插桩所述待测应用程序,以获得所述应用程序的运行数据。
3.根据权利要求1所述的应用程序目录遍历回显漏洞的检测方法,其特征在于,所述调用链包括所述第二目录对象在遍历所述输入参数指示的所述访问路径时所调用的所有函数的调用信息。
4.根据权利要求1所述的应用程序目录遍历回显漏洞的检测方法,其特征在于,当前所述遍历目录请求的所述响应数据与所述遍历返回值之间的相似性判断方法包括如下两种情况中的任一种:
5.根据权利要求4所述的应用程序目录遍历回显漏洞的检测方法,其特征在于,所述字符串比较函数包括equals函数和contains函数。
6.根据权利要求4所述的应用程序目录遍历回显漏洞的检测方法,其特征在于,所述相似度分析模型按照下述步骤对当前所述遍历目录请求的所述响应数据与所述遍历返回值之间的相似性进行判断:
7.一种应用程序目录遍历回显漏洞的检测系统,其特征在于,所述检测系统基于权利要求1至6任一项所述的检测方法工作。
8.一种应用程序目录遍历回显漏洞的检测系统,其特征在于,包括:
9.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至6任一项所述的检测方法。
技术总结本发明公开一种应用程序目录遍历回显漏洞的检测方法及系统,检测方法包括:获取待测应用程序中的创建目录对象的输入参数,输入参数用于指示目录对象的访问路径;当输入参数来源于用户所发出的遍历目录请求时,保存与该输入参数相对应的目录对象,以获得第一目录对象;获取当前调用目录遍历函数的目录对象,以获得第二目录对象;当第二目录对象与第一目录对象相同时,保存目录遍历函数的遍历返回值以及调用链;如果当前遍历目录请求的响应数据与遍历返回值之间的相似性符合预期,则在该遍历目录请求上设置漏洞标记。基于该检测方法,能有效提高目录遍历回显漏洞的检测精确度,并定位漏洞所在行。技术研发人员:胡娇娇,万振华,王颉,李华,董燕受保护的技术使用者:扬州数安技术有限公司技术研发日:技术公布日:2024/9/9本文地址:https://www.jishuxx.com/zhuanli/20240911/292300.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表