【网络安全】跨站脚本攻击漏洞(了解)

1.了解

跨站脚本(Cross-site Scripting)攻击,攻击者通过网站注入点注入客户端可执行解析的脚本代码(payload),当用户访问网页时,恶意脚本自动加载并执行,已达到攻击者目的(窃取cookie、恶意传播、钓鱼欺骗等)。

为了避免与HTML语言中的CSS相混淆,通常称为XSS。

2.危害

获取用户信息(浏览器信息、ip地址、cookie信息等)

钓鱼(利用XSS漏洞构造出一根登录框,骗取用户账户密码)

注入木马或广告链接(在主站中注入非法网站的链接)

后台增删改网站数据等操作(配合CSRF漏洞,骗取用户点击,利用js模拟浏览器发包)

xxs蠕虫(微博蠕虫:只要看过某人的微博就自动关注某人;贴吧蠕虫:只要看过某个帖子就自动回复这个帖子)

3.详解

漏洞基础类型:

反射型XSS

可用于钓鱼、引流、配合其他漏洞。

特点:仅执行一次,非持久型;参数型跨站脚本。


成因分析:

攻击者将恶意脚本附加到URL的参数中,发送给受害者,服务端未经过严格过滤处理而输出在用户浏览器中,导致浏览器执行代码数据。


初步尝试:

一般在输入框中输入JavaScript代码进行测试。


攻击手段:

1.测试

在输入框中输入

看是否有弹框

2.注入JavaScript文件代码


过滤方式:

将输入框内Script替换为空。

区分大小写。

把预定义的字符"<" “/” “&” 等转换为HTML实体,防止浏览器识别为HTML代码。


绕过方法:

大写绕过:

双写绕过:<scr

使用其他标签:<img src=1 οnerrοr=alert(‘hack’)>

存储型XSS

攻击范围广,流量传播大。可配合其他漏洞。

特点:持久型。常见于评论留言。

比如评论框中输入:

那么别人查看评论的时候,也会加载你的评论,那么就会加载这个代码,弹出弹框,每次加载都会弹出,所以是持久型。


成因分析:

攻击者将恶意脚本存储到服务器数据库中,当用户访问包含恶意相关数据的页面时,服务端未经严格过滤处理而输出在用户浏览器中,导致浏览器执行 恶意代码数据。


初步尝试:

将JavaScript代码放入输入框中。


攻击手段:

1.测试

在输入框中输入

看是否有弹框

2.注入JavaScript文件代码


对漏洞的防范方法:

移除字符串两侧的空白字符或预定义字符。

移除字符串中的反斜杠。

对字符串中sql的特殊字符进行转义。

剥去字符串中的HTML、XML、Javascript以及PHP的标签。

使用htmlspecialchars()函数,将特殊字符变为实体,不参与标签使用。


绕过方法:

大写绕过:

双写绕过:<scr

使用其他标签:<img src=1 οnerrοr=alert(‘hack’)>

DOM型XSS

属于客户端的XSS,长度大小不受限制。可配合其他漏洞。

**特点:**通过JavaScript操作document,实现dom树的重构。

主要存在于用户能修改页面的dom,造成客户端恶意脚本代码(payload)在浏览器中执行。


成因分析:

在网址中插入JavaScript代码,程序没有对网址内容进行限制,就会造成漏洞。


初步尝试:

在网址中添加JavaScript代码。


攻击手段:

1.测试

“” ‘’ \ & < {()} 一一测试程序限制了哪些内容

2.查看网页源代码

了解如何闭合属性、标签

3.编写恶意代码

http://github.com/pgaijin66/XSS-Payloads/blob/master/payload.txt


防范方法:

移除JavaScript标签。

限制输入选择。

网址输出时再进行限制。


绕过方法:

使用大小写,标签套标签。

闭合相应的标签,在后面添加Javascript代码。

使用#注释PHP代码的限制输入。

猜你喜欢

转载自blog.csdn.net/love_wgll/article/details/129293508