SSRF和XML

SSRF介绍

SSRF(Server-Side Request Forgery),即服务器请求伪造,是一种由攻击者构造形成由服务器发起请求的一个安全漏洞。

SSRF漏洞挖掘

只要一个网页读取或者加载了其他地址的内容,就有可能存在SSRF漏洞。

出现场景:分享、转码、在线翻译、图片加载下载、图片文章收藏、未公开的API

url中常见关键字:share、wap、url、link、src、source、target

SSRF漏洞利用

内网探测:

C类:192.168.0.0-192.168.255.255

B类:172.16.0.0-172.31.255.255

A类:10.0.0.0-10.255.255.255

常见端口探测:

http 80、https 443、telnet 23、ftp 21、ssh 22、mysql 3306、smtp 25、weblogic 7001、tomcat 8080、jboss 8080、oralce 1521、sqlserver 1443

协议探测:

ftp、dict、gopher、file、ladp、ssh、smb、http、https

file协议敏感文件:

Windows下:

C:\boot.ini //查看系统版本

C:\Windows\System32\inetsrv\MetaBase.xml //IIS配置文件

C:\Windows\repair\sam //存储系统初次安装的密码

C:\Program Files\mysql\my.ini //Mysql配置

C:\Program Files\mysql\data\mysql\user.MYD //Mysql root

C:\Windows\php.ini //php配置信息

C:\Windows\my.ini //Mysql配置信息

C:\Windows\win.ini //Windows系统的一个基本系统配置文件

Linux下:

/root/.ssh/authorized_keys

/root/.ssh/id_rsa

/root/.ssh/id_ras.keystore

/root/.ssh/known_hosts //记录每个访问计算机用户的公钥

/etc/passwd

/etc/shadow

/etc/my.cnf //mysql配置文件

/etc/httpd/conf/httpd.conf //apache配置文件

/root/.bash_history //用户历史命令记录文件

/root/.mysql_history //mysql历史命令记录文件

/proc/mounts //记录系统挂载设备

/porc/config.gz //内核配置文件

/var/lib/mlocate/mlocate.db //全文件路径

/porc/self/cmdline //当前进程的cmdline参数

XML介绍

XML指可扩展标记语言,被设计为传输和存储数据,xml文档包括xml声明、DTD文档类型定义、文档元素、其焦点是数据的内容,其把数据从HMTL分离,是独立于软件和硬件的信息传输工具。

DTD定义

DTD全称Document Type Definition,它是文档类型定义,其中规定XML文档中的元素、属性、标记、文档中的实体及其相互关系。DTD为XML文档结构制定了一套规则。

DTD作用

1.通过DTD,每一个XML文件均可以携带一个自身相关的描述

2.验证数据

3.交换数据

XXE介绍

XXE(XML External Entity Injection)全称为XML外部实体注入,由于程序在解析输入的XML数据时,解析了攻击者伪造的外部实体而产生的。

内部实体声明:

外部实体声明:

XXE的危害

  1. 文件读取

    有回显

    无回显,用dnslog带外测试

    ​ 带外测试:

    ​ 测试是不是payload写错了

    ​ 测试是不是存在这个漏洞

    ​ 测试是不是有存在但无回显

    ​ 测试是否存在这个文件

    如果:关闭了回显但是带外测试成功。

    远程文件窃取:

    读本地服务器上的文件--->远程加载了恶意DTD文件--->攻击者的服务器开启接收内容并写出文件

  2. 内网端口扫描

  3. 命令执行

9.SSRF和XML的更多相关文章

  1. 小试XML实体注入攻击

    基础知识 XML(Extensible Markup Language)被设计用来传输和存储数据.关于它的语法,本文不准备写太多,只简单介绍一下. XML基本知识 1 2 3 4 5 <?xml ...

  2. XXE漏洞学习

    0x00 什么是XML 1.定义 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML文档结构包括XML声明.DTD文 ...

  3. XXE注入攻击与防御

    在研究XXE注入攻击之前先了解一下什么是XXE 定义 XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.XML文档结构包括 ...

  4. XXE总结

    0x00 目录 0x01 XML基础 定义:一种标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. XML文档结构包括XML声明.D ...

  5. 【技巧总结】Penetration Test Engineer[3]-Web-Security(SQL注入、XXS、代码注入、命令执行、变量覆盖、XSS)

    3.Web安全基础 3.1.HTTP协议 1)TCP/IP协议-HTTP 应用层:HTTP.FTP.TELNET.DNS.POP3 传输层:TCP.UDP 网络层:IP.ICMP.ARP 2)常用方法 ...

  6. XXE漏洞攻击与防御

    转自https://www.jianshu.com/p/7325b2ef8fc9 0x01 XML基础 在聊XXE之前,先说说相关的XML知识吧. 定义 XML用于标记电子文件使其具有结构性的标记语言 ...

  7. 初识XXE漏洞

    本文是参照本人觉得特别仔细又好懂的一位大佬的文章所做的学习笔记 大佬的链接:https://www.cnblogs.com/zhaijiahui/p/9147595.html#autoid-0-0-0 ...

  8. WebLogic SSRF

    本文主要记录一下Weblogic SSRF 利用的操作过程. 一.WebLogic SSRF漏洞简介 漏洞编号:CVE-2014-4210 漏洞影响: 版本10.0.2,10.3.6 Oracle W ...

  9. SSRF漏洞挖掘经验

    SSRF概述 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问 ...

  10. SSRF漏洞分析与利用

    转自:http://www.4o4notfound.org/index.php/archives/33/ 前言:总结了一些常见的姿势,以PHP为例,先上一张脑图,划√的是本文接下来实际操作的 0x01 ...

随机推荐

  1. STM32工程建立

    STM32工程建立 对于用keil5建立stm32工程有两种方法,一种在学习过程中比较方便的建立方式:我们称为工程方式一,另一个便是在实际工程中用的最多,也最普遍,在实际过程中用的最多的,我们称为工程 ...

  2. Win10系统删除文件需提供管理员权限-- 解决方案

    解决方案1:选中[文件]-[属性]-[安全]-[高级]-选中当前用户[编辑]权限 若还是不行,则试试方案2解决方案2:更改[所有者]--[高级]--[立即查找] 选中[everyone]--[确定] ...

  3. DAST精简代码

    先训练G:先不计算D的梯度: 判别器输入类型为(源域,0)或者(目标域,1),输出图片为真实图片(源域)的概率值for param in model_D.parameters(): # model_D ...

  4. Java Collection体系

    Collection 接口 宏观图 快速使用 import java.util.*; public class Demo { public static void main(String[] args ...

  5. stream 在 groupingby 之后,对结果数据再进行封装后返回

    使用 Collectors.mapping 来指定 分组结果要取哪些数据

  6. 上分之路 VP Codeforces Round #744 (Div. 3) ABDE

    VP情况 4 / 8 AC: A,B,D,E1 60 minutes WA: C 4 127   +00:02 +00:28 -7 +00:58 +00:39       手速还在线 D pair排个 ...

  7. 20220719 第七组 陈美娜 Java(this,封装,构造器概念)

    1.关于构造器 如果说创建对象仅仅是为了调用这个类的方法,建议使用无参构造器 如果说创建对象的时候需要使用到对象的某个属性,可以使用构造器赋值 2.this关键字 this代表的是当前类的对象,thi ...

  8. js 获取html加载的参数?file=123&time=2021

    <script> function GetArgsFromHref(sHref, sArgName) { var args = sHref.split("?"); va ...

  9. SDN实验1

    (一)基本要求 使用Mininet可视化工具,生成下图所示的拓扑,并保存拓扑文件名为学号.py. 使用Mininet的命令行生成如下拓扑: a) 3台交换机,每个交换机连接1台主机,3台交换机连接成一 ...

  10. heimaJava17

    java IO流 缓冲流 概念 缓存流也称为高效流.或者高级流.之前学习的字节流也可以称为原始流 作用:缓冲流自带缓冲区.可以提高原始字节流.字符流读写数据的性能 分类 字节缓冲流 字节缓冲输入流:B ...