博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DVWA系列之20 反射型XSS分析
阅读量:6464 次
发布时间:2019-06-23

本文共 831 字,大约阅读时间需要 2 分钟。

我们首先来分析反射型的XSS。将安全级别设为low,然后选择XSS reflected,在文本框中随意输入一个用户名,提交之后就会在页面上显示。从URL中可以看出,用户名是通过name参数以GET方式提交的。

查看low级别的网页代码,可以看到这里对用于接收用户数据的name参数没有进行任何过滤,就直接在网页中输出,因而造成了XSS漏洞。

我们输入一段最基本的XSS语句来实现弹框:“<script>alert(‘hi’)</script>”:

此时查看网页源文件,可以看到我们所输入的脚本被嵌入到了网页中。

再输入一段语句来弹出cookie:“<script>alert(document.cookie)</script>”。

接下来再查看medium级别的XSS源码,这里在输出name参数中的数据之前,先利用str_replace()函数进行了处理,处理的目的是将<script>替换成空值。

但是这个过滤处理实在是太简单了,首先我们只要使用大写的<SCRIPT>就可以绕过,其次XSS也并非只能使用JavaScript,通过HTML语句也可以跨站,比如“<img src=1 οnerrοr=alert(‘hi’)>”语句。<img>是html中的图片标记,这条语句表示在网页中插入一张图片,“src=1”指定了图片文件的URL,如果图片不存在(这里肯定是不存在了),那么将会弹出错误提示框,从而实现弹框的效果。

最后再来查看high级别的源码,这里利用了htmlspecialchars()函数进行过滤。这个函数可以把& (和号)、"(双引号)、'(单引号)、<(小于)、>(大于)这些敏感符号都进行转义,所有的跨站语句中基本都离不开这些符号,因而只需要这一个函数就阻止了XSS漏洞,所以跨站漏洞的代码防御还是比较简单的。

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1728465

转载地址:http://haezo.baihongyu.com/

你可能感兴趣的文章
轮播插件swiper.js?
查看>>
15 个 Android 通用流行框架大全
查看>>
IE8兼容@media和mp4视频的解决方案
查看>>
【转】知道这20个正则表达式,能让你少写1,000行代码
查看>>
自定义 启动和关闭 oracle 的命令
查看>>
Quartz
查看>>
正则表达式介绍
查看>>
初识Scala反射
查看>>
第三十九天
查看>>
Redis详解
查看>>
论程序员加班的害处
查看>>
codeblocks快捷键
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
过滤DataTable表中的重复数据
查看>>
再次更新
查看>>
mysql的数据类型int、bigint、smallint 和 tinyint取值范围
查看>>
移动铁通宽带上网设置教程
查看>>
Python算法(含源代码下载)
查看>>
利用Windows自带的Certutil查看文件MD5
查看>>