Javascript字符串截斷 with DOM XSS的方法介紹
發(fā)布日期:2022-01-23 17:28 | 文章來源:源碼中國
在IE中javascript的字符串可以被NULL字符截斷,不過僅僅是getValue的時候截斷.
測試代碼:
alert('abc\0 def')如果只是這樣最多就是spoofing,但配合IE(<=8)的一個解析bug和php的[魔術(shù)引號]就是一個DOM XSS了.
IE解析bug:
<a href="<body/onload=alert(1)>click</a>
在前面的我分享過的XSS向量里有提到過,就是當(dāng)解析器不能匹配到一個標(biāo)簽里屬性值的結(jié)束界定符的時候會認(rèn)為這是個無效的標(biāo)簽,將其當(dāng)成文本.
<a href=" 變成<a href=" <body/onload=alert(1)>被解析成html.PHP的轉(zhuǎn)義問題
在5.3.0之前,php默認(rèn)開啟了magic_quotes_gpc.
它不但會轉(zhuǎn)換" ' 之類的字符,還會將轉(zhuǎn)義%00轉(zhuǎn)換成\0
在javascript的字符串中\(zhòng)0又會被轉(zhuǎn)義回去.
注:即便關(guān)閉了魔術(shù)引號,開發(fā)者一般也會實用addslashes之類的函數(shù),這些函數(shù)同樣會將%00轉(zhuǎn)換成\0
So
document.write('<img src="<iframe/onload=alert(1)>\0">')
--------------------------------------------------------------------------------
相關(guān)評論:
--------------------------------------------------------------------------------
Xhm1n9 | 2012-06-29 01:34
實用的技巧:)
horseluke (微碌) | 2012-06-29 01:53
PHP的輸出轉(zhuǎn)義一般用htmlspecialchars的...addslashes只是數(shù)據(jù)庫相關(guān)轉(zhuǎn)義,輸出轉(zhuǎn)義用addslashes肯定不能通過代碼審計的。
但是............有沒有人研究過繞過strip_tags?見到有人用這個來做輸出轉(zhuǎn)義,覺得不安全,但又說不出所以然,更試不出所以然...
Sogili (-_-)Web瘋狂科學(xué)家//mmme.me(-_-) | 2012-06-29 01:58
@horseluke 嗯,不過htmlspecialchars不會轉(zhuǎn)換%00,如果真的沒處理%00就更好玩了.
horseluke (微碌) | 2012-06-29 02:03
@Sogili 不明白,對XSS不熟悉,求詳解...
Sogili (-_-)Web瘋狂科學(xué)家//mmme.me(-_-) | 2012-06-29 02:09
@horseluke IE可以解析<[0x00]i[0x00]0m[0x00]0g src=xx:x o[0x00]nerror=alert(1)> 可以繞過很多filter,所以不處理[0x00]是很危險的.我了解的只是XSS的方面,我想對服務(wù)端安全影響也不小.
_Evil (性趣是最好的老師.) | 2012-06-29 06:44
web科學(xué)家這個不錯 不過范圍小了的 只能ie
gainover (">_< ' / & \ 看啥,沒見過跨站字符么) | 2012-06-29 07:53
可以在自己電腦上寫個利用場景試一試
測試代碼:
alert('abc\0 def')如果只是這樣最多就是spoofing,但配合IE(<=8)的一個解析bug和php的[魔術(shù)引號]就是一個DOM XSS了.
IE解析bug:
<a href="<body/onload=alert(1)>click</a>
在前面的我分享過的XSS向量里有提到過,就是當(dāng)解析器不能匹配到一個標(biāo)簽里屬性值的結(jié)束界定符的時候會認(rèn)為這是個無效的標(biāo)簽,將其當(dāng)成文本.
<a href=" 變成<a href=" <body/onload=alert(1)>被解析成html.PHP的轉(zhuǎn)義問題
在5.3.0之前,php默認(rèn)開啟了magic_quotes_gpc.
它不但會轉(zhuǎn)換" ' 之類的字符,還會將轉(zhuǎn)義%00轉(zhuǎn)換成\0
在javascript的字符串中\(zhòng)0又會被轉(zhuǎn)義回去.
注:即便關(guān)閉了魔術(shù)引號,開發(fā)者一般也會實用addslashes之類的函數(shù),這些函數(shù)同樣會將%00轉(zhuǎn)換成\0
So
document.write('<img src="<iframe/onload=alert(1)>\0">')
--------------------------------------------------------------------------------
相關(guān)評論:
--------------------------------------------------------------------------------
Xhm1n9 | 2012-06-29 01:34
實用的技巧:)
horseluke (微碌) | 2012-06-29 01:53
PHP的輸出轉(zhuǎn)義一般用htmlspecialchars的...addslashes只是數(shù)據(jù)庫相關(guān)轉(zhuǎn)義,輸出轉(zhuǎn)義用addslashes肯定不能通過代碼審計的。
但是............有沒有人研究過繞過strip_tags?見到有人用這個來做輸出轉(zhuǎn)義,覺得不安全,但又說不出所以然,更試不出所以然...
Sogili (-_-)Web瘋狂科學(xué)家//mmme.me(-_-) | 2012-06-29 01:58
@horseluke 嗯,不過htmlspecialchars不會轉(zhuǎn)換%00,如果真的沒處理%00就更好玩了.
horseluke (微碌) | 2012-06-29 02:03
@Sogili 不明白,對XSS不熟悉,求詳解...
Sogili (-_-)Web瘋狂科學(xué)家//mmme.me(-_-) | 2012-06-29 02:09
@horseluke IE可以解析<[0x00]i[0x00]0m[0x00]0g src=xx:x o[0x00]nerror=alert(1)> 可以繞過很多filter,所以不處理[0x00]是很危險的.我了解的只是XSS的方面,我想對服務(wù)端安全影響也不小.
_Evil (性趣是最好的老師.) | 2012-06-29 06:44
web科學(xué)家這個不錯 不過范圍小了的 只能ie
gainover (">_< ' / & \ 看啥,沒見過跨站字符么) | 2012-06-29 07:53
可以在自己電腦上寫個利用場景試一試
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信