当前位置: 首页 > news >正文

7种python常见漏洞与大模型检测思路

1. 引入

vulnhuntr是参考1中的一个开源项目,能借助大模型来静态分析python代码,并挖掘其中的漏洞。
从源码中能看到,目前它支持7种python代码中漏洞的挖掘:

  1. Local File Inclusion (LFI)
  2. Remote Code Execution (RCE)
  3. Server-Side Request Forgery (SSRF)
  4. Arbitrary File Overwrite (AFO)
  5. SQL Injection (SQLI)
  6. Cross-Site Scripting (XSS)
  7. Insecure Direct Object References (IDOR)

vulnhuntr主要是通过提示词和静态代码阅读来检测漏洞,输入的对象是python源码,要求是server端的python代码。

下面介绍这些漏洞的基本原理与检测思路(大模型提示词)。

2. 支持漏洞的类型

从源码(参考3)中,可以看到对这7种漏洞的分析、挖掘原理(提示词)。

2.1 Local File Inclusion (LFI)

  1. 漏洞原理

LFI(Local File Inclusion)是本地文件包含漏洞,它允许攻击者读取同一台服务器上的任何文件。一个经典的POC就是能读取密码文件,如下所示(参考4)

http://vulnerable_host/preview.php?file=../../../../etc/passwd
  1. 检测手段(提示词)
    (1)检测一些危险函数:open(), file(), io.open()
    (2)用户控制的路径遍历逻辑

2.2 Remote Code Execution

  1. 漏洞原理

Remote Code Execution,远程代码执行漏洞,允许攻击者在目标系统上远程执行恶意代码或命令。

  1. 检测手段(提示词)
    (1)危险函数:eval(), exec(), subprocess modules,os.system(), os.popen()
    (2)动态import,服务器端的模版注入
    (3)反序列化漏洞

2.3 Server-Side Request Forgery

  1. 漏洞原理
    服务器端请求伪造。是一个由攻击者构造请求,在目标服务端执行的一个安全漏洞。攻击者可以利用该漏洞使服务器端向攻击者构造的任意域发出请求,目标通常是从外网无法访问的内部系统。

  2. 检测手段(提示词)
    (1)危险函数:requests.get(), urllib.request.urlopen()
    (2)含有URL解析

2.4 Arbitrary File Overwrite

  1. 漏洞原理
    攻击者可以通过利用软件或系统中的漏洞,将恶意文件覆盖到目标系统中的任意位置,从而导致系统受到攻击。

  2. 检测手段(提示词)
    (1)危险函数:open(),os.rename(), shutil.move()
    (2)用户控制的文件路径操作

2.5 SQL Injection

  1. 漏洞原理
    SQL注入漏洞产生的原因是网站应用程序在编写时未对用户提交至服务器的数据进行合法性校验(类型、长度、业务参数合法性等),同时没有对用户输入数据进行有效地特殊字符过滤,使得用户的输入直接带入数据库执行,超出了SQL语句原来设计的预期结果。其能导致 窃取数据、获取DBA权限等危害。

  2. 检测手段(提示词)
    (1)确定所有远程用户输入的接收点(例如,API 参数、表单提交)
    (2)定位并追踪SQL操作
    (3)评估这些控制措施对SQL注入攻击的有效性

2.6 Cross-Site Scripting

  1. 漏洞原理
    跨站脚本攻击(Cross-site Scripting,通常称为XSS),是一种典型的Web程序漏洞利用攻击。 攻击者利用Web程序对用户输入检查不足的漏洞将可执行恶意脚本注入网站或Web应用,当用户访问网页时触发恶意脚本的执行,从而达到窃取用户个人数据、弹出广告,甚至篡改网页内容等攻击目的。

  2. 检测手段(提示词)
    (1)危险函数:render(), render_to_string()
    (2)属性值插入 :在HTML属性中直接插入用户输入,如

2.7 Insecure Direct Object References

  1. 漏洞原理
    越权漏洞IDOR。场景为基于用户提供的输入对象进行访问时,未进行权限验证,是一类访问控制漏洞
    考虑一个网站,它通过从后端数据库检索信息,使用以下 URL 访问客户帐户页面:
https://insecure-website.com/customer_account?customer_number=132355

在这里,客户编号直接用作在后端数据库上执行的查询中的记录索引。如果没有其他控制措施,攻击者可以简单地修改该customer_number值,绕过访问控制来查看其他客户的记录。这是导致横向权限提升的 IDOR 漏洞示例。

  1. 检测手段(提示词)
    (1)寻找涉及用户ID、文件ID、订单ID等唯一标识符的代码段,这些标识符可能用于访问资源。例如,user_id, file_id, order_id等。
    (2)检查URL参数中是否直接传递ID
    (3)验证代码在允许访问资源之前是否进行了授权检查

3. 总结

以vulnhuntr能检测的7个python源码漏洞为例,讲解基于LLM检测核心提示词思路。

4. 参考

  1. https://github.com/protectai/vulnhuntr
  2. https://github.com/protectai/vulnhuntr/blob/main/vulnhuntr/prompts.py
  3. https://owasp.org/www-project-web-security-testing-guide/v42/4-Web_Application_Security_Testing/07-Input_Validation_Testing/11.1-Testing_for_Local_File_Inclusion
http://www.dtcms.com/a/499974.html

相关文章:

  • 网站开发策略六安seo
  • NumPy zeros() 函数详解
  • 政务治理与战略决策总署——未来国策的“反脆弱”锻造熔炉系统
  • 第4讲:Go运行时系统剖析
  • 做外文翻译的网站深圳龙岗区地图全图
  • 安徽城乡建设 厅网站小企业网站如何建设好
  • Unity Addressables笔记
  • 重庆公司网站建设步骤5元购买已备案域名
  • 负载均衡spring-cloud-starter-openfeign教程
  • 怎么提高网站seo优化关键字排名龙岩一线网络有限公司
  • 采集的网站怎么做收录如何建设一个博客网站
  • 风车网站做花盆磨具附近的招聘工作
  • 影楼行业网站ui交互设计软件
  • 千享科技网站建设动画设计培训
  • 做网站怎么报价做门户网站主要技术哪一块
  • “每3度电就有1度是绿电”,西北如何利用数字孪生平台打造新能源建设新阵地
  • 进程地址空间二讲:程序是如何加载的?动态库又是如何加载的?
  • Go语言数据验证库详解:asaskevich/govalidator入门与实践
  • 营销型网站建设电话江苏省住房和建设厅网站
  • 有关做能源的网站泰宁县建设局网站
  • 英文网站建设cmswordpress 外部链接跳转
  • USB --SETUP --STATUS阶段
  • 盲盒APP源码开发实战:从0到1构建高可用系统
  • JS | 改变 this 指向 | this 指向 null 为什么不影响原型链?
  • 操作系统概述
  • 【计算机网络】初识HTTP(超文本传输协议)
  • 软件下载网站 知乎宁波seo网站建设费用
  • AI编程实战:用 TRAE 开发一个写作助手
  • 方法论:从社会契约到公司流程制度
  • 高效率小尺寸全集成同步降压电源模块替代MPM3630/MPM3620/MPM3610/MPM3606