XSS攻击

XSS全称Cross Site Scripting即跨站脚本攻击

Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。

1、反射型:Reflected

2、存储型:Stored

3DOM Based XSS

反射型跨站XSS

反射性跨站过程如下:

1、用户正常登陆

2、攻击者把恶意的URL提交给客户

3、用户查请求恶意攻击者的URL

4、服务器对攻击者的JS做出回应

5、攻击者的JS在客户浏览器执行

6、用户的浏览器向攻击者发送会话令牌

7、攻击者劫持用户会话

实例:

DVWA四种级别的代码进行分析:low,medium,high,impossible
服务器端核心代码,Low:


<?php

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

?>
输入<script>alert(/xss/)</script>,成功弹框:

 

 

实例-Medium

服务器端核心代码,Medium:

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
	// Get input
	$name = str_replace( '<script>', '', $_GET[ 'name' ] );

	// Feedback for end user
	$html .= "<pre>Hello ${name}</pre>";
}

?>
输入<sc<script>ript>alert(/xss/)</script> ,成功弹框:

实例-High

输入<img src=1 οnerrοr=alert(/xss/)> ,成功弹框:
 

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
	// Get input
	$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

	// Feedback for end user
	$html .= "<pre>Hello ${name}</pre>";
}

?>

实例-impossible

服务器端核心代码,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();
?>



存储型跨站

存储型跨站过程如下

1、用户正常浏览信息

2、通过发帖向服务器发送存在恶意代码的帖子

3、用户查看发帖网页,查看贴子内容

4、服务器将恶意的代码发送给用户

5客户端浏览器执行恶意代码

实例:

DVWA种级别的代码进行分析:low,medium,high,impossible

服务器端核心代码,Low:

输入<script>alert(/xss/)</script>,成功弹框:

 

 

DOM XSS

DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式

DOMXSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞

可能触发DOMXSS的属性:

  document.referer属性

  window.name属性

  location属性

  innerHTML属性

  documen.write属性

  ······

跨站攻击的危害

劫持用户的cookie信息,进行身份盗用;

重定向用户到其它的网页或网站,进行钓鱼欺骗;

在网站上挂木马程序;

XSS蠕虫:XSS 蠕虫可以用来打广告、刷流量、挂马、恶作剧、破坏网上数据、实施DoS攻击等;

与其它漏洞结合,修改系统设置,查看系统文件,执行系统命令等

…….

防范措施

 

需作转义的字符

字符实体编码

&

&amp;

&lt;

&gt;

"

&quot;

'

&#x27;

/

&#x2F;

程序开发者:

Ø对用户提交内容进行合法性校验

Ø用户提交内容进行转义处理

Ø对用户输入的长度进行限制

普通用户:

Ø不要轻易访问别人给你的长链接,它可能包含了转码后的恶意HTML代码。

Ø禁止浏览器运行JavaScriptActiveX代码

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值