“我尝试创建一个可以使用HTML标签的公告板应用!”
只有一行帖子将“接管”初学者工程师的作品,该怎么办
跨站点脚本(XSS) 安全的基础知识的示例
引入演示如何实际攻击脆弱的站点
🎬如果您想观看视频,请单击此处
▶在YouTube上观看演示
💻如果您想真正尝试一下,请单击此处
🔗github存储库(XSS演示代码)
*此内容是出于
教育目的和安全意识它不打算攻击实际服务或第三方。
什么是XSS(跨站点脚本)?
XSS(跨站点脚本)是一种攻击,其中恶意
脚本(例如JavaScript)被注入网页并执行
例如,如果以下代码在留言板或评论部分中发布,则
<img src="invalid.jpg" onerror="alert('XSS')">
另一个用户看到该页面可能会被盗。
XS可能造成的损害
- 盗窃用户饼干和会话信息
- 自私的页面重定向(网络钓鱼)
- Web应用程序UI篡改和插入假单
- 广告欺诈性显示并导致欺诈性链接
为什么发生XS?
当开发人员“直接在屏幕上显示用户输入”时,就会发生XSS
- 用户发送了什么或者
我只是将其Innerhtml
- “您可以自由使用HTML”,允许输入标签。
- 没有过滤或消毒处理以防止JavaScript执行
通过此设计,攻击者可以将非法源代码注入HTML
危险代码示例
PostContainer.innerhtml +=`<p> $ {userInput}</p> `;
乍一看,它看起来像是一个普通的显示过程,但是用户input
包含以下代码,会发生什么?
<img src="invalid.jpg" onerror="alert('XSS')">
这
该标签指定不存在并导致加载错误的图像,
当时在Oneror
ALERT('XSS')
。
警报
此示例可能看起来无害
<img src="x" onerror="location='https://hack-lab-256.com/'">
这可能会造成
现实的损害,例如打开留言板的用户自动重定向到恶意站点当然,如果您获得cookie,您可能可以未经授权登录。
黑客如何找到攻击?
实际攻击者(黑客)观察并研究已发布的Web应用程序以识别漏洞。
- 检查URL和形式
⇒是否有输入字段?我可以输入HTML标签吗? 的
结果
⇒ 尝试一个类似的测试字符串
- 找到开发人员的错误
⇒InnerHTML
的部分是否有没有过滤或逃脱的区域? - 写准备代码
⇒
例如,准备难以发现或利用差距的绳索。
典型的XSS攻击字符串如下:
当然,它们以多种其他方式攻击。
种类 | 攻击代码 | 功能和笔记 |
---|---|---|
タグ | <script>alert('XSS')</script> | 经典中的经典。最近,它经常在Innerhtml |
<img onerror> | <img src="x" onerror="alert('XSS')"> | 高成功率。当图像加载失败时警报 火灾 |
<svg onload> | <svg onload="alert('XSS')"></svg> | SVG是 よりブロックされにくい。シンプルで強力 |
标签 | <iframe src="javascript:alert('XSS')"></iframe> | 它不会在某些浏览器中运行,但在较旧的环境中有效。 |
实际上,我尝试用XSS将其入侵!
现在,我实际上尝试使用XSS来黑客入侵Web应用程序。
该代码已发布,因此我认为,如果您可以在自己的PC上运行它,那将是很好的。
*通过Docker分发。
💻如果您想真正尝试一下,请单击此处
🔗github存储库(XSS演示代码)
*这是安全教育的演示。该视频不建议未经授权的访问。
一个新的工程师挑战:我们创建了一个公告板,可让您使用HTML标签!
我已经编程六个月了,我仍然是初学者工程师。
我想:“我想创建一个可以用自己的手移动的Web应用程序!”并决定创建一个留言板应用。一个超简单的设计,将像发布时一样显示。
更重要的是,我们还使使用HTML标签自定义外观成为可能。当它被实施并
认真思考时,我很高兴:“这不会有点嗡嗡作响吗?”
考虑到这种故事,我们创建了一个可以使用HTML标签的“公告板应用程序”。

主要功能:
- 在帖子表格中输入您的姓名和消息并将其发送,并将显示在下面
- 消息显示使用HTML标签,因此您可以更改文本颜色和大小,并显示图像。
- 帖子内容保存在服务器上,即使在重新加载页面后仍继续显示
您可以像这样更改文本的颜色!

实际行为
大胆
或红色文本
等标签- 乍一看,自定义很有趣
但是,这种高度的自由导致了“单一陷阱” ...
出现黑客:侦察留言板
他找到了一个留言板。
看起来很简单,任何人都可以自由发布。当您查看帖子表格时,您只需输入您的姓名和消息即可。
此外,已发布的内容似乎显示为HTML。“唔...
标签会通过吗?
“这是 も通っちゃったりして?」他轻轻窥视了源,并在浏览器中打开了DevTools。
显然InnerHTML
被使用并且未过滤。─“我明白了。这是...可以使用。”
考虑到这种故事,我们将尝试搜索留言板应用程序。
检查传递的标签
这是一个可以使用HTML标签自定义的公告板,因此我认为您可以使用HTML标签,但是要查看是否有任何限制,我将尝试运行可以使用XSS的HTML标签。
<script>alert('xss')</script> ←脚本标签会通过吗?<img src="x" onerror="alert('xss')"> ←该事件属性是否有效?<svg onload="alert('xss')"></svg> ←执行SVG标签的属性<iframe src="https://hack-lab-256.com/"></iframe>←是否允许嵌入iframe? <math><mtext></mtext><script>alert(1)</script> </math>←检查脚本标签旁路
首先,我发布了一个脚本标签。
<script>alert('xss')</script>

显示了这一点,但没有发出警报。
这是由于浏览器的规范,即脚本标签未在InnerHTML中执行
接下来,我尝试发布一个iframe标签。
<iframe src="https://hack-lab-256.com/"></iframe>

此页面已成功嵌入。
它不是XSS,但它可能是网络钓鱼和插锁的垫脚石
<iframe src="javascript:alert('XSS')"></iframe>

令人惊讶的是,执行了警报。
它通常在普通浏览器中被阻止,但是
在此消息板上SRC =“ JavaScript:...”
仍在工作。

我也会发布IMG标签。
<img src="x" onerror="alert('img-xss')">


这是常用的XSS技术之一,是在图像加载误差时执行JavaScript。
当我发布时,我查看页面时发出了警报。
也检查源代码
我们能够在上一个实验中确认XSS实际上是可能的,但是可以肯定的是,检查源代码
如果它是在客户端JavaScript中实现的,则还可以直接从DevTools查看代码。
查看代码
,它正在使用InnerHTML
帖子内容的过程

您可以看到发布的消息还显示在屏幕上,带有标签而不会进行消毒

在这一点上,很明显
,该留言板是“脚本可观的环境”。换句话说,似乎可以肯定地说您已经准备好攻击了
运行:尝试使用XSS重定向到您的网站
到目前为止,在侦察中,我们发现消息板按原样显示带有HTML标签的帖子,并且
JavaScript事件属性(例如OnError)没有被阻止。
因此,我将在下面发布代码。
<img src="x" onerror="location='https://hack-lab-256.com/'">
该机制涉及尝试加载不存在并导致错误的图像,并且
在发生错误时执行OnError

提交帖子后,我打开了留言板页面,
它自动重定向到https://hack-lab-256.com/
建立了攻击,其中用户尚未操作任何操作,而只是简单地显示留言板,而攻击者被迫过渡到攻击者指定的站点

从现在开始,此站点将无法使用。这种现象导致了向该地点的强迫过渡。
这样,只有一行代码就会损害留言板的整体信任
以前的情况:XSS也发生在YouTube上
2010年7月(目前已修订),
添加了评论部分 タグを含めることで JavaScript が実行されてしまうという、深刻なXSS脆弱性が存在していました。
脆弱性细节
在YouTube上,它最初是在评论部分中。 などの危険なタグが入力された場合、
自動で無効化(エスケープ)する仕組みになっていました。
但是,当时的实施是第一个 タグだけが正しくエスケープされ、2つ目以降はそのまま通ってしまうという重大な処理漏れがあったのです。
✅倍数 タグを投稿すれば、実行可能なコードが差し込めた
实际发生了什么
漏洞公开后不久,恶意用户将脚本嵌入了许多视频页面中。
- 显示假弹出消息
- 显示模仿假新闻文章的对话
- 重定向到恶意的外部站点
据说某些代码偷走了cookie信息并显示了假登录页面。
这个演示有什么共同点
我去了这段时间的XSS演示,YouTube案例研究的结构非常相似。
- “邮政字段中的嵌入代码”
- “ JavaScript在查看时运行”
- “重定向和其他损害发生。”
尽管此演示有意省略了逃生过程,但实际的攻击者的目标是解决此类“较小的过滤错误 。
过去已经发现了许多XSS漏洞,甚至主要的Web服务也不例外。
如果您有兴趣,请查看其他示例。
最后
我们展示了如何只能在可以使用HTML标签的简单公告板上发布一行代码
来接管网页
XSS经常被认为是“发生的,因为它是由初学者创建的应用程序”,但这
一个非常现实的威胁,过去YouTube和Google等主要服务中都看到了。
如今,我们可以使用AI自动生成应用。
意识到它是否安全起作用,而不仅仅是“移动它,没关系变得越来越重要
即使您创建的服务也可以轻松地仅一行接管
📺 YouTube在易于理解的视频中介绍了此内容。
我们将继续提供安全解释和演示,因此,
如果您不想错过最新信息,请订阅我们的频道!
🎬如果您想观看视频,请单击此处
▶在YouTube上观看演示
💻如果您想真正尝试一下,请单击此处
🔗github存储库(XSS演示代码)