編寫Yaml文件當Poc,利用Nuclei掃描器去掃描漏洞
YAML是一種數據序列化語言,它的基本語法規則注意如下:
-大小寫敏感
-使用縮進表示層級關系
-縮進時不允許使用Tab鍵,只允許使用空格。
-縮進的空格數目不重要,只要相同層級的元素左側對齊即可
?
Yaml Poc模版:
1、編號 id
2、信息 info
3、請求 http file tcp等
4、匹配 matchers Interactsh
5、提取 extractors
用VScode編寫就可以了,下載Yaml插件就可以直接寫了。
??
字段的含義我都寫在了注釋里面,如果覺得手工寫麻煩的話,下面還講了可以用Burp的插件來寫
但是提前說一下插件能一鍵生成Yaml文件,并執行Nuclei去掃描漏洞,但是生成的Yaml文件是一部分,還有一部分涉及到交互之類的Yaml,困難的Yaml文件插件就寫不出來了。所以還是要學會寫這個Yaml文件才行,起碼自己要會修改就好。叫AI生成啥的也行 但還是要自己能看懂才會修改
#漏洞的唯一標識符。如果滿足了下面匹配器(matchers)中的規則,顯示出的就是id的值。
id: CVE-2023-28432
#info為描述信息,不是硬規定一定要有哪些。自己看著辦要寫哪些
info:
#漏洞的名稱name: CVE-2023-28432
#漏洞的作者或發現者author: burp suite
#漏洞的嚴重程度severity: severity
#漏洞的詳細描述。description: |MinIO 是在 GNU Affero 通用公共許可證 v3.0 下發布的高性能對象存儲。
#漏洞的參考資料,可以是鏈接地址。reference:- https://github.com/vulhub/vulhub/tree/master/minio/CVE-2023-28432
#漏洞的標簽,用于分類和關聯其他相關漏洞。也方便到時候整理歸類到庫里面去tags: cve,2023
#描述了與該漏洞相關的HTTP請求匹配規則的列表。
http:
# "raw"字段通常指的是原始的HTTP請求字符串。
#使用表單數據時,可以使用form字段。如果你的請求數據是JSON格式的,可以使用json字段。
#對于 URL 編碼的數據,可以使用 urlencoded 字段。如果需要模擬文件上傳,可以使用 multipart 字段- raw:
#這里面要參考漏洞的觸發信息是怎么樣的,漏洞需要提交什么樣的數據包就怎么編寫這里面的內容- |POST /minio/bootstrap/v1/verify HTTP/1.1
#{{Hostname}}是一個變量,不要寫死。在你使用nuclei程序使用-target參數指定URL的時候會被填充到這里來Host: {{Hostname}}Accept-Encoding: gzip, deflateAccept: */*Accept-Language: en-US;q=0.9,en;q=0.8User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.5481.178 Safari/537.36Connection: closeCache-Control: max-age=0Content-Type: application/x-www-form-urlencodedContent-Length: 0#定義了匹配器的條件,表示所有的匹配器都必須滿足。matchers-condition: and#匹配器 漏洞條件的特征點寫在里面matchers:
#匹配器的類型,用于在響應的特定位置尋找指定的關鍵字。- type: word
# 指定要匹配的部分是響應的body部分。part: body
#指定要匹配的關鍵字列表,如果在響應主體中找到了這些關鍵字,將認為漏洞存在。words:- 'MINIO_ROOT_USER'- 'MINIO_ROOT_PASSWORD'#另一個匹配器類型,用于匹配響應的狀態碼。- type: status
#指定要匹配的狀態碼列表,如果響應的狀態碼為200(成功),將認為漏洞存在。status:- 200
使用方式:nuclei.exe -t Your_YamlFile -target 目標地址 (如下圖)
??
使用Burp插件生成Yaml文件:
Burp內就可以下載:
如果不行的話就在這下然后導入插件也行:https://github.com/projectdiscovery/nuclei-burp-plugin
??
配置:
??
使用:
我因為沒有靶場環境演示不出具體結果了,只能說一下方法。
抓到目標網站的這個有漏洞存在的這個數據包,把它發送到Nuclei插件中去
??
發過來就會這樣,你可以點擊上面選項卡里的Execute執行對應的命令。也可以對它修改什么的再執行。都是可以的。
插件不會完美的按照我們心中的想法去生成,所以還是要自己看得懂會修改才行
??
Nuclei的Yaml語法和Xray的Yaml語法有一點差別但是差別不大,還有Afrog的也是。只要學會一種其它的也差不多了。
?