ChatGPT在安全研究领域的应用实践

引言

ChatGPT是一个人工智能技术驱动的自然语言处理工具,它能够通过理解和学习人类的语言来进行对话,并能进行连续对话。目前ChatGPT已经官方已经更新模型到4.0版本,宣称它是“最先进的系统,能生产更安全和更有用的回复”。当前使用ChatGPT进行问答也越来越方便,本文总结了一些ChatGPT在安全研究领域的一些应用实践,有了人工智能的帮助,我们更轻松高效的完成部分研究工作。

01

防护规则编写

ChatGPT能很方便的帮助我们编写各类防护规则。除开规则本身,它还帮你写好了注释,让你不光能快速编写,还能根据注释进行学习。

对于给出的规则编写要求,ChatGPT也不拘泥于给定的条件和范围,会尝试进行发散。如在下图的案例中,在我们原本提的需求之外,ChatGPT在检测的文件内容里脑补了“<?php”字符串,消除了部分误报;同时在上传文件名里除了php外,对php3、php5也做了限制,消除了部分漏报。

除此之外,对于一些指纹类的事件型规则,我们可以很方便的利用ChatGPT完成相应规则的收集,后续只需要做好验证工作就行了。

02

检测规则编写

ChatGPT虽然不能直接帮我们写poc(主要是考虑到了漏洞利用造成的影响),但是对于一些检测插件,还是能很快帮我们写出检测demo示例来:

当需要转换语言或转换poc格式时,利用ChatGPT也能很轻易的帮忙完成相关工作:

03

代码审计&漏洞挖掘

我们当然希望通过ChatGPT帮我们做更多有意义的安全研究工作,比如自动化漏洞挖掘。就笔者目前的测试情况来看,对于逻辑较为简单的代码,ChatGPT能很快找到脆弱点,但稍微设置些“坑”上去,ChatGPT的表现效果就不那么友好了。

我们以一个最简单的sql注入为例,看看ChatGPT的表现效果如何。首先在不做任何过滤的情况下,ChatGPT能很快识别到sql注入:

我们加一个简单的过滤条件,把get方法里获取的参数过滤了,但是查询语句里还是使用request方法获取请求数据,很显然使用post方法传递数据依然可以造成sql注入,我们看看ChatGPT能发现吗?

这里ChatGPT回避了我们设置的“坑”,开始扯怎么绕过正则的问题。这并不是我们想要的答案,在稍加提示后ChatGPT给出了正解。

现在我们难度进一步升级,过滤request里的参数,然后将get里的参数拼接进sql语句,我们先来看看ChatGPT能否帮我们找到突破点。

ChatGPT在这里出现了代码理解错误,认为$_GET没有做任何过滤。我们想让它知道$_GET在$_REQUEST里已经被过滤掉了,于是开始引导:

ChatGPT在思考了一阵好发现确实是自己错了,该代码不存在sql注入,并开始道歉。这时候再给它一点提示,剧情又反转了过来

在一步步引导后ChatGPT终于发现了漏洞点在哪里,并给出了最终的绕过方案。从这个案例可以看出,ChatGPT在基于安全视角的代码理解上还需要不断学习和打磨。

04

社会工程学应用

作为“写小作文”的能手,ChatGPT自然在社会工程学上也有广泛的应用,例如我们可以利用它轻松写一封钓鱼邮件:

当然也可以用它来做钓鱼邮件识别和检测,我很乐意看到它自相矛盾的样子:

除此之外,我们可以根据所掌握的信息,利用ChatGPT生成口令字典:

总结

事实上ChatGPT凭借其强大的训练集有能力帮我们做更多安全研究方面的事情,比如漏洞复现、木马免杀、代码混淆等,只是很多偏攻击向的成果已经被列为了黑名单。在上个月我们还能用ChatGPT辅助生成免杀的webshell,今天尝试的时候同样的请求已经被禁止了。但无论如何,人工智能的存在势必能提高我们的研究效率,也能帮我们探索出更多创新性的研究场景和方向。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/2201.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

wandb:可视化和超参数寻优

参考博客&#xff1a;https://zhuanlan.zhihu.com/p/591047340 1、注册账号 首先&#xff0c;去wandb官网注册一个账号&#xff0c;选择个人使用即可&#xff08;根据个人需要&#xff09; 然后&#xff0c;登录得到一个API key 2、wandb使用 &#xff08;1&#xff09;命令…

Spring框架学习--xml和Annotation方式实现IOC

AnnotationXml的spring-IOC和全Annotation的spring-IOC 文章目录AnnotationXml的spring-IOC和全Annotation的spring-IOC学习目标第二章 基于AnnotationXml的spring-IOC【重点】1、annotationxml【入门案例】(5)【1】目标【2】实现【2.1】创建项目【2.3】改写AccountDaoImpl【2.…

刷题记录(2023.3.14 - 2023.3.18)

[第五空间 2021]EasyCleanup 临时文件包含考点 分析源码&#xff0c;两个特殊的点&#xff0c;一个是 eval&#xff0c;另一个是 include eval 经过了 strlen filter checkNums 三个函数 include 经过了 strlen filter 两个函数 filter 检测是否包含特定的关键字或字符 fun…

【数据结构与算法】用栈实现队列

文章目录&#x1f63b;前言如何用栈实现队列&#xff1f;用栈实现队列整体的实现代码&#x1f63c;写在最后&#x1f63b;前言 &#x1f61d;上一章我们用队列实现了一个栈&#xff08;-> 传送门 <-&#xff09;&#xff0c;而这一章就带大家用栈实现一个队列。 &#x1…

< 每日算法:在排序数组中查找元素的第一个和最后一个位置 >

每日算法 - JavaScript解析&#xff1a;在排序数组中查找元素的第一个和最后一个位置 一、任务描述&#xff1a;> 示例 1> 示例 2> 示例 3二、题意解析三、解决方案&#xff1a;往期内容 &#x1f4a8;一、任务描述&#xff1a; 给你一个按照非递减顺序排列的整数数组…

C++基础算法③——排序算法(选择、冒泡附完整代码)

排序算法 1、选择排序 2、冒泡排序 1、选择排序 基本思想&#xff1a;从头至尾扫描序列&#xff0c;每一趟从待排序元素中找出最小(最大)的一个元素值&#xff0c;然后与第一个元素交换值&#xff0c;接着从剩下的元素中继续这种选择和交换方式&#xff0c;最终得到一个有序…

冲击蓝桥杯-时间问题(必考)

目录 前言&#xff1a; 一、时间问题 二、使用步骤 1、考察小时&#xff0c;分以及秒的使用、 2、判断日期是否合法 3、遍历日期 4、推算星期几 总结 前言&#xff1a; 时间问题可以说是蓝桥杯&#xff0c;最喜欢考的问题了,因为时间问题不涉及到算法和一些复杂的知识&#xf…

第十四届蓝桥杯三月真题刷题训练——第 18 天

目录 第 1 题&#xff1a;排列字母 问题描述 运行限制 代码&#xff1a; 第 2 题&#xff1a;GCD_数论 问题描述 输入格式 输出格式 样例输入 样例输出 评测用例规模与约定 运行限制 第 3 题&#xff1a;选数异或 第 4 题&#xff1a;背包与魔法 第 1 题&#x…

1649_Excel中删除重复的数据

全部学习汇总&#xff1a; GreyZhang/windows_skills: some skills when using windows system. (github.com) 长久时间的开发工作性质导致我对Windows生态下的很多工具没有一个深度的掌握。有时候&#xff0c;别说深度&#xff0c;可能最为浅显的操作都是不熟悉的。这个不仅仅…

JVM学习.02 内存分配和回收策略

1、前言《JVM学习.01 内存模型》篇讲述了JVM的内存布局&#xff0c;其中每个区域是作用&#xff0c;以及创建实例对象的时候内存区域的工作流程。上文还讲到了关于对象存货后&#xff0c;会被回收清理的过程。今天这里就着重讲一下对象实例是如何被清理回收的&#xff0c;以及清…

5.方法(最全C#方法攻略)

目录 5.1 方法的结构 5.2 方法体内部的代码执行 5.3.1 类型推断和Var关键字 5.3.2 嵌套块中的本地变量 5.4 本地常量 5.5 控制流 5.6 方法调用 5.7 返回值 5.8 返回语句和void 方法 5.9 参数 5.9.1 形参 5.9.2 实参 位置参数示例 5.10 值参数 5.11 引用参数 5.12…

【vm虚拟机】vmware虚拟机下载安装

vmware虚拟机下载安装&#x1f6a9; vmware虚拟机下载&#x1f6a9; 安装虚拟机程序&#x1f6a9; 创建一个CentOS虚拟机&#x1f6a9; 异常情况&#x1f6a9; vmware虚拟机下载 vmware官网下载地址 &#x1f6a9; 安装虚拟机程序 双击安装包exe程序&#xff0c;无脑下一步即…

来到CSDN的一些感想

之所以会写下今天这篇博客&#xff0c;是因为心中实在是有很多话想说&#xff01;&#xff01;&#xff01; 认识我的人应该都知道&#xff0c;我是才来CSDN不久的&#xff0c;也可以很清楚地看见我的码龄&#xff0c;直到今天&#xff1a;清清楚楚地写着&#xff1a;134天&…

完美日记母公司再度携手中国妇基会,以“创美人生”助力女性成长

撰稿 | 多客 来源 | 贝多财经 当春时节&#xff0c;梦想花开。和煦的三月暖阳&#xff0c;唤醒的不止是满城春意&#xff0c;更有逸仙电商“创美人生”公益项目播撒的一份希望。 3月8日“国际妇女节”当日&#xff0c;为积极响应我国促进共同富裕的政策倡导&#xff0c;助力相…

C语言--自定义类型详解

目录结构体结构体的声明特殊的声明结构的自引用typedef的使用结构体变量的定义和初始化结构体的内存对齐为什么存在内存对齐&#xff1f;修改默认对齐数结构体传参位段位段的内存分配位段的跨平台问题枚举联合联合类型的定义联合在内存中开辟空间联合大小的计算结构体 结构体的…

Linux之磁盘分区、挂载

文章目录一、Linux分区●原理介绍●硬盘说明查看所有设备挂载情况挂载的经典案例二、磁盘情况查询基本语法应用实例磁盘情况-工作实用指令一、Linux分区 ●原理介绍 Linux来说无论有几个分区&#xff0c;分给哪一目录使用&#xff0c;它归根结底就只有一个根目录&#xff0c;…

可编程线性直流电源的特性有哪些?

可编程线性直流电源是一种高性能、高精度的电源设备&#xff0c;其主要特性包括以下几点&#xff1a;1、高稳定性&#xff1a;可编程线性直流电源具有极高的输出稳定性&#xff0c;能够保证输出电压、电流和功率的精度和稳定性。通常来说&#xff0c;稳定性能够达到0.01%或更高…

Linux的诞生过程

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。个人主页&#xff1a;小李会科技的…

Android Lancet Aop 字节编码修复7.1系统Toast问题(WindowManager$BadTokenException)

近期在Bugly上出现7.1以下设备上出现大量BadTokenException&#xff1a; android.view.WindowManager$BadTokenExceptionUnable to add window -- token android.os.BinderProxy6c0415d is not valid; is your activity running?报错堆栈&#xff0c;如下所示&#xff1a; …

数据分析师CDA认证 Level Ⅰ笔记

**黑色字体部分为考纲&#xff0c;蓝色字体部分为笔记&#xff0c;仅供参考 PART 1 数据分析概念与职业操守 1、数据分析概念、方法论、角色 【领会】 数据分析基本概念&#xff08;数据分析、数据挖掘、大数据&#xff09; 数据分析目的及其意义 数据分析方法与流程 数据分析的…