专栏首页BypassBypass D盾_防火墙(新版)SQL注入防御

Bypass D盾_防火墙(新版)SQL注入防御

00

前言

『D盾_防火墙』专为IIS设计的一个主动防御的保护软件,以内外保护的方式防止网站和服务器给入侵。新版的D盾_防火墙,支持系统:win2003/win2008/win2012/win2016,在IIS整体防护效果,还是非常给力的。本文通过一个SQL注入点,分享一个Bypass D盾_防火墙SQL注入防御的思路。

01

环境搭建

构造一个ASPX+MSSQL注入点:

string id = Request.Params["id"];

string sql = string.Format("select * from admin where id={0}", id);

『D盾_防火墙』 版本: v2.0.6.70

02

特殊的MSSQL特性

一、MSSQL特性

在MSSQL中,参数和union之间的位置,常见的可填充方式有如下几种:

(1)空白字符 Mssql可以利用的空白字符有:

01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

(2)注释符号

Mssql也可以使用注释符号/**/

(3)浮点数

select * from admin where id=1.1union select 1,'2',db_name() from admin

(4)1E0的形式:

select * from admin where id=1e0union select 1,'2',db_name() from admin

二、Bypass Fuzz

使用以上几种常规的形式进行测试,都没有效果,接着针对构造的SQL注入点,进行Fuzz参数和union之间的位置

http://192.168.8.161/sql.aspx?id=1【Fuzz位置】union select null,null,SYSTEM_USER

Fuzz结果:通过1.e这种特殊的数值形式,可成功绕过union select防御。

到这里,可union select,形成了部分Bypass,接下来考虑,如何去绕过select from的防御规则。

03

ASPX特性的分割注入

一、ASPX HPP特性

假设GET/POST/COOKIE同时提交的参数id,服务端接收参数id的顺序是什么样呢?

ASPX+IIS:同时提交参数id,会接收所有参数,通过逗号分隔,如下图:

二、Bypass 测试

利用ASPX+IIS同时接收参数的方式比较特别,可以用这个特性来搞事。 利用这个特性来拆分select from,从而绕过D盾的SQL注入防御规则。

04

总结

部分Bypass 1.e这中特殊的数值形式适合于MSSQL的场景。

完全Bypass姿势的局限:

使用Request.Params["id"]来获取参数, 三种方式可以进行参数传递:(1)GET (2)POST (3)COOKIE 获取到参数拼接起来。

利用场景略局限,仅仅作为Bypass分享一种思路而已。

另外,如果把UNION SELECT FROM 三个关键字分别放在GET/POST/COOKIE的位置,通过ASPX的特性连起来,我相信这是很多waf都防御不了的。

Bypass

About Me

一个网络安全爱好者,对技术有着偏执狂一样的追求。致力于分享原创高质量干货,包括但不限于:渗透测试、WAF绕过、代码审计、安全运维。

本文分享自微信公众号 - Bypass(Bypass--),作者:Bypass

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Bypass 护卫神SQL注入防御(多姿势)

       护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能。

    Bypass
  • SQL注入速查笔记

    load_file和into outfile用户必须有FILE权限,并且还需要知道网站的绝对路径

    Bypass
  • 那些可以绕过WAF的各种特性

    在攻防实战中,往往需要掌握一些特性,比如服务器、数据库、应用层、WAF层等,以便我们更灵活地去构造Payload,从而可以和各种WAF进行对抗,甚至绕过安全防御...

    Bypass
  • MYSQL多表查询与事务

    select * from emp,dept where emp.`dept_id` = dept.`id`;#设置过滤条件(隐式内连接)

    嘘、小点声
  • 什么是MySQL数据库?看这一篇干货文章就够了!

    为啥学习MySQL呢?因为MySQL是最流行的关系型数据库管理系统之一,在web应用方面,MySQL是最好的软件。MySQL所使用的sql语言是用于访问数据库的...

    达达前端
  • oracle--groupby分组学习

    eadela
  • ES6 的内置对象扩展

    方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组

    星辰_大海
  • 「小程序JAVA实战」小程序的上传(终结)(72)

    PS:没有上传过的老铁可能很迷茫,其实这个流程并不复杂,先小程序上传,然后审核,重点是类目和代码的官方审核,审核通过后,需要手动完成上线流程。

    IT故事会
  • 使用sql*plus编辑sql文本(r4笔记第53天)

    工作中可能会经常实用工具来编辑sql 文本,实用sql*plus来编辑的机会比较少,但是这些也是硬功夫,一旦有需要手工编辑,其实发现也是很容易的。 关于编辑使用...

    jeanron100
  • 学界 | 抱歉我们今天想介绍的这篇论文,刚刚中了CVPR 2018最佳论文

    目标识别、深度估计、边缘检测、姿态估计等都是研究界认为有用的和已解决的常见视觉任务的例子。其中一些任务之间有着明显的相关性:我们知道曲面法线和深度是相关的(其中...

    机器之心

扫码关注云+社区

领取腾讯云代金券