在安全測(cè)試過(guò)程中,第一步就需要信息收集,信息收集時(shí)我們需要掃描網(wǎng)站根目錄下是否存在備份文件。
創(chuàng)新互聯(lián)建站專注于企業(yè)成都全網(wǎng)營(yíng)銷、網(wǎng)站重做改版、黃浦網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、商城建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為黃浦等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。掃描網(wǎng)站根目錄下是否存在備份文件需要發(fā)起http請(qǐng)求,第一次編寫時(shí)使用的是requests模塊的get請(qǐng)求,當(dāng)進(jìn)行測(cè)試時(shí)發(fā)現(xiàn)腳本會(huì)卡住,通過(guò)分析得知,當(dāng)get一個(gè)存在的備份文件時(shí),相當(dāng)于下載,如果備份文件很大則需要等待超長(zhǎng)時(shí)間。因此通過(guò)查找資料發(fā)現(xiàn)使用requests模塊head方法時(shí)可以解決以上遇到的問(wèn)題。
HEAD方法與GET方法的行為很類似,但服務(wù)器在響應(yīng)中只返回實(shí)體的主體部分。這就允許客戶端在未獲取實(shí)際資源的情況下,對(duì)資源的首部進(jìn)行檢查,使用HEAD,我們可以更高效的完成以下工作:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#命令行
from pocsuite import pocsuite_cli
#驗(yàn)證模塊
from pocsuite import pocsuite_verify
#×××模塊
from pocsuite import pocsuite_attack
#控制臺(tái)模式
from pocsuite import pocsuite_console
#requests
from pocsuite.api.request import req
#register
from pocsuite.api.poc import register
#report
from pocsuite.api.poc import Output, POCBase
#url轉(zhuǎn)換host
from pocsuite.lib.utils.funs import url2ip
class webBackPOC(POCBase):
vulID = '1' # ssvid ID 如果是提交漏洞的同時(shí)提交 PoC,則寫成 0
version = '1' #默認(rèn)為1
vulDate = '2018-07-12' #漏洞公開(kāi)的時(shí)間,不知道就寫今天
author = 'xiaohuihui1' # PoC作者的大名
createDate ='2018-07-12'# 編寫 PoC 的日期
updateDate = '2018-07-12'# PoC 更新的時(shí)間,默認(rèn)和編寫時(shí)間一樣
references = ['']# 漏洞地址來(lái)源,0day不用寫
name = 'website back '# PoC 名稱
appPowerLink = [''] # 漏洞廠商主頁(yè)地址
appName = '網(wǎng)站備份文件下載'# 漏洞應(yīng)用名稱
appVersion = 'all versions'# 漏洞影響版本
vulType = 'information leakage'#漏洞類型,類型參考見(jiàn) 漏洞類型規(guī)范表
desc = '''
網(wǎng)站備份文件下載
''' # 漏洞簡(jiǎn)要描述
samples = []# 測(cè)試樣列,就是用 PoC 測(cè)試成功的網(wǎng)站
install_requires = [] # PoC 第三方模塊依賴,請(qǐng)盡量不要使用第三方模塊,必要時(shí)請(qǐng)參考《PoC第三方模塊依賴說(shuō)明》填寫
cvss = u"嚴(yán)重" #嚴(yán)重,高危,中危,低危
#指紋方法
def _fingerprint(self):
pass
#驗(yàn)證模塊 pocsuite -r 1-redis.py -u 10.1.5.26 --verify
def _verify(self):
import requests
import hashlib
result = {}
vul_url = '%s' % self.url
if(vul_url.endswith("/")):
test_url = vul_url+"aswe2sda2323ra2.html"
else:
test_url = vul_url+"/aswe2sda2323ra2.html"
vul_url+="/"
test_html = requests.head(test_url,timeout=5).text
#md5值
hl = hashlib.md5()
test_html.replace("aswe2sda2323ra2.html","")
hl.update(test_html.encode(encoding='utf-8'))
test_md5 = hl.hexdigest()
domain=vul_url.split(".")[1].split(".")[0]
fileName = ['www','admin','wwwroot','web','data','ftp','flashfxp',domain]
suffix = ['zip','tar.gz','rar']#后綴列表
result2=[]
for fn in fileName:
for s in suffix:
try:
tmp = requests.head(vul_url+fn+"."+s,timeout=5)
if(tmp.status_code == 200):
result2.append(fn+"."+s)
except Exception as e:
print e
pass
if(len(result2) != 0):
result['VerifyInfo'] = {}
result['VerifyInfo']['URL'] = vul_url
result['VerifyInfo']['Payload'] = result2
return self.save_output(result)
#×××模塊
def _attack(self):
pass
#輸出報(bào)告
def save_output(self, result):
#判斷有無(wú)結(jié)果并輸出
output = Output(self)
if result:
output.success(result)
else:
output.fail()
return output
#注冊(cè)類
register(webBackPOC)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。