前言
DVWA安装使用介绍,见:【工具-DVWA】DVWA的安装和使用
本渗透系列包含最新DVWA的14个渗透测试样例:
1.Brute Force(暴力破解)
2.Command Injection(命令注入)
3.CSRF(跨站请求伪造)
4.File Inclusion(文件包含)
5.File Upload(文件上传)
6.Insecure CAPTCHA(不安全的验证码)
7.SQL Injection(SQL注入)
8.SQL Injection(Blind)(SQL盲注)
9.Weak Session IDs(有问题的会话ID)
10.XSS(DOM)(DOM型xss)
11.XSS(ref)(反射型xss)
12.XSS(Stored)(存储型xss)
13.CSP Bypass(Content Security Policy内容安全策略,旁路/绕过)
14.JavaScript
安全级别分低、中、高、安全四个级别来分析XSS(Stored)的渗透测试过程。
1 基础知识
- XSS
Cross Site Scripting,一种将恶意代码注入到页面的攻击手段,当用户访问页面时,恶意代码会被执行。
- 存储型
很简单,就是被后台进行了持久化处理。再次访问的时候会被调用执行。
- 常用注入代码
<script>alert(1)</script>
<img src=1 onerror=alert(1) hidden="true"/>
<iframe onload=alert(1) height="0" width="0" hidden="true"/>
2 Low+Medium+High+Impossible
由于和XSS(Reflect)情况基本一毛一样,所以仅做源码分析,渗透过程,可以参考上一章。
- Low:没限制XSS,随便玩
- Medium:限制了<script>,但是可以通过大小写绕过
$name = str_replace( '<script>', '', $name );
- High:通过正则限制了<script>,但是可以通过img或iframe等绕过
$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $name );
- Impossible:采用了htmlspecialchars,有些情况下存在通过单引号绕过风险,本例不可绕过
$message = htmlspecialchars( $message );
$name = htmlspecialchars( $name );
3 总结
利用:如果没有对特殊字符进行HTML转义,都存在被XSS利用的漏洞
防御:数据返回前端页面前,将【<】【>】【"】【'】【&】全转义了,既可!
爱家人,爱生活,爱设计,爱编程,拥抱精彩人生!