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