《Web安全基础》05. XSS · CSRF · SSRF · RCE

2023-10-29


本系列侧重方法论,各工具只是实现目标的载体。
命令与工具只做简单介绍,其使用另见《安全工具录》。

靶场参考:XSS-Labs,pikachu,DVWS。

1:XSS

在这里插入图片描述

1.1:简介

XSS(Cross-Site Scripting),跨站脚本攻击。它允许攻击者向网页注入恶意脚本代码,然后在用户的浏览器上执行这些恶意脚本。

危害

  • 钓鱼欺骗
  • 网站挂马
  • 身份盗用
  • 盗取网站用户信息
  • 垃圾信息发送
  • 劫持用户 Web 行为
  • XSS 蠕虫

分类

  • 反射型(非持久型)
    一般把可以执行的 js 代码放到 URL 里,可通过邮件诱导用户点击。
    攻击过程:发包 h=123 -> x.php -> 返回浏览器执行。
  • 存储型(持久型)
    恶意代码被后台存储之后,用户打开相应页面的时候就会执行脚本。
    攻击过程:发包 h=123 -> x.php -> 写到数据库 -> x.php -> 返回浏览器执行。
  • DOM 型
    攻击过程:发包 h=123 -> 本地浏览器静态前端代码 -> x.php -> 返回浏览器执行。

Webshell 后门中的后门

通过在 webshell 程序中植入后门,形成 “ 黑吃黑 ”,用有后门的木马入侵的网站也可以被木马制造者利用。webshell 的后门就可以利用 XSS 实现。

1.2:防护与绕过

1.2.1:HttpOnly

HttpOnly:如果 HTTP 响应头中包含 HttpOnly 标志,只要浏览器支持,客户端脚本就无法访问 cookie。因此,即使存在 XSS 缺陷,且用户意外访问利用此漏洞的链接,浏览器也不会向第三方透露 cookie。

如果浏览器不支持 HttpOnly,浏览器会忽略 HttpOnly 标志,从而创建一个传统的,脚本可访问的 cookie。

HttpOnly 属性只能防止 cookie 被盗取,不能防止 xss 漏洞。

绕过 httponly

  • 若浏览器保存帐号密码:从浏览器读取帐号密码。
  • 若浏览器未保存帐号密码:需要使用 xss 跳转登录地址,再利用表单劫持。

1.2.2:WAF 绕过

常规 WAF 绕过思路

  • 标签语法替换
  • 特殊符号干扰
  • 提交方式更改
  • 垃圾数据溢出
  • 加密解密算法
  • 结合其他漏洞绕过

1.3:相关资源

XSS 平台
https://xss.yt

webshell 收集
https://github.com/tennc/webshell

工具 XSStrike
https://github.com/s0md3v/XSStrike

工具 Xwaf
https://github.com/3xp10it/xwaf

关于 XSS 漏洞修复
https://www.cnblogs.com/baixiansheng/p/9001522.html

绕过 XSS 检测机制
https://bbs.kanxue.com/thread-250852.htm

Fuzz 字典
https://github.com/TheKingOfDuck/fuzzDicts

2:CSRF

CSRF,或 XSRF(Cross-Site Request Forgery),跨站请求伪造。利用用户已经通过身份验证的会话来执行未经用户许可的操作,通过欺骗用户在不知情的情况下执行恶意请求。

也被称为 “One Click Attack” 或 “Session Riding”。

XSS:利用用户对指定网站的信任。
CSRF:利用网站对用户网页浏览器的信任。

在这里插入图片描述

漏洞攻击两个条件

  1. 用户登录受信任网站 A,并在本地生成 Cookie。
  2. 在不注销 A 的情况下,访问危险网站 B。

如果遇到 POST 型,则需要构造一个表单提交按钮欺骗用户点击。

防御方案

  • 当用户发送重要的请求时需要输入原始密码
  • 设置随机 Token
  • 检验 referer 来源
  • 设置验证码

3:SSRF

在这里插入图片描述

SSRF(Server-Side Request Forgery),服务器端请求伪造。攻击者通过受害者服务器发起网络请求,从而操纵和滥用服务器的资源,甚至访问服务器相关的内网。

SSRF 攻击的目标一般是从外网无法访问的内部系统。

在这里插入图片描述

SSRF 形成的原因大都是服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。

SSRF 利用手段

  • 可以对外网、内网、本地进行端口扫描
  • 攻击运行在内网或本地的有漏洞程序(比如溢出)
  • 可以对内网 Web 应用进行指纹识别(通过请求默认的文件得到特定的指纹)
  • 使用 file:/// 协议或其他协议读取本地文件

SSRF漏洞(原理&绕过姿势)
https://www.t00ls.com/articles-41070.html

4:RCE

在这里插入图片描述

RCE(Remote Command/Code Execution),远程命令/代码执行。指攻击者能够成功地在远程目标计算机上执行自己的恶意代码或命令。

出现这种漏洞,一般是因为应用从设计上需要给用户提供远程命令操作的接口。

危害

  • 可能导致系统被完全控制
  • 窃取敏感数据
  • 修改文件
  • 操纵系统配置

PHP远程代码执行漏洞复现(CVE-2019-11043)
http://blog.leanote.com/post/snowming/9da184ef24bd


明月直入,无心可猜。

——《独漉篇》(唐)李白

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

《Web安全基础》05. XSS · CSRF · SSRF · RCE 的相关文章

随机推荐

  • OC门和OD门概念

    OC门和OD门概念 OC门和OD门 OC 集电极开路 Open Collector OD 漏极输出 Open Drain OC门和OD门是相对于两个器件而言的 OC门是对三极管而言 OD门是对场效应管而言 OC门电路如下所示 Input信号
  • 【计算机毕业设计】74.家教平台系统源码

    一 系统截图 需要演示视频可以私聊 摘 要 21世纪的今天 随着社会的不断发展与进步 人们对于信息科学化的认识 已由低层次向高层次发展 由原来的感性认识向理性认识提高 管理工作的重要性已逐渐被人们所认识 科学化的管理 使信息存储达到准确 快
  • java storm是干什么的_实时计算入门篇-了解storm

    离线计算 最近在了解离线系统 根据自己的了解 以及参考网上的相关资料 总结了相关知识 供刚入门的同学们了解 离线计算 就是批量获取数据 批量传输数据 周期性批量计算数据 数据展示 相信大家在了解实时计算的时候肯定对离线计算有一定的了解了 比
  • 题目 2659:蓝桥杯2022年第十三届省赛真题-统计子矩阵

    题目描述 给定一个 N M 的矩阵 A 请你统计有多少个子矩阵 最小 1 1 最大 N M 满足子矩阵中所有数的和不超过给定的整数 K 输入格式 第一行包含三个整数 N M 和 K 之后 N 行每行包含 M 个整数 代表矩阵 A 输出格式
  • 【CNN时序预测】基于混合卷积神经网络和循环神经网络 CNN - RNN 实现时间序列预测附Matlab代码

    作者简介 热爱科研的Matlab仿真开发者 修心和技术同步精进 matlab项目合作可私信 个人主页 Matlab科研工作室 个人信条 格物致知 更多Matlab仿真内容点击 智能优化算法 神经网络预测 雷达通信 无线传感器 电力系统 信号
  • 解决电脑无法访问某些网站的问题

    解决电脑无法访问某些网站的问题 参考文章 1 解决电脑无法访问某些网站的问题 2 https www cnblogs com chy18883701161 p 10863879 html 备忘一下
  • RUN apt-get 慢

    RUN apt get 慢 在docker 的RUN apt get XXX上一行加上 RUN echo gt etc apt sources list RUN echo deb http mirrors ustc edu cn debia
  • js前端实现简单模糊匹配

    实现功能 如图所示 Input框中输入要查询字段包含的字符 即可查出想要的结果 图例 Input中输入QA333 即可查粗出相关结果 代码展示 var queryCondition var data projectdata map obj
  • ABIs [armeabi] are not supported for platform 的解决

    解决方法 在app的build gradle的ndk标签下 将armeabi 删除掉 修改前 ndk abiFilters armeabi armeabi v7a 修改后 ndk abiFilters armeabi v7a 附详细出错lo
  • matlab textscan读结构化.txt文件

    要用 matlab 读之前处理的 COCO 的 ID map 1 将 sample ID 映射去 image name 用来读图片 ID map 文件每一行的形如 0 9 000000000009 jpg 空格间开 第一列是 sample
  • (安装pclpy)pclpy+windows+anaconda

    pclpy 0 12 0版本 支持windows的python3 6和3 7版本 但pclpy 0 12 0移除了可视化模块 即看不到点云效果了 安装方法 进入对应python版本的虚拟环境 然后输入 pip install pclpy 0
  • kylin在hadoop 中的架构图_kylin跨集群配置实现读写分离

    社区提供的读写分离架构图如下 通过架构图可以看到Kylin会访问两个集群的HDFS 建议两个集群的NameService务必不能相同 尤其是集群启用NameNode HA时 相同的NameService会导致组件在跨集群访问HDFS时因无法
  • nginx配置ssl证书https解决公网ip可以访问但是域名不行的问题

    进入nginx文件夹 将下载得到的crt和key文件放到这个目录下 以下来自腾讯云官方 https cloud tencent com document product 400 35244 server SSL 访问端口号为 443 lis
  • 警告:[SetPropertiesRule]Setting property 'source' to xxx did not find a matching property.的消除

    启动JSP页面时报错 全文如下 九月 25 2016 7 47 39 下午 org apache tomcat util digester SetPropertiesRule begin 警告 SetPropertiesRule Serve
  • Python(练习七)

    一 max 0 count 0 while True num int input Enter a number 0 for end of input if num 0 break if num gt max max num count 1
  • mongodb如何使用授权登录

    前言 mongodb默认是不需要授权登录的 这样在实际生产环境中是非常危险的一件事情 接下来就来讲一下如何开启安全授权访问 1 第一次登录不启动授权 默认就是不启动 我们先来创建admin和root账号 他们是用来开启授权后操作用户 创建数
  • PWNHUB 一场新鲜赛事速达【六月内部赛】 web - login game + Misc - 伏羲八卦

    PWNHUB 一场新鲜赛事速达 六月内部赛 web login game Misc 伏羲八卦 web login game Misc 伏羲八卦 本文来自csdn的 shu天 平时会记录ctf 取证和渗透相关的文章 欢迎大家来我的主页 shu
  • thinkpad笔记本如何进bios设置u盘启动步骤

    thinkpad笔记本从u盘启动有两种方法 一种是使用u盘启动快捷键直接进入u盘装系统 另一种则需要进bios设置u盘为第一启动项 但首先要下载个u盘启动盘制作工具制作成启动u盘在进行 下面详细为大家介绍如何操作 方法一 使用u盘启动快捷键
  • 脚本一:编写一个脚本要求检测文件类型(简化版)

    要求 1 命名为check file sh 2 检测判断它是否存在 3 判断它是否为普通文件 4 判断其是否为目录 5 判断其是否为软链接 6 如没有文件名则报错 编写脚本如下 验证文件如下 可见如果文件不存在 直接报错 如果符合条件直接给
  • 《Web安全基础》05. XSS · CSRF · SSRF · RCE

    web 1 XSS 1 1 简介 1 2 防护与绕过 1 2 1 HttpOnly 1 2 2 WAF 绕过 1 3 相关资源 2 CSRF 3 SSRF 4 RCE 本系列侧重方法论 各工具只是实现目标的载体 命令与工具只做简单介绍 其使