XSS
跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。
XSS攻击,指通过在页面注入恶意JAVASCRIPT代码,从而在用户浏览被注入恶意代码的页面时,控制用户的浏览器行为的一种攻击。
XSS一般分为3类:
1.反射型XSS,相对来说,危害较低,需要用户点击特定的链接才能触发。
2.存储型XSS,该类XSS会把攻击代码保存到数据库,所以也叫持久型XSS,因为它存在的时间是比较长的。
3.DOM 型XSS,这类XSS主要通过修改页面的DOM节点形成XSS,称为DOM Based XSS。
在实际过程中,我们会通过各种手段去寻找其是否存在XSS漏洞,如果存在XSS漏洞,我们便可执行攻击指令,下面我将介绍反射型和存储型中常见的寻找其XSS漏洞的方法。使用的靶机为DVWA
1、反射型XSS
LOW级
首先,在输入框中随意输入了字符,然后点击确定,输出如下
然后重新构造如下指令
<script>alert('xss')</script>
最终会得到如下输出,此时我们可以认为在这个页面中存在XSS漏洞
medium级别
在该级别下存在str_replace('<script>', '', $_GET['name']);
过滤,这个方法的意思是,系统将过去到的name中的<script>
替换成null(空);此时,我们可以认为,在构造XSS攻击语句时,避免出现<script>
即可。这种语句就比较多了。
high级别
这个级别就离谱,在这个级别了使用了一个htmlspecialchars($_GET[‘name’]);这玩意的意思是实体转换字符。转换类型如下
& (和号)成为 &
" (双引号)成为 "
' (单引号)成为 '
< (小于)成为 <
> (大于)成为 >
就离谱。我在链接里尝试输入了若干种XSS,都失败。就离谱。要是有大佬会,教教我。
2、存储型XSS
在DVWA中使用的模块为XSS stored
low级和上述差不多
medium级别
首先,考虑是两个输入框,而且上边的那个输入框就字符限制,好像是10个。下边好像没限制,首先我们考虑能不能将两个输入框打通,于是先在上边的输入款输入
"><!--
然后再下边的输入框输入-->
然后接XSS语句就行
这个原理就是打通两个输入框。
high级。
离谱。