前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DVWA之反射型XSS代码审计

DVWA之反射型XSS代码审计

作者头像
全栈程序员站长
发布2022-09-05 10:29:46
8930
发布2022-09-05 10:29:46
举报

大家好,又见面了,我是你们的朋友全栈君。

目录

low

medium

high

impossible


从整个cms的角度去分析这个漏洞

low

前端代码如下。定义了一个表单以get的方式发送请求形式为?name= 。然后引用了一个$html的变量

DVWA之反射型XSS代码审计
DVWA之反射型XSS代码审计

html所在文件源码如下。array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。_GET为超全局变量。

直接将输入的name值赋值给变量$html然后前端再引用这个变量,所以触发xss

代码语言:javascript
复制
<?php

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

// 如果$_GET中存在'name'这个键,说明点击了form表达的提交按钮。$_GET就是以数组的形式保存变量
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
	// Feedback for end user
	$html .= '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?

medium

可见在低级的基础上增加了str_replace()函数,将用户的输入中<script>关键字进行了过滤,所以可以考虑双写关键字进行绕过。我们也知道构造xss有以下几种方式,所以我也可以利用第二种和第三种方式进行弹窗

  • 利用<script>标签构造
  • 利用js伪协议:<a href=”javascript:alert(/xss/)”>touch me</a>
  • 利用html事件
DVWA之反射型XSS代码审计
DVWA之反射型XSS代码审计

1. 双写<script>绕过

代码语言:javascript
复制
<scr<script>ipt>alert(/xss/)</scr<script>ipt>

2. 利用伪协议

代码语言:javascript
复制
<a href="javascript:alert(/xss/)">touch me</a>
DVWA之反射型XSS代码审计
DVWA之反射型XSS代码审计

3. 利用html事件

代码语言:javascript
复制
<input type="button" onclick="alert(/xss/)" value="点我!">
DVWA之反射型XSS代码审计
DVWA之反射型XSS代码审计

high

在中级的时候只是对<script>关键字进行了一次过滤,这里使用正则表达式对<script中的每一个词进行了无限次过滤,所以这里不能双写绕过。但是我们可以使用伪协议和产生html事件进行弹窗,和上一样

DVWA之反射型XSS代码审计
DVWA之反射型XSS代码审计

impossible

可以看出多了user_token和session_token,这是防csrf的,因为经常是xss+csrf结合攻击。然后他对我们输入的内容用htmlspecialchars() 函数进行处理。这里主要看htmlspecialchars() 就行

DVWA之反射型XSS代码审计
DVWA之反射型XSS代码审计

htmlspecialchars()

htmlspecialchars()函数是使用来把一些预定义的字符转换为HTML实体,返回转换后的新字符串

  • & 转换为&amp
  • ” 转换为&quot
  • ‘ 转换为成为
  • < 转换为&lt
  • > 转换为&gt

xss构造的几种方式

  • 利用<script>构造,<>被转换了所以不行
  • 利用伪协议,需要用到<和单引号或者双引号,所以不行
  • 利用html事件,也需要用到<和单引号或者双引号,所以不行

如下,我们选中然后右键查看选中部分源码,发现被转换了,所以确实是impossible

DVWA之反射型XSS代码审计
DVWA之反射型XSS代码审计

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137360.html原文链接:https://javaforall.cn

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年6月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • low
  • medium
  • high
  • impossible
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com