<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/tools/738

            0x00 閑扯


            好吧繼上一篇文章之后,就沒發文章了!(其實是一直在寫但是寫的很少還湊不起一篇文章而已)

            但是這幾天對插件進行了一定的改良了 因為在自己在實際的XSS過程中也發現了自己的插件 還不夠強大!

            不能夠百分之百的滿足自己的需求!所以就根據自己平常的需求給加了上去!

            我想做到玩XSS一個工具即可解決需求!所以感覺即使是現在的插件也還有很大的不足!

            所以很希望得到你們的意見 東湊一塊 西湊一塊寫成一個真正的一個插件解決需求!

            (現在想給hook生成功能塊加一個 是否自動把hook轉換成短鏈接!但是。。。在技術上有點問題)

            另外還有什么其他的功能 或者一些比較猥瑣的小技巧 希望大家提出來 我加上。。。

            比如在chrome里隱藏payload 。。。我一直在想如何才能構造一段被chrome認為是無效的字符。。并且還能夠執行!

            0x01 界面以及功能介紹


            兼容性沒做所以在不同的分辨率下會亂碼。。。這個不會做

            分辨率:1280 X 800 ?(求教)

            2013111510540039674.jpg

            編碼

            請把需要編碼的字符放在左邊的輸入框內 Encode / Decode?

            然后點擊中間上方的Encode按鈕 選擇你要編碼的類型 然后點擊相應的按鈕即可!

            經過相應編碼后的內容便會在右邊的Output框中!

            新功能介紹

            進制編碼常規變異:

            進制編碼包括:

            html編碼的十進制編碼
            html編碼的十六進制編碼
            javascript的十六進制編碼
            javascript的八進制編碼 
            

            進制編碼常規變異的功能:

            會給編碼前面的數字多加7個0,因為IE對進制編碼加0,只識別到八個0,多了的話就認為這不是個有效的值了!

            也有很多程序過濾規則也是這樣寫的!他們會把你變異了的值給解析回來,然后再判斷是不是危險字符!

            適用場景:

            當進制編碼被解析回來,再次過濾了的時候,比如?&#60 在過濾程序中被還原回來再次過濾了!

            但是&#0060沒有在過濾程序中被還原回來,但是在頁面中被瀏覽器被解析還原了,那么就可以用進制編碼的常規變異!

            進制編碼非常規變異:

            進制編碼非常規變異功能:

            會給編碼的數字前面多加10個0!原因同上!

            適用場景:

            當進制編碼被解析回來,再次過濾了的時候,比如?&#60 或者 &#000000060都被還原回來,再次過濾的話,那么便可以用非常規變異!

            IE識別到8個0 可是chrome能識別到更多的0!很多過濾程序都是根據IE的8個0來寫的!所以更多的0 也是一種繞過方式!

            使用心得:以上的功能都是自己親身經歷到的 當時是某GOV的站 在這里貼出payload吧 以及筆記

            search?str=xxxx%3Ca%20href=%22data:text/html;%26%230000000000000000098ase64%26%230000000000000044%20PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg==%22%3Etest%3C/a%3E 
            

            缺陷參數:str

            過濾規則夠BT 但是同樣能繞!

            會把提交的編碼 給解碼 然后再插入到網頁中!然后再對網頁內的值進行檢查 過濾!

            base64 --> %26%230000000000000000098ase64

            首先%26%23會被還原成 &# ?于是變成了: &#00000000098 于是被還原成:b b插入到頁面 再檢查 b+ase64 ?= base64 滿足規則 ?于是又過濾成 base64 ?繞過失敗!

            但是如果b的html十進制編碼 再多加幾個000 ?便不會被他給解碼 ?但是在瀏覽器中又會被解碼 于是便可以這樣繞過!

            html編碼去分號:

            (此選項可配合其他選項一起使用 比如進行html編碼時 勾選常規變異 + 去html編碼分號)

            ps:小伙伴們勿淘氣別選了 常規變異 又勾選非常規變異。。。 那你到底是要鬧哪樣!

            還有勾選編碼時 ?也勾選了 hook生成的話 那么我不知道你要鬧那樣。。

            如果要對生成的鉤子進行編碼的話 那么就弄兩次吧 一次:生成 復制 ,二次: 粘貼 編碼!

            使用場景:

            html實體編碼的分號在大部分情況下都是可以去掉的 能減少輸入字符!我有強迫癥。。?

            我一般選擇html實體編碼的時候 都會必勾選!

            &#URL編碼:

            這個對我來說真的是經常用到!比如在測試反射型XSS 以及 DOM XSS時!

            因為&#在url中都有特殊的含義 我們很多時候都是把他們當做一個html實體編碼表示的方式而已!

            可是瀏覽器不會這樣認為,& 會被認為是參數的分隔符 比如一個url:

            http://xssec.net/?x=1&c=2&d=4 
            

            如果我們在url上寫&號是會被當成參數分隔符的 進行一下url編碼就號了!

            #號呢,就是location.hash獲取的值以及什么的 所以這種字符還是url編碼的好~

            比如以下這個payload:

            search.php?searchfield=xsser%c0\%22%20onfocus=%26%2397%26%23108%26%23101%26%23114%26%23116%26%2340%26%2347%26%2374%26%23105%26%23110%26%2347%26%2341%20autofocus//&imageField=%CB%D1%CB%F7
            

            大家還原下編碼就能看到原本的字符了!

            Hook生成

            基本介紹 :把你的鉤子(hook)放入到左邊的Encode里 然后勾選你要進行生成的hook類型!然后點后面的生成就好了!

            每次請選擇一種,別淘氣 我沒寫太多的判斷js。。。 精力有限!

            下面貼幾個演示吧:

            2013111511480349866.jpg

            在鉤子生成方面做的不是特別好,也是自己經驗不足的原因 大家有更猥瑣的 加載鉤子的payload 求pm加上去!

            下載鏈接:

            xss-encode_20131115121612.crx_.zip

            聯系方式:

            mail:[email protected]

            http://t.qq.com/Ox_Jin

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线