目录
一、XSS原理
跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。
也就是说用户在框中输入恶意代码并且执行,以此来达成攻击。
二、xss类型
1.反射性xss
反射型XSS也被称为非持久性XSS,当用户访问一个带有XSS代码的HTML请求时,服务器端接收数据后处理,然后把带有XSS的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,就造成XSS漏洞,这个过程就像一次反射,所以叫反射型XSS。
例如
<?php
echo $_GET["id"];
?>
可以通过修改id的值构造语句来攻击,例如
id=<script> alert(1) </script>
2.储存性xss
存储型XSS又被称为持久性XSS,存储型XSS是最危险的一种跨站脚本漏洞,当攻击者提交一段 XSS代码后,被服务端接收并存储,当攻击者或用户再次访问某个页面时,这段XSS代码被程序读出来响应给浏览器,造成XSS跨站攻击,这是存储型XSS。
三.xss漏洞例题
找了很多网站发现xss的题实在是有点少只找到了test.ctf8.com这个网站,
第一关:
应该是要回显直接构造
<script>alert('abc')</script>
成功(这个网站成功就是回显完成的不错)
第二关
点了搜索发现submit有变化应该是要闭合前面语句于是F12
于是payload
"><script>alert(1)</script>
三.总结
xss总的就是通过注入恶意代码来执行攻击。
记住例题id=<script> alert(1) </script>
附言:
ctf里感觉xss的题不多,比赛可能多一点,等多打点比赛再回来记录吧。下面总结反序列化的寄到题目。
希望自己不要这么菜吧 _(:з」∠)_ ----L1men2