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
自動跳轉到那個網址,但是失效了
看看前輩的吧
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檔案