文章目录

一、Ctfshow
XSS总结
web 316——未做任何过滤(反射型)
document.cookie //获取浏览器cookie
window.location.href //获取当前页面的网站
window.location.href='URL' //重定向网站
常用payload:<script>alert(1)</script>
或<scirpt>alert("xss");</script>
web 317-319——过滤特定标签(反射型)
思路:过滤<script>
标签,就换其他标签<img src=1 onerror=alert("xss");>
、<body/onload=alert("xss");>
XSS总结
web 320——过滤空格(反射型)
用/
代替空格,<img/src="x"/onerror=alert("xss");>
web 328——注册插入JS(存储型)
存储型xss,将payload写入到数据库中。
web 329——验证失效(存储型)
思路:既然cookie失效很快,就不采取通过获取cookie再登录后台这个思路。换个思路,直接通过JS代码获取网页源代码。
web 330——XSS+CSRF(GET型)
web 331——XSS+CSRF(POST型)
重点:如何使用JS实现POST方式提交表单。使用ajax
二、XSS防御
- 过滤一些危险字符,以及转义
&、<、>、“、’
等危险符号。自定义过滤函数 - HttpOnly,httponly主要解决javascript访问cookie的问题。明显的例子就是使用javascript获取cookie获取不全,一般获取不到
phpsession
的值。httponly可以在php配置文件(全局)中设置,也可以在代码中设置(局部)。httponly保护cookie
- CSP(content security policy),文件保护策略。例如,使用
document.cookie
的XSS获取管理员cookie,若配置CSP,获取不到cookie,因为CSP导致数据不能外放。
- 输入内容长度限制,实体转义等。