介绍

我对xss有一个模糊的了解,但是我不太明白它是如何被用来攻击的,所以我尝试了一种叫做会话劫持的东西。

你想做的事

将自己置于攻击者的位置,将攻击URL发送给受害者,获取受害者的会话ID。

创建易受攻击的站点

首先,创建一个受害者可以登录的站点。
我是用javascript+express做的,但是因为是我用的不多的框架,所以放入认证机制花了很长时间。
但是,身份验证的方法是“您可以使用任何用户名或密码登录”。
(因为创建一个登录状态就足够了)

↓源代码
https://github.com/ahyaemon/express-training

↓登录页面
xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

↓ 登录后首页
xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

您还可以确认 cookie 包含看起来像会话 ID 的内容。
xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

我也试过 CSRF,所以有一个“将柠檬添加到购物车”按钮,但这次没关系。
如果在“Transit to page with xss evidence”的输入中输入字符并点击“search”,页面将以输入的字符串作为查询参数进行跳转。
在过渡后的页面,用js获取查询参数,制造脆弱性它以innerHTML 显示在屏幕上。

使用りんご 搜索时

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

变成这样

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

使用<h1>Hello!</h1> 搜索时

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

出现一个大大的Hello。

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

使用<script>alert(0)</script> 搜索时

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

什么都没发生。

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

即使嵌入了脚本标签也不会执行吗?

使用<svg onload="alert(0)"> 搜索时

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

警告。

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

攻击

从这里开始,我处于攻击者的位置。
我发现<svg onload="alert(0)"> 执行alert(0),所以我搞砸了这个脚本部分并抓住了会话ID。
作为一种方法,我可以使用document.cookie 获取cookie 的内容,因此我考虑使用fetch 将其发送到攻击者创建的服务器或通过电子邮件发送。
首先,我想检查是否可以使用 document.cookie 正确获取会话 ID,因此我创建了一个执行 <svg onload="console.log(document.cookie)"> 的 URL,并让受害者单击它。
(既然你既是攻击者又是受害者,请打开受害者端的开发者工具并检查console.log输出)

这是由 URL 编码 <svg onload="console.log(document.cookie)"> 生成的 URL。

http://localhost:3333/search?search=%3Csvg+onload%3D%22console.log%28document.cookie%29%22%3E

假设攻击者以某种方式将此 URL 发送给受害者,则以受害者身份打开此 URL。

结果···

xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

只显示空字符。

这不好

当我检查为什么不显示会话 ID 时,似乎无法从 javascript 访问它,因为 HttpOnly 附加到 cookie。

我很确定 HttpOnly 已检查。
xss 脆弱性のあるサイトを作ってセッションハイジャックを試す

在最后

除非您自己尝试,否则您无法理解这一点。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308628930.html

相关文章:

  • 2022-02-08
  • 2021-06-21
  • 2022-01-22
  • 2021-08-29
  • 2022-01-30
  • 2021-05-17
  • 2022-01-02
猜你喜欢
  • 2022-12-23
  • 2021-12-21
  • 2021-11-14
  • 2022-01-22
  • 2021-08-21
  • 2021-07-09
相关资源
相似解决方案