什么是跨站点脚本(What is cross site scripting)

2019-08-18 22:19发布

在这个网站 ( 存档快照 )下的“XSS理论”,它说:

黑客感染了合法的网页与他恶意的客户端脚本

我在读这第一个问题是:如果将应用程序部署是安全的(如与例如银行的情况下),怎么能黑客永远可以访问该网页的源代码在服务器上? 或者,他可以注入恶意脚本,而无需访问源代码?

Answer 1:

随着跨站点脚本,有可能感染,而不会导致Web服务器本身被感染产生的HTML 文档 。 XSS攻击使用服务器作为载体来呈现恶意内容回客户,无论是立即从请求(反射攻击),或延迟虽然存储和检索(存储的攻击)。

XSS攻击利用了服务器的生产页面,允许请求数据在响应原始形式显示出来的弱点。 该页面只反射回什么在请求提交......但请求的内容可能会认为,摆脱普通的文本内容字符并引入HTML或开发商没有打算JavaScript内容。

这里有一个简单的例子。 比方说,你有某种做成能产生一个HTML页面(如PHP,ASP,CGI,或者Velocity或者Freemarker的脚本)的模板语言。 它采用下列页面和替代“<?= $名字?>”与“名”的查询参数的转义值。

<html>
<head><title>Example</title></head>
<body>Hi, <?=$name?></body>
</html>

有人呼吁用下面的网址页面:

http://example.com/unsafepage?name=Rumplestiltskin

应该会看到这条消息:

Hi, Rumplestiltskin

呼唤更多的东西恶意同一页面可以用来显着改变页面或用户体验。

http://example.com/unsafepage?name=Rumplestiltskin<script>alert('Boo!')</script>

而不是只是说,“嗨,Rumplestiltskin”,这个URL也会导致页面弹出警告消息,说:“嘘!”。 也就是说,当然,一个简单的例子。 一个可以提供一个复杂的脚本,捕获击键或要求提供用户名和密码进行验证,或清除屏幕,并完全用震荡内容重写页面。 它仍然看起来像它来自example.com来,因为页面本身做了,但是被在请求地方提供的内容,只是反射回来作为页面的一部分。

因此,如果该页面只是吐回来,要求它的人提供的内容,而你请求页面,那么如何做一个黑客感染您的要求吗? 通常情况下,这是通过提供一个Web页面上的链接,无论是完成或通过电子邮件发送给您,或者在URL缩短的请求,所以很难看到乱七八糟的URL。

<a href="http://example.com?name=<script>alert('Malicious content')</script>">
Click Me!
</a>

有一个可利用XSS漏洞的服务器itself--它的编程仍然unaltered--但它可以制成提供恶意内容,客户不运行任何恶意代码。



Answer 2:

那攻击者不需要访问源代码。

一个简单的例子是,被写入该页面的URL参数。 你可以改变的URL参数包含脚本标签。

另一个例子是评论系统。 如果网站不正确过滤输入/输出,攻击者可以添加脚本添加注释,然后将被显示,并查看谁在评论任何人的计算机上执行。

这些都是简单的例子。 还有很多更给它和很多不同类型的XSS攻击的。



Answer 3:

这是更好地觉得剧本作为被注入编码错误的网页和客户端的Web浏览器之间的谈话中。 它实际上没有注入到网页的代码; 而是流入数据将在客户端的Web浏览器的流。

有两种类型的XSS攻击:

  1. 非持久性:这将是嵌入的脚本作为参数传递到目标页面的一个特制的URL。 讨厌的URL可以通过电子邮件,试图欺骗收件人去点击它的意图被发送出去。 目标页面错误处理的参数,并无意中发送代码到在最初通过URL字符串传递客户端的机器。
  2. 持久性:这种攻击对表单数据保存到数据库中不正确地处理输入数据的网站使用的页面。 恶意用户可以嵌入一个讨厌的脚本是在客户端的网页浏览器运行在不知不觉中一个典型的数据字段(如姓氏)的一部分。 通常情况下,讨厌的脚本将被存储到数据库中并重新运行在每个客户端对受感染的网页访问。

见一个简单的例子如下: 什么是跨站点脚本(XSS)?



Answer 4:

XSS是的,看起来在敏感数据的应用程序获得进入使用漏洞获取用户的浏览器中最危险的攻击之一。

欲了解更多信息: 什么是跨站点脚本(XSS)以及如何预防呢?



文章来源: What is cross site scripting
标签: security xss