跨站点脚本编制实例(AppScan扫描结果)

最近工作要求解决下web的项目的漏洞问题,扫描漏洞是用的AppScan工具,其中有很多是关于跨站点脚本编制问题的。下面就把这块东西分享出来。

原创文章,转载请注明

-----------------------------------------正题-------------------------

测试类型:
应用程序级别测试

威胁分类:
跨站点脚本编制

原因:
未对用户输入正确执行危险字符清理

安全性风险:
可能会窃取或操纵客户会话和cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务

受影响产品:
该问题可能会影响各种类型的产品。

引用:
CERT Advisory CA-2000-02
Microsoft How To: Prevent Cross-Site Scripting Security Issues (Q252985)
Microsoft How To: Prevent Cross-Site Scripting in ASP.NET
Microsoft How To: Protect From Injection Attacks in ASP.NET
Microsoft How To: Use Regular Expressions to Constrain Input in ASP.NET
Microsoft .NET Anti-Cross Site Scripting Library
跨站点脚本编制培训模块

技术描述:

AppScan 检测到应用程序未对用户可控制的输入正确进行无害化处理,就将其放置到充当Web 页面的输出中。这可被跨站点脚本编制攻击利用。
在以下情况下会发生跨站点脚本编制(XSS) 脆弱性:
[1] 不可信数据进入Web 应用程序,通常来自Web 请求。
[2] Web 应用程序动态生成了包含此不可信数据的Web 页面。
[3] 页面生成期间,应用程序不会禁止数据包含可由Web 浏览器执行的内容,例如JavaScript、HTML 标记、HTML 属性、鼠标事件、Flash 和
ActiveX。
[4] 受害者通过Web 浏览器访问生成的Web 页面,该页面包含已使用不可信数据注入的恶意脚本。
[5] 由于脚本来自Web 服务器发送的Web 页面,因此受害者的Web 浏览器在Web 服务器的域的上下文中执行恶意脚本。
[6] 这实际违反了Web 浏览器的同源策略的意图,该策略声明一个域中的脚本不应该能够访问其他域中的资源或运行其他域中的代码。
一旦注入恶意脚本后,攻击者就能够执行各种恶意活动。攻击者可能将私有信息(例如可能包含会话信息的cookie)从受害者的机器传输给攻击者。攻
击者可能以受害者的身份将恶意请求发送到Web 站点,如果受害者具有管理该站点的管理员特权,这可能对站点尤其危险。
网络钓鱼攻击可用于模仿可信站点,并诱导受害者输入密码,从而使攻击者能够危及受害者在该Web 站点上的帐户。最后,脚本可利用Web 浏览器本
身中的脆弱性,可能是接管受害者的机器(有时称为“路过式入侵”)。
主要有三种类型的XSS:
类型1:反射的XSS(也称为“非持久性”)
服务器直接从HTTP 请求中读取数据,并将其反射回HTTP 响应。在发生反射的XSS 利用情况时,攻击者会导致受害者向易受攻击的Web 应用程序提
供危险内容,然后该内容会反射回受害者并由Web 浏览器执行。传递恶意内容的最常用机制是将其作为参数包含在公共发布或通过电子邮件直接发送给
受害者的URL 中。以此方式构造的URL 构成了许多网络钓鱼方案的核心,攻击者借此骗取受害者的信任,使其访问指向易受攻击的站点的URL。在站
点将攻击者的内容反射回受害者之后,受害者的浏览器将执行该内容。
类型2:存储的XSS(也称为“持久性”)
应用程序在数据库、消息论坛、访问者日志或其他可信数据存储器中存储危险数据。在以后某个时间,危险数据会读回到应用程序并包含在动态内容
中。从攻击者的角度来看,注入恶意内容的最佳位置是向许多用户或特别感兴趣的用户显示的区域。感兴趣的用户通常在应用程序中具有较高的特权,
或者他们会与对攻击者有价值的敏感数据进行交互。如果其中某个用户执行恶意内容,那么攻击者就有可能能够以该用户的身份执行特权操作,或者获
取对属于该用户的敏感数据的访问权。例如,攻击者可能在日志消息中注入XSS,而管理员查看日志时可能不会正确处理该消息。
类型0:基于DOM 的XSS
在基于DOM 的XSS 中,客户机执行将XSS 注入页面的操作;在其他类型中,注入操作由服务器执行。基于DOM 的XSS 中通常涉及发送到客户机的
由服务器控制的可信脚本,例如,在用户提交表单之前对表单执行健全性检查的Javascript。如果服务器提供的脚本处理用户提供的数据,然后将数据
注入回Web 页面(例如通过动态HTML),那么基于DOM 的XSS 就有可能发生。以下示例显示了在响应中返回参数值的脚本。
参数值通过使用GET 请求发送到脚本,然后在HTML 中嵌入的响应中返回。

[REQUEST]
GET /index.aspx?name=JSmith HTTP/1.1
[RESPONSE]
HTTP/1.1 200 OK
Server: SomeServer
Date: Sun, 01 Jan 2002 00:31:19 GMT
Content-Type: text/html
Accept-Ranges: bytes
Content-Length: 27
<HTML>
Hello JSmith
</HTML>

攻击者可能会利用类似以下情况的攻击:

[ATTACK REQUEST]
GET /index.aspx?name=>"‘><script>alert(‘PWND‘)</script> HTTP/1.1
[ATTACK RESPONSE]
HTTP/1.1 200 OK
Server: SomeServer
Date: Sun, 01 Jan 2002 00:31:19 GMT
Content-Type: text/html
Accept-Ranges: bytes
Content-Length: 83
<HTML>
Hello >"‘><script>alert(‘PWND‘)</script>
</HTML>

在这种情况下,JavaScript 代码将由浏览器执行(>"‘> 部分在此处并不相关)。

时间: 2024-10-10 18:00:26

跨站点脚本编制实例(AppScan扫描结果)的相关文章

跨站点脚本编制-XSS 描述及解决方法

跨站点脚本编制可能是一个危险的安全性问题,在设计安全的基于 Web 的应用程序时应该考虑这一点.本文中,描述了这种问题的本质.它是如何起作用的,并概述了一些推荐的修正策略. 当今的大多数网站都对 Web 页面添加了动态内容,从而使用户能获得更愉快的体验.动态内容是由某些服务器进程生成的内容,它可以根据用户的设置和需要在提交时表现出不同的行为和产生不同的显示.动态网站存在着一个称为“跨站点脚本编制”(也称为“XSS”)的威胁,而这是静态网站所没有的. “一个网页可以包含由服务器生成的.并且由客户机

XSS跨站点脚本的介绍和代码防御

0x01 介绍 可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务在以下情况下会发生跨站点脚本编制 (XSS) 脆弱性: [1] 不可信数据进入 Web 应用程序,通常来自 Web 请求. [2] Web 应用程序动态生成了包含此不可信数据的 Web 页面. [3] 页面生成期间,应用程序不会禁止数据包含可由 Web 浏览器执行的内容,例如 JavaScript.HTML 标记.HTML 属性.鼠标事件.Flash 和 A

web安全测试---跨站点脚本测试

1.1      跨站脚本测试 1.1.1        GET方式跨站脚本测试 编号 SEC_Web_XSS_01 测试用例名称 GET方式跨站脚本测试 测试目的 由于跨站脚本会导致会话被劫持.敏感信息泄漏.账户被盗,严重时甚至造成数据修改.删除,从而导致业务中断,因此需检测跨站脚本是否存在 用例级别 1 测试条件 1.  Web业务运行正常 2.  已知待测目标URL,假设为http://www.exmaple.com/page.xxx 3.  待测目标存在参数输入,假设为name=valu

解决“Internet Explorer已对此页面进行了修改,已帮助阻止跨站点脚本。”的“问题”

最近一直对网络安全知识比较感兴趣,目前在看的书是网上推荐的<Web应用安全权威指南>.这本书提供下载一个虚拟机镜像,运行这个虚拟机可以在电脑浏览器上做书中的实验. 第66页涉及到一个XSS的实验,正常的效果是执行JavaScript,弹出一个对话框.我在照做的时候IE提示"Internet Explorer已对此页面进行了修改,已帮助阻止跨站点脚本."(如图1). 我先将地址加入可信站点,没有作用.这时想到以前给公司设置OA系统时,不但需要加可信站点,还需要更改"

RailsCase27 Cross Site Scripting 跨站点脚本攻击

跨站点脚本是开发过程中经常需要考虑的安全问题.此种情形发生在允许用户直接输入html.javascript脚本时.在下述的website中,我们并没有过滤输入的内容,导致一些安全漏洞. 如果在输入框中输入由<script>包围的内容,当页面被加载的时候,脚本将被执行,每次均将在前端展示.例如,如果输入<script>alert('hello')</script>并保存,每次浏览此页面时,都将看到alert的窗口. 嵌入页面的javascript脚本如下: termina

【安全编码实践】保护自己免受跨站点脚本攻击

声明:本文由Bypass整理并翻译,仅用于安全研究和学习之用. 文章来源:https://medium.com/bugbountywriteup/how-to-write-secure-code-b2757b59cd4b 如何编写安全代码?保护自己免受跨站点脚本攻击! 过去几个月我一直致力于安全代码实践,我一直在努力与社区讨论易于采用的方法.我们每天看到的不安全代码的数量确实令人震惊,我们都同意“预防胜于治疗”. 保持我们的代码和应用程??序安全的最佳方法是从一开始就正确编程.编写安全代码并不困

跨站点脚本攻击(XSS)

XSS分类: (1)反射型XSS:只是简单地把用户输入的数据反射给浏览器.往往需要诱使用户"点击"一个恶意链接.也叫"非持久型XSS" (2)存储型XSS:把用户输入的数据"存储"在服务器端.也叫"持久型XSS" (3)DOM Based XSS:从效果上来说也是反射型XSS,通过修改页面的DOM结点形成的XSS. 1.cookie劫持:httponly或者将cookie和客户端IP绑定可防止 2.XSSPayload: (1

Microsoft 防跨站点脚本库AntiXSS Library

AntiXSS 库目前处于版本 4.2.1,下载地址:http://www.microsoft.com/download/en/details.aspx?id=28589.它经历了一次非常棒的重新编写过程,并且就安全性而言,它提供了比 ASP.NET 附带的编码器更好的 HTML 编码器. 并不是说 Server.HtmlEncode 有什么问题,只是它侧重于兼容性而不是安全性. AntiXSS 使用不同的方法进行编码. 有关详细信息,请访问 msdn.microsoft.com/securit

跨站点脚本攻击

介绍 XSS是跨站脚本攻击(Cross Site Scripting)的缩写.XSS是因为有些恶意攻击者往Web页面中插入恶意Script代码,当用户浏览该页面时,嵌入的Script代码将会被执行,从而达到恶意攻击用户的特殊目的. 条件 攻击者需要向web页面注入恶意代码: 这些恶意代码能够被浏览器成功的执行. 类型 XSS反射型攻击,恶意代码并没有保存在目标网站,通过引诱用户点击一个链接到目标网站的恶意链接来实施攻击的,攻击是一次性的. XSS存储型攻击,恶意代码被保存到目标网站的服务器中,这