本發(fā)明涉及計算機控制技術領域,具體地,涉及一種存儲型xss攻擊向量的自動生成方法。
背景技術:
隨著web2.0技術的發(fā)展,web應用程序得到了廣泛應用,web應用程序漏洞也隨之成為互聯(lián)網上最嚴重的安全隱患之一。其中,跨站腳本漏洞(cross-sitescripting,xss)是web應用程序中最普遍的一類漏洞。如果web應用程序未能有效驗證用戶輸入就將其在網頁中顯示出來,就會引入xss漏洞。xss使得攻擊者能夠在web頁面中插入html或javascript腳本代碼,這些代碼會在用戶訪問頁面時執(zhí)行。
存儲型xss攻擊中,惡意腳本代碼會直接保存在web應用程序中,攻擊者只需要等待受害者瀏覽特定頁面。通常,這個頁面是用戶會主動訪問的常規(guī)頁面。因此,相比反射型和基于dom的xss,存儲型xss會造成更大的安全威脅。目前,我國研究的存儲型xss攻擊向量生成需人工操作、速度慢且有效性差。
技術實現(xiàn)要素:
本發(fā)明的目的在于,針對上述問題,提出一種存儲型xss攻擊向量的自動生成方法,以實現(xiàn)存儲型xss攻擊向量生成無需人工操作、速度快且有效性好的優(yōu)點。
為實現(xiàn)上述目的,本發(fā)明采用的技術方案是:一種存儲型xss攻擊向量的自動生成方法,所述方法主要包括:步驟1:分析javascript代碼的注入方式,生成基本攻擊向量;步驟2:針對web應用程序對用戶輸入的防范措施,對基本攻擊向量進行變異,得到實際使用的攻擊向量。
進一步地,所述javascript代碼的注入方式包括使用<script>標簽直接注入、使用javascript的url偽協(xié)議注入、使用html事件注入和使用層疊樣式表注入。
進一步地,所述使用html事件注入方式包括分別列出常用的html元素標簽和事件,然后根據(jù)html語法規(guī)則組成攻擊語句。
進一步地,防范措施包括過濾和凈化。
進一步地,所述變異方法包括通過改變字符大小寫、在結束括號前添加一個空白符、使用嵌套以及插入控制字符的ascii碼來避開過濾。
本發(fā)明的一種存儲型xss攻擊向量的自動生成方法主要包括:步驟1:分析javascript代碼的注入方式,生成基本攻擊向量;步驟2:針對web應用程序對用戶輸入的防范措施,對基本攻擊向量進行變異,得到實際使用的攻擊向量,以實現(xiàn)存儲型xss攻擊向量生成無需人工操作、速度快且有效性好的優(yōu)點。
具體實施方式
以下對本發(fā)明的優(yōu)選實施例進行說明,應當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
實施例1:
本發(fā)明的一種存儲型xss攻擊向量的自動生成方法,主要包括:步驟1:分析javascript代碼的注入方式,生成基本攻擊向量;步驟2:針對web應用程序對用戶輸入的防范措施,對基本攻擊向量進行變異,得到實際使用的攻擊向量。
javascript代碼的注入方式包括使用<script>標簽直接注入、使用javascript的url偽協(xié)議注入、使用html事件注入和使用層疊樣式表注入。
我們采取使用javascript的url偽協(xié)議注入的方式,列出常用的html元素標簽和屬性,然后根據(jù)html語法規(guī)則組成攻擊語句。支持url偽協(xié)議的html屬性有:src,herf,dynsrc,longdesc和lowsrc。表1列出了常用的html標簽。
表1.html元素標簽
防范措施包括過濾和凈化。變異方法包括通過改變字符大小寫、在結束括號前添加一個空白符、使用嵌套以及插入控制字符的ascii碼來避開過濾。
實施例2:
本發(fā)明的一種存儲型xss攻擊向量的自動生成方法,主要包括:步驟1:分析javascript代碼的注入方式,生成基本攻擊向量;步驟2:針對web應用程序對用戶輸入的防范措施,對基本攻擊向量進行變異,得到實際使用的攻擊向量。
javascript代碼的注入方式包括使用<script>標簽直接注入、使用javascript的url偽協(xié)議注入、使用html事件注入和使用層疊樣式表注入。
我們采取使用html事件注入方式,此方式包括分別列出常用的html元素標簽和事件,然后根據(jù)html語法規(guī)則組成攻擊語句。
因為一些事件只在部分特定html元素中有效,例如窗口事件只在body和frameset元素中有效,我們把列出的html標簽分為4類,分別為窗口標簽、表單標簽、圖像標簽和其他標簽。同時,我們把列出的html事件分為5類,分別為窗口事件、表單元素事件、圖像事件、鍵盤和鼠標事件和其他事件。表1和表2分別列出了詳細的html元素標簽和事件。測試者可以通過任意增減html元素標簽和事件來獲得自己需要的攻擊向量。同時,根據(jù)以上方法以及特定版本瀏覽器平臺的注入方法,通過選擇是否使用css、expression方法,來決定是否生成一些針對性的攻擊向量。
表1.html元素標簽
表2.html事件
防范措施包括過濾和凈化。變異方法包括通過改變字符大小寫、在結束括號前添加一個空白符、使用嵌套以及插入控制字符的ascii碼來避開過濾。
至少可以達到以下有益效果:
本發(fā)明的一種存儲型xss攻擊向量的自動生成方法主要包括:步驟1:分析javascript代碼的注入方式,生成基本攻擊向量;步驟2:針對web應用程序對用戶輸入的防范措施,對基本攻擊向量進行變異,得到實際使用的攻擊向量,以實現(xiàn)存儲型xss攻擊向量生成無需人工操作、速度快且有效性好的優(yōu)點。
最后應說明的是:以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,盡管參照前述實施例對本發(fā)明進行了詳細的說明,對于本領域的技術人員來說,其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。