【web安全】xss跨站脚本攻击原理是什么

2021-01-06 09:51发布

5条回答
是你的小甜心呀
2楼 · 2021-01-06 09:55

xxs攻击原理是网页对用户输入的字符串过滤不严,导致在提交输入信息的时候浏览器执行了黑客嵌入的xxs脚本,致使用户信息泄露。黑客可将伪装过的含义脚本语句的链接发送给受害者,当受害者点击链接的时候,由于网页没有过滤脚本语句,所以浏览器执行了脚本语句,而这个脚本语句的作用是将用户的cookie发送到黑客指定的地址,然后黑客就可以利用受害者的cookie窃取受害者的个人信息等等。这种攻击对服务器没有多大危害,但对用户危害很大,要防范这种攻击应该在设计网站的时候对用户提交的内容进行严格的过滤。

小磊子
3楼 · 2021-01-06 10:31

一、XSS跨站脚本攻击

跨站脚本攻击,英文全称是Cross Site Script,本来缩写是CSS,但是为了和层叠样式表CSS有所区别,所以在安全领域叫做“XSS”。XSS攻击,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。在一开始,这种攻击的演示案例是跨域的,所以叫做“s跨站脚本”。但是发展到今天,由于javascript的强大功能以及网站前端应用的复杂化,是否跨域已经不再重要,但是由于历史原因,XSS这个名字却一直保留下来。

实施XSS攻击需要具备两个条件:

1、需要向web页面注入恶意html代码;

2、这些恶意代码能够被浏览器成功的执行。

二、XSS的分类

XSS根据效果的不同,可以分为以下几类:

1.反射型XSS:给用户发送页面或者链接,让用户点击来进行攻击,也叫做“非持久型XSS”。

     2.存储型XSS:把攻击存放在服务端,可能造成传播(比如博客系统,每个访问该页面的人都有可能被攻击),主动性更强。

比较常见的一种场景就是,黑客写下一篇包含有恶意JavaScript代码的博客文章,文章发表后,所有访问该博客文章的用户,都会在他们的浏览器中执行这段恶意的Javascript代码。黑客把恶意的脚本保存到服务器端,所以这种XSS攻击叫做“存储型XSS”。也叫做“持久型XSS”,因为从效果上来说,它存在的时间是比较长的。

     3.DOM型:本质上是反射型,但是是通过用户点击,修改原本dom元素的属性,构造攻击动作

反射型和dom型区别:

     反射型是构造好了攻击动作,然后就等你打开那个页面;dom型也是等你点击,但是不是页面,通过用户动作,把原来的动作注释掉,然后加上自己修改的动作。

三、XSS的作用

 什么是XSS Payload?XSS攻击成功后,攻击者能够对当前用户浏览的页面植入恶意脚本,通过恶意脚本,控制用户的浏览器。这些用以完成各种具体功能的恶意脚本,被称为“XSS Payload“,实际上就是恶意攻击的JavaScript脚本,所有JavaScript脚本能实现的功能,XSS Payload都能做到。

一个最常见的XSS Payload,就是通过读取浏览器的Cookie对象,从而发起“Cookie劫持”攻击。

Cookie中一般加密保存了当前用户的登录凭证。Cookie如果丢失,往往意味着用户的登录凭证丢失。换句话说,攻击者可以不通过密码,而直接登录进用户的账户。

总结XSS作用:

     1.可以获得cookie

     2.仿造get、post请求做一些动作

     3.获得用户的IP

     4.识别用户软件、浏览器

     5.通过钓鱼也可以骗到用户的用户名和密码这样

四、XSS的防御

1.对于截取cookie这样的操作可以在cookie上加上HttpOnly,这样js就不能访问cookie了。对于重要的cookie可以考虑加上该设置。

    一个Cookie的使用过程如下:

    step1:浏览器向服务器发起请求,这时候没有Cookie

    step2:服务器返回时发送Set-Cookie头,向客户端浏览器写入Cookie

    step3:在该Cookie到期前,浏览器访问该域下的所有页面,都将发送该Cookie。

2.输入检查。一般是查询特殊字符,比如『<』,『>』,『、』这样,可以选择对输入进行编码,或者是筛选掉这些字符。

3.没有绝对可以防止XSS攻击的方法,因为XSS比较灵活,任何语言或者框架设计不当都有可能存在漏洞。



有点好奇
4楼 · 2021-01-06 16:22

xxs攻击原理是网页对用户输入的字符串过滤不严,导致在提交输入信息zhuan的时候浏览器执行了黑客嵌入shu的xxs脚本,致使用户信息泄露。黑客可将伪装过的含义脚本语句的链接发送给受害者,当受害者点击链接的时候,由于网页没有过滤脚本语句,所以浏览器执行了脚本语句,而这个脚本语句的作用是将用户的cookie发送到黑客指定的地址,然后黑客就可以利用受害者的cookie窃取受害者的个人信息等等。

大冬瓜
5楼 · 2021-01-06 17:13

XSS攻击基本原理——代码注入

在web的世界里有各种各样的语言,于是乎对于语句的解析大家各不相同,有一些语句在一种语言里是合法的,但是在另外一种语言里是非法的。这种二义性使得黑客可以用代码注入的方式进行攻击——将恶意代码注入合法代码里隐藏起来,再诱发恶意代码,从而进行各种各样的非法活动。只要破坏跨层协议的数据/指令的构造,我们就能攻击。
历史悠久的SQL注入XSS注入都是这种攻击方式的典范。现如今,随着参数化查询的普及,我们已经离SQL注入很远了。但是,历史同样悠久的XSS却没有远离我们。
XSS的基本实现思路很简单——比如持久型XSS通过一些正常的站内交互途径,例如发布评论,提交含有JavaScript的内容文本。这时服务器端如果没有过滤或转义掉这些脚本,作为内容发布到了页面上,其他用户访问这个页面的时候就会运行这些脚本,从而被攻击。



小小李兆佳
6楼 · 2021-01-08 11:04

跨站脚本攻击,英文全称是Cross Site Script,本来缩写是CSS,但是为了和层叠样式表CSS有所区别,所以在安全领域叫做“XSS”。XSS攻击,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。在一开始,这种攻击的演示案例是跨域的,所以叫做“s跨站脚本”。但是发展到今天,由于javascript的强大功能以及网站前端应用的复杂化,是否跨域已经不再重要,但是由于历史原因,XSS这个名字却一直保留下来。

相关问题推荐

  • 回答 6

    这个还是因人而异吧,看你自己对哪方面感兴趣,兴趣是最好的老师,感兴趣了才愿意钻研学习下去,简单说一下这两个学习知识方面的不同吧:软件测试岗位虽然对于从业者的知识基础要求不高,但是软件测试岗位所涉及到的知识面还是比较广的,所以软件测试人员也需...

  • 回答 5

    SQL注入漏洞的危害:1、数据库中存储的用户隐私信息泄漏;2、通过操作数据库对某些网页进行篡改;3、修改数据库一些字段的值,嵌入网马链接,进行挂马攻击;4、数据库服务器被恶意操作,系统管理员帐户被窜改;5、数据库服务器提供的操作系统支持,让黑客得以...

  • 回答 16

    一、CISP(Certified Information Security Professional)证书中文叫注册信息安全专业人员,由中国信息安全产品测评认证中心实施的国家认证。可以说,这是目前国内对于个人来说认可度最高的信息安全人员资质,堪称最权威、最专业、最系统。根据实际岗位的不...

  • 回答 14

    渗透测试(也称为pentest)是测试移动应用程序漏洞的过程。此测试的主要目的是确保外部人员的重要数据.通过模拟黑客的思维和攻击手段,对计算机业务系统的弱点、技术缺陷和漏洞进行探查评估。经过客户授权后,在不影响业务系统正常运行的条件下,渗透人员在黑...

  • 回答 1

    网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。主要涉及到的有:1、物理措施:例如,保护网络关键设备(如交换机、大型计算机等),制定严格的网络...

  • 回答 33

      网络安全工程师学习内容:  1、计算机应用、计算机网络、通信、信息安全等相关专业本科学历,三年以上网络安全领域工作经验;  2、精通网络安全技术:包括端口、服务漏洞扫描、程序漏洞分析检测、权限管理、入侵和攻击分析追踪、网站渗透、病毒木马防...

  • 回答 26

      学历不是问题,技术才是硬道理!只要你的技术过硬的话,你完全可以进国家安全部门去工作的。比如公安局里的网监工作,大都是九零后的电脑方面的精英。未必都是本科生。还有从社会上特招进去的。所以说,现在是拿技术说话,不是靠学历吃饭的时代了。  网...

  • 回答 16

    网络安全的知识是比较简单的,比较好入门,好多知识理论,大家都是可以听懂的,这是完全没有问题的。网络安全最终的则是实战的应用,怎么把这些理论知识运用到事件中,这些才是重中之重。所以在选择培训机构的时候,也需要尽量去找这些实践操作多的培训机构。...

  • 回答 22

      能够胜任的岗位主要有:渗透测试工程师、大数据安全工程师、信息安全工程师、安全测试工程师、安全服务工程师、安全运维工程师、系统安全工程师、服务器安全工程师、云计算安全工程师、网络安全工程师、安全分析师、渗透讲师等;  按照web渗透、内网渗透...

  • 回答 23

    一些典型的网络安全问题,可以来梳理一下:IP安全:主要的攻击方式有被动攻击的网络窃听,主动攻击的IP欺骗(copy报文伪造、篡改)和路由攻击(中间人攻击);2. DNS安全:这个大家应该比较熟悉,修改DNS的映射表,误导用户的访问流量;3. DoS攻击:单一攻击...

  • 回答 19

    运维一般是设备或者环境的搭建和维护,网络安全可以看做是防火墙

  • 回答 12

    先说说运维工程师和网络工程师的区别。运维工程师是泛指,网络工程师为特指,所以不能这么对比。你应该这么理解,网络工程师是一个人(也可以是理解成一个岗位),而运维则是他的工作内容。从工作内容上来说,运维可细分为桌面运维、网络运维、服务器运维三大...

没有解决我的问题,去提问