1. 程式人生 > 其它 >xss-labs(11-15)

xss-labs(11-15)

level-11 Http頭修改Refer

初次嘗試

主頁沒有什麼特別的

看看前端原始碼,發現四個隱藏框,且t_ref有值

現在位址列傳值試試:?keyword=good%20job!&t_link=1&t_history=2&t_sort=3&t_ref=4

t_sort 成功傳入值:

引號被實體轉義了?keyword=good%20job!&t_link=1&t_history=2&t_sort=3&t_ref=4

這個t_ref沒有過濾,能不能修改他的值呢?

?keyword=123&t_sort=1" type="text"><script>alert(1)</script>

前面看到位址列是什麼,t_ref就是什麼,而http頭的refer也是那個值,你說巧不巧

hackbar裡把refer改為1

t_ref的值也改變了

refer的值改為" type="text " onmouseover="alert(1),出現文字框

滑鼠移動過去,觸發彈窗

原始碼分析

t_sort的值傳給str00,經過實體轉義後傳入隱藏框

Http的refer經任何過濾<>後傳給str33,才讓我們有了可乘之機

level-12 Http頭修改User Agent

初次嘗試

開啟主頁,老川原礫了

看看前端頁面,這個user-agent立馬引起了我的注意,用腳趾想一想,應該是修改user-agent的值,觸發彈窗

修改值為" type="text" onmouseover="alert(1)

隱藏框出現

移動過去觸發彈窗

原始碼分析

和levle11沒有什麼區別,只是Refer換成了User Agent

level-13 修改Cookie

初次嘗試

cookie引起我的警覺

cookie editor修改cookie: " type="text" onmouseover="alert(1)

重新整理後出現文字框

移動過去觸發彈窗

原始碼分析

和前面兩個差不多

level-14

自動跳轉到那個網址,但是失效了

看看前輩的吧

level-14

15 AngularJS的javascript框架漏洞

看看前端程式碼

無從下手,看看原始碼,就短短的幾行,實體轉義了src的值

ng-include

使用了ng-include這個表示式的意思是當HTML程式碼過於複雜時,可以將部分程式碼打包成獨立檔案,在使用ng-include來引用這個獨立的HTML檔案。

定義和用法

ng-include 指令用於包含外部的 HTML 檔案。

包含的內容將作為指定元素的子節點。

ng-include 屬性的值可以是一個表示式,返回一個檔名。

預設情況下,包含的檔案需要包含在同一個域名下。

引用檔名要加單引號 即 ng-include=" ‘index.html ’ "

特別說明

1.ng-include,如果單純指定地址,必須要加引號

2.ng-include,載入外部html,script標籤中的內容不執行,不能載入,如果需要控制器處理需要在主頁中註冊

3.ng-include,載入外部html中含有style標籤樣式可以識別

4.ng-inclue,外部html中的link標籤可以載入

分析與實踐

由此清楚了ng-include'的用法,載入一個外部的html檔案,嘗試載入前面做過的level

竟然在下面出現了level 4的頁面!

由於level 4產生XSS的頁面是:

http://localhost/xss-lab//level4.php?keyword="onmouseover='alert(1)'

【最終payload】

猜想構造level 5的payload:

http://localhost/xss-lab/level15.php?src='level4.php?keyword=%22%20onmouseover=alert(1)%20%22'

其中%20為空格的url編碼,%22為”的url編碼,將滑鼠移動到下面的輸入框中觸發,成功!

好吧上面是我貼上的原始碼自帶的解析,我的不知道怎麼回事,無法包含外部html檔案