网络安全-跨站脚本攻击(XSS)的原理、攻击及防御,非常详细,从零基础到精通,收藏这篇就够了!

目录

简介

所用工具

XSS的类型

反射型XSS/不持久型XSS

存储型XSS/持久型XSS

基于DOM的XSS

常用Payload与工具

XSS扫描工具

Payloads

script标签类

结合js的html标签

伪协议

绕过

危害

防御


简介

跨站脚本攻击(全称Cross Site Scripting,为和CSS(层叠样式表)区分,简称为XSS)是指恶意攻击者在Web页面中插入恶意javascript代码(也可能包含html代码),当用户浏览网页之时,嵌入其中Web里面的javascript代码会被执行,从而达到恶意攻击用户的目的。XSS是攻击客户端,最终受害者是用户,当然,网站管理员也是用户之一。
XSS漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以xss漏洞关键就是寻找参数未过滤的输出函数

php中常见的输出函数有:

  • echo
  • printf
  • print
  • print_r
  • sprintf
  • die
  • var-dump
  • var_export

所用工具

Google出品:开源Web App漏洞测试环境:Firing Range

靶机:dvwa、pikachu

XSS的类型

反射型XSS/不持久型XSS

选择的是echo函数,不加过滤,直接输出

input.php

<?php 
$input = $_GET['input'];
echo 'output:<br>'.$input;
?> 

显示

可以看到我们的输入直接被输出。 那么,如果我们的参数是JavaScript代码呢?

<script>alert('xss attack by lady_killer9')</script>

js代码执行

也就是说js能够做到的事情,都可在这里插入去实现,比如跳转到钓鱼网站。

Firing Range的Html Body存在的反射型XSS

反射性XSS攻击之html Body

脚本插入

下面是在dvwa中的展示

插入js代码

提交

查看网页源代码

存储型XSS/持久型XSS

和反射型XSS的即时响应相比,存储型XSS则需要先把代码保存到数据库或文件中,下次读取时仍然会显示出来,利用的问题依然是没有对用户的输入进行过滤。使用靶机pikachu的存储型xss。

<script>alert(document.cookie)</script>

XSS注入

注入成功

注入后留言列表

基于DOM的XSS

基于文档对象模型(Document Object Model,DOM)的一种漏洞。客户端的脚本可以通过DOM动态地修改页面内容,它不依赖于提交数据到服务器,而是从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM型XSS漏洞。

没了解过DOM的可以看一看HTML DOM教程

HTML DOM就像数据结构中的树,有根节点,叶子节点等,通过document对象进行写入。

F12查看源代码

使用F12查看,发现是把id为text的输入框的内容显示出来。单引号闭合即可,而且F12的时候就直接看见了。

提示给的是

'onclick="alert('lady_killer9')">

我使用的是

'onclick='alert('lady_killer9')

注入成功

常用Payload与工具

XSS扫描工具

工具不在于多,学一个就可以了,我学习的是第一个网络安全-XSStrike中文手册(自学笔记)

Payloads

script标签类

对于没有过滤的很简单的XSS漏洞,可以使用

有的时候会过滤掉script,大小写、双写等无法绕过,可使用后面的payload。

结合js的html标签

可结合一些onclick、onerror等事件

<IMG οnmοuseοver=“alert(‘xxs’)”>

<img src=xss οnerrοr=alert(1)>

伪协议

上面的都不行的话,可以试试伪协议

绕过

大小写绕过

双写绕过

alert(“XSS”)

html编码绕过

<script>alert(“XSS”)</script>

等价于

a

等价于

a

如果你还不了解常见编码,可查看:网络安全-WEB中的常见编码

标签优先级绕过

标签比标签解析优先性更高,所以会优先闭合,导致标签逃逸,从而造成xss执行

危害

  1. 用户的Cookie被获取,其中可能存在Session ID等敏感信息。若服务器端没有做相应防护,攻击者可用对应Cookie登陆服务器。
  2. 攻击者能够在一定限度内记录用户的键盘输入。
  3. 攻击者通过CSRF等方式以用户身份执行危险操作。
  4. XSS蠕虫。
  5. 获取用户浏览器信息。
  6. 利用XSS漏洞扫描用户内网。

防御

  • 标签过滤
  • 事件过滤
  • 敏感字符过滤
  • 设置httponly防止Cookie被获取
  • 内容安全策略(CSP)
  • 在将不可信数据插入到HTML标签之间时,对这些数据进行HTML Entity编码
  • 在将不可信数据插入到HTML属性里时,对这些数据进行HTML属性编码
  • 在将不可信数据插入到SCRIPT里时,对这些数据进行SCRIPT编码
  • 在将不可信数据插入到Style属性里时,对这些数据进行CSS编码

当然,如果过过滤不全,或者CSP配置错误,也可能被绕过。

------------------------------------20210821补充--------------------------------------

知乎-如何通过XSS获取http-only保护的Cookie

在线XSS挑战:XSS平台|CTF欢迎来到XSS挑战|XSS之旅|XSS测试

XSS Challenges:XSS Challenges

XSS Payload:https://github.com/payloadbox/xss-payload-list

OWASP XSS过滤备忘单:Redirecting…

相对路径引入js进行XSS攻击:RPO攻击技术

防御XSS的七条准则

更多内容查看:网络安全-自学笔记

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!如有侵权,请及时联系。如果您感觉有所收获,自愿打赏,可选择支付宝18833895206(小于),您的支持是我不断更新的动力。

本文转自 https://blog.youkuaiyun.com/lady_killer9/article/details/107126005?spm=1001.2014.3001.5502,如有侵权,请联系删除。

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

1.成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

2.视频教程

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩


因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

3.SRC&黑客文籍

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

黑客资料由于是敏感资源,这里不能直接展示哦!

4.护网行动资料

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

5.黑客必读书单

**

**

6.面试题合集

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

更多内容为防止和谐,可以扫描获取~

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值