基礎(chǔ)學(xué)黑客 搜公眾號:白帽子左一
xss漏洞的原理其實很簡單,類型也分為三類,反射型、儲存型和dom型。
但是剛接觸xss的時候我根本不理解什么是dom型xss,無法區(qū)分反射型和dom型,也很少遇見,現(xiàn)在通過這篇文章可以給新入坑的小白更好的理解xss漏洞,也通過這篇文章鞏固一下我對xss的理解.
兩張簡單的圖幫助大家對比一下異同
首先還是先簡單介紹一下xss最常見的類型:反射型
通過pikachu靶場來做簡單的演示分析
可以看到我們輸入的數(shù)據(jù)通過html頁面回顯了出來,這意味著我們可以嘗試構(gòu)造閉合來注入我們想要的代碼
檢查一下網(wǎng)頁源碼,處于這個位置(20這個地方顯示了輸入數(shù)據(jù)的長短,改一改就好)
插入這個代碼測試xss漏洞:<script>alert('1_Ry')</script>,出現(xiàn)彈窗
分析一下代碼
$html='';
if(isset($_GET['submit'])){
if(empty($_GET['message'])){
$html.="<p class='notice'>輸入'kobe'試試-_-</p>";
}else{
if($_GET['message']=='kobe'){
$html.="<p class='notice'>愿你和{$_GET['message']}一樣,永遠年輕,永遠熱血沸騰!</p><img src='{$PIKA_ROOT_DIR}assets/images/nbaplayer/kobe.png' />";
}else{
$html.="<p class='notice'>who is {$_GET['message']},i don't care!</p>";
}
}
}
首先通過GET 接收message字符串到后端,然后傳到$html這個變量
<div id="xssr_main">
<p class="xssr_title">Which NBA player do you like?</p>
<form method="get">
<input class="xssr_in" type="text" maxlength="20" name="message" />
<input class="xssr_submit" type="submit" name="submit" value="submit" />
</form>
<?php echo $html;?>
</div>
再通過這個變量輸出到前端的頁面,然后剛剛輸入的<script>alert('1_Ry')</script>代碼就會在頁面被執(zhí)行,通過服務(wù)端邏輯來改變了最終的網(wǎng)頁代碼
DOM型xss和別的xss最大的區(qū)別就是它不經(jīng)過服務(wù)器,僅僅是通過網(wǎng)頁本身的JavaScript進行渲染觸發(fā)的
下面我們來看看典型的DOM型xss例子,將下面這句話復(fù)制到有道詞典進行翻譯,相信大家很快就能理解
This is a test <script>alert('1_Ry')</script>about xss
在線翻譯_有道 (https://fanyi.youdao.com/)
看看這句話在html中的位置
這個例子中的xss語句<script>alert('1_Ry')</script>只是單純的在前端解析,沒有經(jīng)過后端,屬于前端自身的安全漏洞。
再通過pikachu靶場來深入了解一下DOM型xss
這是前端界面
這是源代碼,接下來分析一下這個源碼
<div id="xssd_main">
<script>
function domxss(){
var str=document.getElementById("text").value;
document.getElementById("dom").innerHTML="<a href='"+str+"'>what do you see?</a>";
}
</script>
<input id="text" name="text" type="text" value="" />
<input id="button" type="button" value="click me!" onclick="domxss()" />
<div id="dom"></div>
</div>
當(dāng)輸入123源碼中是這樣顯示的
但當(dāng)輸入:#'onclick="alert('1_Ry')"> 時
一直點擊則一直彈,同時使用burpsuite抓包的話也是抓不到任何東西,因為沒有產(chǎn)生與服務(wù)器的交互,僅僅通過前端js渲染來改變最終的網(wǎng)頁代碼
兩者的攻擊方式?jīng)]有什么不同,都是通過電子郵件等方式發(fā)送這個含有我們構(gòu)造的payload的URL給目標(biāo)用戶,當(dāng)目標(biāo)用戶訪可該鏈接時,服務(wù)器接收該目標(biāo)用戶的請求并進行處理
然后服務(wù)器把帶有XSS代碼的數(shù)據(jù)發(fā)送給目標(biāo)用戶的測覽器,瀏覽器解析這段帯有XSS代碼的惡意腳本后,就會觸發(fā)XSS漏洞,一般用于獲取對方cookies值
作者:lryfish
原文地址:https://www.freebuf.com/articles/web/318982.html
ARP工作在數(shù)據(jù)鏈路層,數(shù)據(jù)鏈路層的基本功能是構(gòu)造幀和傳輸幀(FRAME),幀由目的MAC地址信息和源MAC地址信息以及數(shù)據(jù)組成。在以太網(wǎng)中, 知道了目的MAC地址和源MAC地址就可以傳輸數(shù)據(jù)了。源MAC地址就是本機MAC,這很好得到,那么如何知道目的IP地址呢,人們發(fā)明了ARP(Address Resolution Protocol)協(xié)議, 用來通過解析IP地址返回目的服務(wù)器的MAC地址
幀的構(gòu)成圖
主機A查看自己的ARP緩存,檢查是否有主機B的IP到MAC的映射,如果有映射,構(gòu)造報文,目的IP為主機B的IP,源IP為主機A的IP,目的MAC為主機B的MAC,源MAC為主機A的MAC,將報文發(fā)送給交換機C,交換機C進行MAC地址表學(xué)習(xí),將主機A的MAC和報文入端口號記錄下來,然后交換機C查看自己的MAC轉(zhuǎn)發(fā)表,檢查是否有主機B的MAC到端口的映射,如果有映射,獲取對應(yīng)的端口,將報文從此端口轉(zhuǎn)發(fā)出去,報文到達主機B。如果交換機C沒有主機B的MAC轉(zhuǎn)發(fā)表映射,采用洪泛的形式廣播報文,主機B收到報文后向主機A回復(fù),交換機C進行MAC表學(xué)習(xí),將主機B的MAC和報文入端口號記錄下來。
Internet 地址 物理地址 類型
192.168.16.255 ff-ff-ff-ff-ff-ff 靜態(tài)
224.0.0.22 01-00-5e-00-00-16 靜態(tài)
arp -d ip
arp -s 192.168.16.254 00-22-aa-00-22-aa
ARP攻擊主要是通過偽造IP地址和MAC地址進行欺騙
(config)#arp 192.168.100.2 aaaa.bbbb.ccccfastEthernet 0/1
缺陷:如果是通過DHCP自動獲取的地址,租期到了以后,綁定就會失效,病情重新發(fā)包請求IP地址.也不會分配到IP地址.擴展性很差。
2.交換機上開啟DAI (Dynamic ARP Inspection) 動態(tài)ARP監(jiān)測,用于基于VLAN的防護機制
參考:http://c.biancheng.net/view/6391.html
參考:TCP/IP詳解
自網(wǎng)絡(luò)
CC攻擊是DDoS(分布式拒絕服務(wù))的一種,相比其它的DDoS攻擊CC似乎更有技術(shù)含量一些。這種攻擊你見不到虛假IP,見不到特別大的異常流量,但造成服務(wù)器無法進行正常連接,一條ADSL的普通用戶足以掛掉一臺高性能的Web服務(wù)器。
由此可見其危害性,稱其為“Web殺手”毫不為過。最讓站長們憂慮的是這種攻擊技術(shù)含量不是很高,利用工具和一些IP代理,一個初、中級的電腦水平的用戶就能夠?qū)嵤〥DoS 攻擊。
CC攻擊的原理就是攻擊者控制某些主機不停地發(fā)大量數(shù)據(jù)包給對方服務(wù)器造成服務(wù)器資源耗盡,一直到宕機崩潰。CC主要是用來攻擊頁面的,每個人都有這樣的體驗:當(dāng)一個網(wǎng)頁訪問的人數(shù)特別多的時候,打開網(wǎng)頁就慢了。
CC就是模擬多個用戶(多少線程就是多少用戶)不停地進行訪問那些需要大量數(shù)據(jù)操作(就是需要大量CPU時間)的頁面,造成服務(wù)器資源的浪費,CPU長時間處于100%,永遠都有處理不完的連接直至就網(wǎng)絡(luò)擁塞,正常的訪問被中止。
1、如果網(wǎng)站是動態(tài)網(wǎng)站,比如asp/asp.net/php等,在被CC攻擊的情況下,IIS站點會出錯提示SERVER IS TOO BUSY,如果不是使用IIS來提供網(wǎng)站服務(wù),會發(fā)現(xiàn)提供網(wǎng)站服務(wù)的程序無緣無故自動崩潰,出錯。如果排除了網(wǎng)站程序的問題,而出現(xiàn)這類型的情況,基本上可以斷定是網(wǎng)站被CC攻擊了。
2、如果網(wǎng)站是靜態(tài)站點,比如html頁面,在被CC攻擊的情況下,打開任務(wù)管理器,看網(wǎng)絡(luò)流量,會發(fā)現(xiàn)網(wǎng)絡(luò)應(yīng)用里數(shù)據(jù)的發(fā)送出現(xiàn)嚴(yán)重偏高的現(xiàn)象,在大量的CC攻擊下,甚至?xí)_到99%的網(wǎng)絡(luò)占用,當(dāng)然,在被CC攻擊的情況下網(wǎng)站是沒辦法正常訪問的,但是通過3389連接服務(wù)器還是可以正常連接。
3、如果是被小量CC攻擊,則站點還是可以間歇性訪問得到,但是一些比較大的文件,比如圖片會出現(xiàn)顯示不出來的現(xiàn)象。如果是動態(tài)網(wǎng)站被小量CC攻擊,還會發(fā)現(xiàn)服務(wù)器的CPU占用率出現(xiàn)飆升的現(xiàn)象。這是最基本的CC攻擊癥狀。
確定Web服務(wù)器正在或者曾經(jīng)遭受CC攻擊,那如何進行有效的防范呢?
(1).取消域名綁定
一般cc攻擊都是針對網(wǎng)站的域名進行攻擊,比如我們的網(wǎng)站域名是“www.abc.com”,那么攻擊者就在攻擊工具中設(shè)定攻擊對象為該域名然后實施攻擊。
對于這樣的攻擊我們的措施是在IIS上取消這個域名的綁定,讓CC攻擊失去目標(biāo)。具體操作步驟是:打開“IIS管理器”定位到具體站點右鍵“屬性”打開該站點的屬性面板,點擊IP地址右側(cè)的“高級”按鈕,選擇該域名項進行編輯,將“主機頭值”刪除或者改為其它的值(域名)。
經(jīng)過模擬測試,取消域名綁定后Web服務(wù)器的CPU馬上恢復(fù)正常狀態(tài),通過IP進行訪問連接一切正常。但是不足之處也很明顯,取消或者更改域名對于別人的訪問帶來了不變,另外,對于針對IP的CC攻擊它是無效的,就算更換域名攻擊者發(fā)現(xiàn)之后,他也會對新域名實施攻擊。
(2).域名欺騙解析
如果發(fā)現(xiàn)針對域名的CC攻擊,我們可以把被攻擊的域名解析到127.0.0.1這個地址上。我們知道127.0.0.1是本地回環(huán)IP是用來進行網(wǎng)絡(luò)測試的,如果把被攻擊的域名解析到這個IP上,就可以實現(xiàn)攻擊者自己攻擊自己的目的,這樣他再多的肉雞或者代理也會宕機,讓其自作自受。
另外,當(dāng)我們的Web服務(wù)器遭受CC攻擊時把被攻擊的域名解析到國家有權(quán)威的政府網(wǎng)站或者是網(wǎng)警的網(wǎng)站,讓其網(wǎng)警來收拾他們。
現(xiàn)在一般的Web站點都是利用類似“新網(wǎng)”這樣的服務(wù)商提供的動態(tài)域名解析服務(wù),大家可以登錄進去之后進行設(shè)置。
(3).更改Web端口
一般情況下Web服務(wù)器通過80端口對外提供服務(wù),因此攻擊者實施攻擊就以默認(rèn)的80端口進行攻擊,所以,我們可以修改Web端口達到防CC攻擊的目的。運行IIS管理器,定位到相應(yīng)站點,打開站點“屬性”面板,在“網(wǎng)站標(biāo)識”下有個TCP端口默認(rèn)為80,我們修改為其他的端口就可以了。
(4).IIS屏蔽IP
我們通過命令或在查看日志發(fā)現(xiàn)了CC攻擊的源IP,就可以在IIS中設(shè)置屏蔽該IP對Web站點的訪問,從而達到防范IIS攻擊的目的。在相應(yīng)站點的“屬性”面板中,點擊“目錄安全性”選項卡,點擊“IP地址和域名現(xiàn)在”下的“編輯”按鈕打開設(shè)置對話框。
在此窗口中我們可以設(shè)置“授權(quán)訪問”也就是“白名單”,也可以設(shè)置“拒絕訪問”即“黑名單”。比如我們可以將攻擊者的IP添加到“拒絕訪問”列表中,就屏蔽了該IP對于Web的訪問。
聲明:我們尊重原創(chuàng)者版權(quán),除確實無法確認(rèn)作者外,均會注明作者和來源。轉(zhuǎn)載文章僅供個人學(xué)習(xí)研究,同時向原創(chuàng)作者表示感謝,若涉及版權(quán)問題,請及時聯(lián)系小編刪除!
精彩在后面
Hi,我是超級盾
更多干貨,可移步到,微信公眾號:超級盾訂閱號!精彩與您不見不散!
超級盾:從現(xiàn)在開始,我的每一句話都是認(rèn)真的。
如果,你被攻擊了,別打110、119、120,來這里看著就行。
截至到目前,超級盾成功抵御史上最大2.47T黑客DDoS攻擊,超級盾具有無限防御DDoS、100%防CC的優(yōu)勢。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。