<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    原文地址:http://drops.wooyun.org/tips/14915

                    原文鏈接:http://brutelogic.com.br/blog/

                    0x01 簡單介紹


                    一個文件上傳點是執行XSS應用程序的絕佳機會。很多網站都有用戶權限上傳個人資料圖片的上傳點,你有很多機會找到相關漏洞。如果碰巧是一個self XSS,你可以看看這篇文章。

                    0x02 實例分析


                    首先基本上我們都可以找到類似下面的一個攻擊入口點,我覺得這個并不難。

                    姿勢一:文件名方式

                    文件名本身可能會反映在頁面所以一個帶有XSS命名的文件便可以起到攻擊作用。

                    p1

                    雖然我沒有準備靶場,但是你可以選擇在W3Schools練習這種XSS 。

                    姿勢二:Metadata

                    使用exiftool這個工具可以通過改變EXIF ?metadata進而一定幾率引起某處反射:

                    #!bash
                    $ exiftool -field = XSS FILE
                    

                    例如:

                    #!bash
                    $ exiftool -Artist=’ “><img src=1 onerror=alert(document.domain)>’ brute.jpeg
                    

                    p2

                    姿勢三:Content

                    如果應用允許上傳SVG格式的文件(其實就是一個圖像類型的),那么帶有以下content的文件可以被用來觸發XSS:

                    #!html
                    <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.domain)"/>
                    

                    一個 PoC用來驗證。你可以通過訪問brutelogic.com.br/poc.svg看到效果

                    姿勢四:Source

                    建立一個攜帶有JavaScript payload的GIF圖像用作一個腳本的源。這對繞過CSP(內容安全策略)保護“script-src ‘self’”(即不允許使用示例的這種xss方式進行攻擊<script>alert(1)</script>)是很有用的,但前提是我們能夠成功地在相同的域注入,如下所示。

                    p3

                    要創建這樣的圖像需要這個作為content 和 name,并使用.gif擴展名:

                    #!html
                    GIF89a/*<svg/onload=alert(1)>*/=alert(document.domain)//;
                    

                    這個GIF的圖片頭——GIF89a,作為alert function的變量分配給alert function。但是他們之間,還有一個被標注的XSS變量用來防止圖片被恢復為text/HTML MIME文件類型,因此只需發送一個對這個文件的請求payload 就可以被執行。

                    正如我們下面看到的,文件類unix命令和PHP函數中的exif_imagetype()和getimagesize()會將其識別為一個GIF文件。所以如果一個應用程序僅僅是使用這些方式驗證是否是一個圖像,那么該文件將可以上傳成功(但可能在上傳后被殺掉)。

                    p4

                    0x03 最后


                    如果你想知道更多的有其標志性ASCII字符可以用于一個javascript變量賦值的文件類型,看我隨后的文章。

                    也有很多比較詳細的使用XSS和圖像文件相結合繞過圖形處理函數庫過濾的例子。這方面的一個很好的例子是here

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频