導航:首頁 > 凈水問答 > xss過濾script

xss過濾script

發布時間:2022-07-04 19:41:01

1. 在xss中各種過濾的情況,在什麼地方可能存在注入點

XSS注入的本質就是:某網頁中根據用戶的輸入,不期待地生成了可執行的js代碼,並且js得到了瀏覽器的執行.意思是說,發給瀏覽器的字元串中,包含了一段非法的js代碼,而這段代碼跟用戶的輸入有關.常見的XSS注入防護,可以通過簡單的htmlspecialchars(轉義HTML特殊字元),strip_tags(清除HTML標簽)來解決,但是,還有一些隱蔽的XSS注入不能通過這兩個方法來解決,而且,有時業務需要不允許清除HTML標簽和特殊字元.下面列舉幾種隱蔽的XSS注入方法:IE6/7UTF7XSS漏洞攻擊隱蔽指數:5傷害指數:5這個漏洞非常隱蔽,因為它讓出現漏洞的網頁看起來只有英文字母(ASCII字元),並沒有非法字元,htmlspecialchars和strip_tags函數對這種攻擊沒有作用.不過,這個攻擊只對IE6/IE7起作用,從IE8起微軟已經修復了.你可以把下面這段代碼保存到一個文本文件中(前面不要有空格和換行),然後用IE6打開試試(沒有惡意代碼,只是一個演示):+/v8+ADw-script+AD4-alert(document.location)+ADw-/script+AD4-最容易中招的就是JSONP的應用了,解決方法是把非字母和數字下劃線的字元全部過濾掉.還有一種方法是在網頁開始輸出空格或者換行,這樣,UTF7-XSS就不能起作用了.因為只對非常老版本的IE6/IE7造成傷害,對Firefox/Chrome沒有傷害,所以傷害指數只能給4顆星.參考資料:UTF7-XSS不正確地拼接JavaScript/JSON代碼段隱蔽指數:5傷害指數:5Web前端程序員經常在PHP代碼或者某些模板語言中,動態地生成一些JavaScript代碼片段,例如最常見的:vara='<!--?phpechohtmlspecialchars($name);?';不想,$name是通過用戶輸入的,當用戶輸入a』;alert(1);時,就形成了非法的JavaScript代碼,也就是XSS注入了.只需要把上面的代碼改成:vara=

2. 如何避免被 chrome瀏覽器 xss過濾

首先要說明的是 它是webkit的一個模塊,而非chrome ,所以Safari和360安全瀏覽器極速模式等webkit內核的回瀏覽器都有XSS過濾功能.
過濾方答式:
通過模糊匹配 輸入參數(GET query| POST form data| Location fragment ) 與 dom樹,如果匹配中的數據中包含跨站腳本則不在輸出到上下文DOM樹中.另外,匹配的規則跟CSP沒有什麼關系,最多是有參考,CSP這種規范類的東西更新速度太慢跟不上現實問題的步伐.

關閉模式:
因為它有可能影響到業務,所以瀏覽器提供了關閉它的HTTP響應頭.
X-XSS-Protection: 0

繞過方式:
因為專門做這方面的原因所以對繞過也有所了解,目前我發布過的一個bypass 0day還可以繼續使用.
<svg><script xlink:href=data:,alert(1)></script></svg>

3. 過濾script

用空格 替換~~、

4. "><script>alert("xss")</script>

一般的網站會把用戶寫入的內容中包含<> ' ""這類的特殊符號格式化掉(安全過濾), 如&#開頭的特殊字元標識.

5. 如何防止xss攻擊,需要過濾什麼

XSS攻擊通常是指黑客通過"HTML注入"篡改了網頁,插入了惡意的腳本,從而在用戶瀏覽網頁時,控制用戶瀏覽器的一種攻擊。

一、HttpOnly防止劫取Cookie

HttpOnly最早由微軟提出,至今已經成為一個標准。瀏覽器將禁止頁面的Javascript訪問帶有HttpOnly屬性的Cookie。目前主流瀏覽器都支持,HttpOnly解決是XSS後的Cookie支持攻擊。

我們來看下網路有沒有使用。

未登錄時的Cookie信息
可以看到,所有Cookie都沒有設置HttpOnly,現在我登錄下

發現在個叫BDUSS的Cookie設置了HttpOnly。可以猜測此Cookie用於認證。

下面我用PHP來實現下:

<?php
header("Set-Cookie: cookie1=test1;");
header("Set-Cookie: cookie2=test2;httponly",false);

setcookie('cookie3','test3',NULL,NULL,NULL,NULL,false);
setcookie('cookie4','test4',NULL,NULL,NULL,NULL,true);
?>
<script>
alert(document.cookie);
</script>
js只能讀到沒有HttpOnly標識的Cookie

二、輸入檢查

輸入檢查一般是檢查用戶輸入的數據中是否包含一些特殊字元,如<、>、'、"等,如果發現存在特殊字元,則將這些字元過濾或者編碼。

例如網站注冊經常用戶名只允許字母和數字的組合,或者郵箱電話,我們會在前端用js進行檢查,但在伺服器端代碼必須再次檢查一次,因為客戶端的檢查很容易繞過。

網上有許多開源的「XSS Filter」的實現,但是它們應該選擇性的使用,因為它們對特殊字元的過濾可能並非數據的本意。比如一款php的lib_filter類:

$filter = new lib_filter();
echo $filter->go('1+1>1');
它輸出的是1,這大大歪曲了數據的語義,因此什麼情況應該對哪些字元進行過濾應該適情況而定。

三、輸出檢查

大多人都知道輸入需要做檢查,但卻忽略了輸出檢查。

1、在HTML標簽中輸出

如代碼:

<?php
$a = "<script>alert(1);</script>";
$b = "<img src=# onerror=alert(2) />";
?>
<div><?=$b?></div>
<a href="#"><?=$a?></a>
這樣客戶端受到xss攻擊,解決方法就是對變數使用htmlEncode,php中的函數是htmlentities

<?php
$a = "<script>alert(1);</script>";
$b = "<img src=# onerror=alert(2) />";
?>
<div><?=htmlentities($b)?></div>
<a href="#"><?=htmlentities($a)?></a>

2、在HTML屬性中輸出

<div id="div" name ="$var"></div>
這種情況防禦也是使用htmlEncode

在owasp-php中實現:

$immune_htmlattr = array(',', '.', '-', '_');
$this->htmlEntityCodec->encode($this->immune_htmlattr, "\"><script>123123;</script><\"");

3、在<script>標簽中輸出

如代碼:
<?php
$c = "1;alert(3)";
?>
<script type="text/javascript">
var c = <?=$c?>;
</script>
這樣xss又生效了。首先js變數輸出一定要在引號內,但是如果我$c = "\"abc;alert(123);//",你會發現放引號中都沒用,自帶的函數都不能很好的滿足。這時只能使用一個更加嚴格的JavascriptEncode函數來保證安全——除數字、字母外的所有字元,都使用十六進制"\xHH"的方式進行編碼。這里我採用開源的owasp-php方法來實現
$immune = array("");
echo $this->javascriptCodec->encode($immune, "\"abc;alert(123);//");
最後輸出\x22abc\x3Balert\x28123\x29\x3B\x2F\x2F

4、在事件中輸出

<a href="#" onclick="funcA('$var')" >test</a>
可能攻擊方法
<a href="#" onclick="funcA('');alter(/xss/;//')">test</a>
這個其實就是寫在<script>中,所以跟3防禦相同

5、在css中輸出

在owasp-php中實現:

$immune = array("");
$this->cssCodec->encode($immune, 'background:expression(window.x?0:(alert(/XSS/),window.x=1));');
6、在地址中輸出

先確保變數是否是"http"開頭,然後再使用js的encodeURI或encodeURIComponent方法。

在owasp-php中實現:

$instance = ESAPI::getEncoder();
$instance->encodeForURL(『url』);
四、處理富文體

就像我寫這篇博客,我幾乎可以隨意輸入任意字元,插入圖片,插入代碼,還可以設置樣式。這個時要做的就是設置好白名單,嚴格控制標簽。能自定義 css件麻煩事,因此最好使用成熟的開源框架來檢查。php可以使用htmlpurify

五、防禦DOM Based XSS

DOM Based XSS是從javascript中輸出數據到HTML頁面里。

<script>
var x = "$var";
document.write("<a href='"+x+"'>test</a>");
</script>
按照三中輸出檢查用到的防禦方法,在x賦值時進行編碼,但是當document.write輸出數據到HTML時,瀏覽器重新渲染了頁面,會將x進行解碼,因此這么一來,相當於沒有編碼,而產生xss。
防禦方法:首先,還是應該做輸出防禦編碼的,但後面如果是輸出到事件或腳本,則要再做一次javascriptEncode編碼,如果是輸出到HTML內容或屬性,則要做一次HTMLEncode。

會觸發DOM Based XSS的地方有很多:

document.write()、document.writeln()、xxx.innerHTML=、xxx.outerHTML=、innerHTML.replace、document.attachEvent()、window.attachEvent()、document.location.replace()、document.location.assign()

6. 如何正確防禦xss攻擊

1、基於特徵的防禦。XSS漏洞和著名的SQL注入漏洞一樣,都是利用了Web頁面的編寫不完善,所以每一個漏洞所利用和針對的弱點都不盡相同,這就是給XSS漏洞防禦帶來的困難,不可能以單一特徵來概括所有XSS攻擊。
傳統的XSS防禦在進行攻擊鑒別時多採用特徵匹配方式,主要是針對JavaScript這個關鍵詞進行檢索,但是這種鑒別不夠靈活,凡是提交的信息中各有JavaScript時,就被硬性的判定為XSS攻擊。
2、基於代碼修改的防禦。Web頁面開發者在編寫程序時往往會出現一些失誤或漏洞,XSS攻擊正是利用了失誤和漏洞,因此一種比較理想的方法就是通過優化Web應用開發來減少漏洞,避免被攻擊:
①用戶向伺服器上提交的信息要對URL和附帶的HTTP頭、POST數據等進行查詢,對不是規定格式、長度的內容進行過濾。
②實現Session標記、CAPTCHA系統或者HTTP引用頭檢查,以防功能被第三方網站所執行。
③確認接收的內容被妥善的規范化,僅包含最小的、安全的Tag,去掉任何對遠程內容的引用,使用HTTP only的cookie。
3、客戶端分層防禦策略。客戶端跨站腳本攻擊的分層防禦策略是基於獨立分配線程和分層防禦策略的安全模型。它建立在客戶端,這是它與其他模型最大的區別。之所以客戶端安全性如此重要,客戶端在接受伺服器信息,選擇性的執行相關內容。這樣就可以使防禦XSS攻擊變得容易,該模型主要由三大部分組成:
①對每一個網頁分配獨立線程且分析資源消耗的網頁線程分析模塊;
②包含分層防禦策略四個規則的用戶輸入分析模塊;
③保存互聯網上有關XSS惡意網站信息的XSS信息資料庫。

7. 如何正確防禦xss攻擊

傳統防禦技術

2.1.1基於特徵的防禦

傳統XSS防禦多採用特徵匹配方式,在所有提交的信息中都進行匹配檢查。對於這種類型的XSS攻擊,採用的模式匹配方法一般會需要對「javascript」這個關鍵字進行檢索,一旦發現提交信息中包含「javascript」,就認定為XSS攻擊。

2.1.2 基於代碼修改的防禦

和SQL注入防禦一樣,XSS攻擊也是利用了Web頁面的編寫疏忽,所以還有一種方法就是從Web應用開發的角度來避免:

1、對所有用戶提交內容進行可靠的輸入驗證,包括對URL、查詢關鍵字、HTTP頭、POST數據等,僅接受指定長度范圍內、採用適當格式、採用所預期的字元的內容提交,對其他的一律過濾。

2、實現Session標記(session tokens)、CAPTCHA系統或者HTTP引用頭檢查,以防功能被第三方網站所執行。

3、確認接收的的內容被妥善的規范化,僅包含最小的、安全的Tag(沒有javascript),去掉任何對遠程內容的引用(尤其是樣式表和javascript),使用HTTP only的cookie。

當然,如上方法將會降低Web業務系統的可用性,用戶僅能輸入少量的制定字元,人與系統間的交互被降到極致,僅適用於信息發布型站點。

並且考慮到很少有Web編碼人員受過正規的安全培訓,很難做到完全避免頁面中的XSS漏洞。

(7)xss過濾script擴展閱讀:

XSS攻擊的危害包括

1、盜取各類用戶帳號,如機器登錄帳號、用戶網銀帳號、各類管理員帳號

2、控制企業數據,包括讀取、篡改、添加、刪除企業敏感數據的能力

3、盜竊企業重要的具有商業價值的資料

4、非法轉賬

5、強制發送電子郵件

6、網站掛馬

7、控制受害者機器向其它網站發起攻擊

受攻擊事件

新浪微博XSS受攻擊事件

2011年6月28日晚,新浪微博出現了一次比較大的XSS攻擊事件。

大量用戶自動發送諸如:

「郭美美事件的一些未注意到的細節」,「建黨大業中穿幫地方」,「讓女人心動的100句詩歌」,「這是傳說中的神仙眷侶啊」等等微博和私信,並自動關注一位名為hellosamy的用戶。

事件的經過線索如下:

20:14,開始有大量帶V的認證用戶中招轉發蠕蟲

20:30,某網站中的病毒頁面無法訪問

20:32,新浪微博中hellosamy用戶無法訪問

21:02,新浪漏洞修補完畢

網路貼吧xss攻擊事件

2014年3月9晚,六安吧等幾十個貼吧出現點擊推廣貼會自動轉發等。並且吧友所關注的每個關注的貼吧都會轉一遍,病毒循環發帖。並且導致吧務人員,和吧友被封禁。

8. 跨站腳本攻擊xss的原理是什麼有什麼危害如何防範

什麼是XSS攻擊XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裡面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。XSS屬於被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。而本文主要講的是利用XSS得到目標伺服器的shell。技術雖然是老技術,但是其思路希望對大家有幫助。 [編輯本段]如何尋找XSS漏洞就個人而言,我把XSS攻擊分成兩類,一類是來自內部的攻擊,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網頁或者尋找非目標機以外的有跨站漏洞的網頁。如當我們要滲透一個站點,我們自己構造一個有跨站漏洞的網頁,然後構造跨站語句,通過結合其它技術,如社會工程學等,欺騙目標伺服器的管理員打開。

9. 最近網上流行的XSS是什麼意思

最近網上流行的XSS是小學生的惡稱,罵小學生的。

一是指某些人的想法、思維方式、對事物的認知和思考能力如孩子般幼稚、單純、天真。

二是特指某類相對於同齡的人,在游戲競技或者社交網路中, 態度傲慢、技術水準較差、拒絕與隊友溝通、獨斷專行、忽視團隊合作、甚至喜歡惡語相向的網遊玩家。

三是指對沒有接觸過社會或社會經驗不足。



(9)xss過濾script擴展閱讀:

1、小學生技術菜,愛罵人,玻璃心(說他一句就掛機送人頭,不管說什麼,比如:中路的你不要再送了,然後他就說「我就送」,接著就開始了。)小學生的心思就像星空,摸不著猜不透。

2、大噴子(網路中對喜歡肆意謾罵、地域黑、招黑、互黑等網友的一種廣泛性定義。),不分青紅皂白就開噴。

3、說話不經過大腦考慮,以自我為中心,可能是在家被寵慣了。

4、沒有接觸過社會大家庭或接觸社會經驗不足。比如:參加工作,你要是不讓新人上,永遠都是新人。這也是小學生。

10. 這個xss有過濾方案么

方案一:
避免XSS的方法之一主要是將用戶所提供的內容輸入輸出進行過濾,回許多語言答都有提供對HTML的過濾:
可以利用下面這些函數對出現xss漏洞的參數進行過濾:
PHP的htmlentities()或是htmlspecialchars()。
Python 的 cgi.escape()。
ASP 的 ServerEncode()。
ASP.NET 的 ServerEncode() 或功能更強的 Microsoft Anti-Cross Site Scripting Library
Java 的 xssprotect(Open Source Library)。
Node.js 的 node-validator。
方案二:使用開源的漏洞修復插件。( 需要站長懂得編程並且能夠修改伺服器代碼 )

閱讀全文

與xss過濾script相關的資料

熱點內容
安吉爾超濾膜濾芯的安裝 瀏覽:504
漢蘭達6at變速箱濾芯是哪裡代工的 瀏覽:289
某城市污水處理廠工藝流程 瀏覽:561
豪沃重汽尿素濾芯在哪裡圖 瀏覽:745
楊子802空氣凈化器怎麼樣 瀏覽:374
插管式柴油濾芯怎麼拆 瀏覽:430
廢水是怎麼生產的 瀏覽:476
即熱飲水機的工作原理是什麼 瀏覽:683
油煙凈化器怎麼維修 瀏覽:36
空氣凈化器和香薰怎麼平衡 瀏覽:961
RO反滲透凈水器怎麼買 瀏覽:744
補的樹脂牙黃 瀏覽:568
沒有裝凈水器怎麼補救 瀏覽:20
不銹鋼精工樹脂字 瀏覽:765
江門醇酸樹脂 瀏覽:723
混凝劑污堵反滲透 瀏覽:436
過濾驅動摘除tdi 瀏覽:746
太原純凈水有什麼菌 瀏覽:932
葯店裡的飲水機怎麼用 瀏覽:251
簡陽市的鄉鎮污水廠有哪些 瀏覽:890