DVWA DOM Based Cross Site Scripting (XSS)

XSS

概念

跨站脚本(cross site script)为了避免与样式css混淆,所以简称为XSS。
XSS 攻击指黑客通过特殊的手段往网页中插入了恶意的 JavaScript 脚本,从而在用户浏览网页时,对用户浏览器发起 Cookie 资料窃取、会话劫持、钓鱼欺骗等各攻击。

XSS 跨站脚本攻击本身对 Web 服务器没有直接危害,它借助网站进行传播,使网站的大量用户受到攻击。攻击者一般通过留言、电子邮件或其他途径向受害者发送一个精心构造的恶意 URL,当受害者在 Web 浏览器中打开该URL的时侯,恶意脚本会在受害者的计算机上悄悄执行。

原理

  • 攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。
  • 诱使受害者打开受到攻击的服务器URL。
  • 受害者在Web浏览器中打开URL,恶意脚本执行。

DOM

简单来说DOM文档就是一份XML文档,当有了DOM标准之后,DOM便将前端html代码化为一个树状结构,方便程序和脚本能够轻松的动态访问和更新这个树状结构的内容、结构以及样式,且不需要经过服务端,所以DOM型xss在js前端自己就可以完成数据的输入输出,不与服务器产生交互,这样来说DOM型xss也可以理解为反射性xss。

下面看一个DOM将html转换为树状结构体,深入的理解DOM结构标准:


所以说DOM型xss可以在前端通过js渲染来完成数据的交互,达到插入数据造成xss脚本攻击,且不经过服务器,所以即使抓包无无法抓取到这里的流量,而反射性与存储型xss需要与服务器交互,这便是三者的区别 

DVWA

在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。

LOW

没有任何保护措施,页面是让我们选择语言, defult参数可以在URL上直接修改

MEDIUM

过滤掉了<script,如果检测到defult后面有<script就将defult后面的参数改为english,这里需要javascript的基础

这里可以使用这段代码

</option></select><img src=x οnerrοr=alert(1)>
  1. </option></select>: 这是正常的HTML代码,表示关闭一个下拉选择框 (<select>) 元素的选项 (<option>) 列表和选择框本身。

  2. <img src=x οnerrοr=alert(1)>: 这部分包含了一个 <img> 元素,但它的 src 属性中包含了字符 x,然后紧随其后的是一个 οnerrοr(实际上是希腊字母 "ο" 而非英文 "onerror")属性,以及一个 JavaScript 弹出警报框 alert(1)

    • src=x: 这部分表示图像的来源是字符 "x",但由于 "x" 不是有效的图像 URL,它实际上不会加载任何图像。
    • οnerrοr=alert(1): 这是一个恶意操作。当浏览器尝试加载图像时,如果图像加载失败,会触发 οnerrοr 事件,这里将其设置为弹出 JavaScript 警报框(alert(1)),这意味着如果图像加载失败,会弹出一个警报框显示数字 "1"。
  3. 这段代码的目的是将 JavaScript 代码注入到 HTML 中,并尝试触发一个 JavaScript 弹出警报框。这是一种常见的跨站脚本攻击 (XSS) 尝试,攻击者试图在网站上注入恶意脚本以执行恶意操作。

  4. <option></select>都是双标签,也就是说会识别两个标签之间的语句,那么我们就人为把它闭合起来,在执行过程中,一旦存在一对标签,那么就会执行这里面的语句,无法构成成对标签的不会执行里面的语句,而是单标签,也就是说他要执行的语句涵盖在它里面。通过构造闭合,我们成功执行xss。(简单来说就是构造语句闭合形成XSS)

    简单来说:将<option>和<select>标签闭合,保证img标签可以插入。

 HIGH

他的意思是只有default后面是他提供的这几个选项才可以成功,我们可以在default=English后面用&连接语句,default=English&<script>alert('aaa')</script>,据说还可以用#连接,但是#后面会被注释掉,为什么还能执行语句? 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值