web安全實(shí)踐系列主要是對《黑客web應(yīng)用安全機(jī)密與解決方案(第二版)》的內(nèi)容做的實(shí)踐研究和部分編程實(shí)現(xiàn)。所以如果您能完全理解那本書可以跳過本文章。 另外我需要更多的像我一樣的人來參與這項(xiàng)工作。 廢話還是少說的好,我們進(jìn)入今天的正題。 正文 昨天由于太累了,沒把剩下的內(nèi)容寫完,今天繼續(xù)。主要內(nèi)容是代理和防火墻的探測。 如果代理服務(wù)器對外就表現(xiàn)為一個Web服務(wù)器,外部網(wǎng)絡(luò)就可以簡單把它當(dāng)作一個標(biāo)準(zhǔn)的Web服務(wù)器而不需要特定的配置。不同之處在于,這個服務(wù)器沒有保存任何網(wǎng)頁的真實(shí)數(shù)據(jù),所有的靜態(tài)網(wǎng)頁或者CGI程序,都保存在內(nèi)部的Web服務(wù)器上。因此對反向代理服務(wù)器的并不會使得網(wǎng)頁信息遭到,這樣就增強(qiáng)了Web服務(wù)器的安全性。我們的主要目的是檢測目標(biāo)服務(wù)器是否通過代理服務(wù)器來響應(yīng)請求,以免我們丟失目標(biāo)。 。1)Trace請求。當(dāng)我們像web服務(wù)器發(fā)送一個Trace請求之后,服務(wù)器會回顯接收到的請求。如果正常情況下,返回的請求應(yīng)該就是我們發(fā)送的請求。但是如果我們的請求是先到達(dá)一個代理服務(wù)器然后真正的web服務(wù)器接收到的就應(yīng)該是代理服務(wù)器的請求,也是就是返回的信息也應(yīng)該是代理服務(wù)器的請求信息而不是我們最初發(fā)送的請求。說著有點(diǎn)迷糊,下面看一個實(shí)際的例子。不過由于一些服務(wù)器在處理trace請求存在跨站漏洞,很多網(wǎng)站是不支持trace請求的。 X-AspNet-Version: 2.0.50727Cache-Control: privateContent-Type: text/html; charset=utf-8Content-Length: 3432.....titlePath trace is forbidden./title 。2)Connect標(biāo)準(zhǔn)測試. 一般情況下HTTP代理服務(wù)都會支持HTTP CONNECT的方法,利用他能建立一個TCP連接來繞過一般的應(yīng)用層功能。一般,HTTP CONNECT方法都用來通過HTTP代理來建立HTTPS連接。 利用Connect測試的方法就是向一個已知站點(diǎn)發(fā)送Connect,觀察響應(yīng)信息來確定是否來自代理。 。1)連續(xù)的具有入侵特征的連接。 如果有防火墻它會你的連接。對于服務(wù)器的入侵掃描一般都會遭到防火墻的。其實(shí)我們現(xiàn)在可以肯定的是幾乎所有的正規(guī)網(wǎng)站都會有防火墻的。我們面臨的難題應(yīng)該是對方使用的是什么類型的防火墻而不是用沒用防火墻的問題。 。2)防火墻類型的診斷。 其實(shí)這和http指紋研究一樣也應(yīng)該是個統(tǒng)計(jì)學(xué)的問題。判斷的思想應(yīng)該是向服務(wù)器發(fā)送各種類型的非法請求,并判斷出是否是防火墻作出的回應(yīng),回應(yīng)的特征是什么。總結(jié)過程該是各個有機(jī)會接觸防火墻配置的人。這項(xiàng)工作的研究目前還不是十分完善。我的條件也不允許我做這這個實(shí)驗(yàn),我還是希望得到更多的人關(guān)于這方面的反饋。 觀察的方面: 響應(yīng)信息 TerosWeb 應(yīng)用防火墻技術(shù)會對trace請求作出500響應(yīng),提示:Invalid method code。F5TrafficShield會返回400錯誤,并提示:The Server could not anderstand your request。Your error ID is: Netcontinuum對任何非法請求都返回404錯誤。 SecureIIs會返回406錯誤。 特殊的cookie Teros對每次響應(yīng)都要使用同一個名st8id。 TrafficShield會使用cookie名為ASINFO。 特殊的錯誤情況 URLScan如果接收一個Path長度大于260個字符的請求,就返回404錯誤,而且如果在請求中添加如ranslate,if,Lock-Token,Transfer-Encoding等頭部,就會請求。 SecureIIs 默認(rèn)頭部最大長度為1024個字符。 那么就說明這個目錄的寫權(quán)限是開著的,反之,如果返回的是一個403錯誤,那么寫權(quán)限就是沒有開起來,如果需要你認(rèn)證,并且返回一個 401(權(quán)限) 的響應(yīng)的話,說明是開了寫權(quán)限,但是匿名用戶不允許。如果一個目錄同時(shí)開了寫和腳本和可執(zhí)行程序的話,那么web用戶就可以上傳一個程序并且執(zhí)行它。今天做了一天的實(shí)驗(yàn),發(fā)現(xiàn)這部分知識總體上技術(shù)都不成熟,有待發(fā)展。其實(shí)這是矛盾的,技術(shù)成熟了對現(xiàn)有網(wǎng)站的也就大了。但從技術(shù)的角度講我希望得到相關(guān)專家的幫助。 明天的內(nèi)容按計(jì)劃應(yīng)該是簡單的http編程實(shí)踐。 |