xss又叫css,为了与前端的css区别,所以叫xss,即跨站脚本攻击。
XSS原理解析
XSS攻击是在网页中嵌入客户端恶意脚本代码,恶意代码一般都是javascript编写的。想要深入研究XSS,必须精通javascript。
javascript可以获取用户的cookie、改变网页内容、URL跳转,所以,存在XSS漏洞的网站,就可以盗取Cookie、黑掉页面、跳转到恶意网站。
在存在XSS漏洞的地方输入<script>alert(/xss/)</script>,则会弹窗。在<script></script>之间输入恶意javascript代码,就会造成相应的恶意攻击。盗取Cookie、监控键盘记录等。
反射型XSS
反射型XSS也被称为非持久性XSS。当用户访问一个带有XSS代码的URL请求时,服务端接收数据后处理,然后把带有XSS代码的数据发送到浏览器,浏览器解析XSS代码,造成XSS漏洞。
比如:XXX.com/1.php?username=<script>恶意代码</script>,就会造成反射型XSS漏洞。看似没什么危害,但是当你了解了Cookie的话,就不会这么认为了。
存储型XSS
存储型XSS又被称为持久型XSS。攻击者提交XSS代码,服务器接收并存储,再次访问这个页面时,XSS代码从数据库中被读取出来,浏览器解析XSS代码,造成存储型XSS攻击。
存储型XSS一般存在于评论,留言板等地方,测试是否存在XSS时,我们要确定输出的内容是在标签内还是标签属性内或者是其他地方,如:<input type="text" name="content" value="<script>alert(/xss/)</script>"/> 这段代码中的XSS就不会被执行,因为XSS代码是value属性的值,被当做HTML来解析,此时,我们需要闭合input标签,<input type="text" name="content" value=""/><script>alert(/xss/)</script>"/> ,这样就会执行XSS代码,造成恶意攻击。
检测XSS
检测分为手工检测和软件自动检测。
(1)手工检测
输入一些敏感字符,例如“<、>、"、'、()”等,提交请求查看源代码看是否被转义。
不知道输出位置的情况下使用:"/>XSS 来测试。
(2)软件自动检测
软件检测都是自动化,像appscan、awvs、burpsuit等都可以检测。
专业的XSS扫描工具有XSSER、XSSF等。
检测XSS要工具与手工并进,这样才能更好的检测XSS。