欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

compression oracle

李佳璐1年前8瀏覽0評論

Compression Oracle是什么?在內(nèi)網(wǎng)滲透測試中,我們經(jīng)常會遇到一些情況比如某些壓縮算法被禁用,我們無法向目標服務器上傳zip或是tar等歸檔文件。那么問題就來了,我們有沒有辦法繞過這個限制,進行內(nèi)網(wǎng)文件的獲取呢?這時候Compression Oracle就派上用場了。

Compression Oracle的思想和Padding Oracle密切相關。Padding Oracle攻擊可以通過對返回的錯誤信息進行解析來獲取加密消息的明文內(nèi)容。Compression Oracle則是對返回信息的內(nèi)容進行解析來獲取被壓縮過的文件內(nèi)容。

import requests
from base64 import b64encode
import zlib
headers = {
'X-Forwarded-For': '127.0.0.1',
'Content-Type': 'application/octet-stream'
}
with open('test.jpg', 'rb') as f:
b64_encoded = b64encode(zlib.compress(f.read()))
for i in range(1, len(b64_encoded)+1):
payload = b64_encoded[:i]
r = requests.post('http://example.com', headers=headers, data=payload)
print(len(r.content))

上述代碼實現(xiàn)了將一個jpg圖像壓縮之后通過POST請求發(fā)送給目標服務器。但是在發(fā)送過程中,我們只發(fā)送了一部分的壓縮包,目的是為了讓target服務器進行壓縮操作并返回壓縮結果。我們只需要觀察返回結果的長度就可以判斷出發(fā)送的這部分是否為jpg圖像的一部分。

如果返回結果長度發(fā)生變化,那么說明我們剛剛發(fā)送的這部分是jpg的一部分。反之,如果返回結果長度不變,那么我們就需要再試一下其他部分內(nèi)容。在大量試錯的過程中,我們就可以重組出一個完整的圖片文件。

Compression Oracle常用于Bounty Program中,如果目標網(wǎng)站存在本地文件讀取、包含文件等漏洞,即使我們無法上傳歸檔文件,在有Compression Oracle認知的情況下,我們依然有可能獲取內(nèi)網(wǎng)服務器上的文件。但是需要注意的是,Compression Oracle攻擊是一種比較耗時的攻擊方式,因此需要有耐心以及一定的編程技巧。