跨站腳本攻擊XSS

跨站腳本攻擊與SQL注入攻擊區別在於XSS主要影響的是客戶端安全,SQL注入主要影響Web服務器安全。前端

 

1、反射式XSSweb

非持久型、參數型跨站腳本,主要用於將惡意腳本附加到URL地址的參數中。正則表達式

  1. low:安全

    服務器端核心代碼:服務器


    觀察到並無對name進行任何的過濾操做,xss

    那麼輸入<script>alert(123456)</script>觀察到彈窗。函數


     

  2. Medium:3d


    看到有一個 $name = str_replace( '<script>', '', $_GET[ 'name' ] );blog

    這個函數將字符「<script>」換爲NULL,那麼因爲函數只執行一次,有多種方法能夠繞過。事件

    好比將這個標籤雙寫繞過,可是隻能過濾一次,就達成了咱們的目的。

    好比:<sc<script>ript>alert(123456)</script>


    或者使用大小寫混淆的方法。

    <Script>alert(123456)</script>

     

  3. High:


    觀察到使用了正則表達式來過濾:

    preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i'

    那麼咱們就不能使用大小寫繞過和重寫的方法來繞過了。

    雖然沒法使用<script>標籤注入XSS代碼,可是能夠經過img、body等標籤的事件或者iframe等標籤的src注入惡意的js代碼。這樣就會避免出現<script>標籤被正則表達式匹配到。

    咱們可使用如下:

    <img src=" " onerror=alert('xss')>

    (由於src無咱們就能夠將其路徑設置爲null)

     

  4. Impossible:

 

2、存儲式XSS

持久型跨站腳本,更具威脅性,而且可能影響到web服務器自身的安全。XSS一般用於發動Cookie竊取、惡意軟件傳播(蠕蟲攻擊)、會話劫持、惡意重定向等。存儲式XSS會保存在服務器上,有可能會跨頁面存在,它不改變頁面URL的原有結構,因此有時候還能逃過一些IDS檢測。

從攻擊過程來講,反射式XSS通常要求攻擊者誘使用戶單擊一個包含XSS代碼的URL連接;而存儲式XSS則只需讓用戶查看一個URL連接,這個連接中存儲了一個腳本。

  1. low

    輸入有限制,修改前端最大長度後插入<script>alert(123456)</script> 語句xss


     

  2. Medium

    仍是加一個<script>標籤過濾,可使用上述方法進行繞過(重寫或者大小寫繞過)

    使用<Script>alert(/xss/)</Script>繞過:


     

  3. High

    一樣正則過濾,使用

    <img src=1 οnerrοr=alert(/XSS/)>

     

  4. Impossible

相關文章
相關標籤/搜索