文档章节

【DVWA】XSS

yongh701
 yongh701
发布于 2018/05/03 22:07
字数 595
阅读 70
收藏 0
PHP

对于一个简单的输入框,基本上学过html编程的人都知道怎么写,但要是不做一些过滤,你可能会遭遇到黑客的XSS攻击,黑客可以在你的网站上挂载一系列的Javascript脚本,很有可能就此让访问你的网站的人cookies泄漏,如果你这输入框还和你的数据库关联,那问题更大。

在DVWA的XSS(Reflected)中就展示了一个很简单的XSS。如图,就只有一个输入框,在输入框中输入东西,点击submit,网页就会出现反馈:

这个网页的代码也和大家想的一样,非常简单,一得到参数就会将东西反映出来:

<?php

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

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

?>

但大家有没有想过,要是name这个参数是<script>XX</script>,那么网页的html就会变成:

<pre>
	Hello<script>XX</script>
</pre>

那黑客是不是想在XX中写任何脚本都行?也就是在输入框中,写入<script>XX</script>就行,比如,写入<script>alert(1)</script>再点击submit,这个网页就会弹一个窗,如下图所示:

显然,黑客在攻击的时候肯定不会写弹窗,当然是写些有害的脚本。

所以,我们要对网站所有有输入的地方进行防范。在php中集成了一个很好用的函数htmlspecialchars(),可以帮我们过滤如同<script>这类有害字符。在DVWA的impossible也就是这样做的,如下的代码:

<?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
	$html .= "<pre>Hello ${name}</pre>";
}

// Generate Anti-CSRF token
generateSessionToken();

?>

当然如果你的输入框的字符,之后还要进数据库的,那还要考虑到《【DVWA】SQL注入》(https://my.oschina.net/u/3776619/blog/1805225)的内容。在DVWA的XSS(Stored)模块,就是一个很好的综合例子,大家有兴趣可以继续研究。

© 著作权归作者所有

yongh701
粉丝 27
博文 17
码字总数 10682
作品 0
佛山
私信 提问
【DVWA】Web漏洞实战之File Upload

File Upload File Upload,即文件上传漏洞,一般的上传漏洞可能是未验证上传后缀 或者是验证上传后缀被bypass 或者是上传的文件验证了上传后缀但是文件名不重命名。 LOW 直接上传任意文件 ME...

bypass
2017/03/11
0
0
xss攻击的初步了解

什么是XSS攻击 XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意HTML代码和客户端脚本,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而...

凡尘里的一根葱
2015/12/02
101
0
XSS漏洞分析

什么是XSS XSS可以干什么 XSS分类 反射(非持久)型XSS xss.php 提交 /xss.php?x= 服务端解析式,echo就会完整的输出 到响应体中,然后浏览器解析执行触发弹窗 储存(持久)型XSS #eg:http:...

nw01f
2016/07/15
0
0
PHP htmlspecialchars不能防御前端innerHTML产生的XSS注入

不要在JS里直接用innerHTML输出未经JS过滤的用户内容, 即使这些内容已经经过服务器端PHP的htmlspecialchars或者HTMLPurifier过滤. 比如下面的代码,页面将alert弹出字符串/xss/,因为JS会把变量...

eechen
2016/02/28
1K
3
XSS Exploit框架--Xenotix

Xenotix XSS Exploit Framework是一款用于检测和利用WEB应用程序中的XSS漏洞的渗透测试工具。这个工具可以将代码注入到含有xss漏洞的web页面中。 Xenotix的主要特点: 内置XSS Payloads XSS键...

匿名
2012/09/12
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

DevOps是如何实现效率的提升?

随着企业业务对软件系统日益依赖,IT管理与研发模式也随之对“敏态”模式产生了需求,也就是今天时常提起的DevOps。提升效率,是DevOps实践的核心内容之一。就让我们来一起从软件生命周期的业...

嘉为科技
20分钟前
2
0
总结:linux目录之proc

我们系统大部分的基础数据采集,其实就是读取proc目录下的文件,并解析获取数据的过程。 1、如cpu利用率:直接cat /proc/cpuinfo命令,然后获取输出内容,并解析里面的数据,如cpu核数等; ...

浮躁的码农
22分钟前
2
0
比原Bapp红包应用

喜迎国庆期间,比原链在自己的移动端钱包Bycoin(下载地址)和google插件钱byone中推出了红包应用,在国庆期间深受大家好评。 那我们今天就来大概介绍一下比原红包,以及基于比原链开发dapp应用...

比原链Bytom
23分钟前
2
0
Linux中没有rc.local文件的解决方法

Linux中没有rc.local文件的解决方法是什么呢?这应该是很多工程师比较头疼的问题,下面就给大家例举几个解决办法。 比较新的Linux发行版已经没有rc.local文件了。因为已经将其服务化了。 解决...

xiangyunyan
23分钟前
2
0
数据中台在阿里巴巴集团内部的实践情况

作者:品鉴 数据中台门在阿里巴巴集团干什么的,由哪个部门掌管?数据中台在阿里巴巴的主要作用是什么呢?外面吹嘘这么神秘的数据中台在阿里实践的如何呢?今天小编正好要采访数据技术及产品...

阿里云官方博客
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部