实战|bypass safedog最新版SQL注入探索

admin 2024年9月27日18:29:03评论55 views字数 2604阅读8分40秒阅读模式
攻防

测试环境

实战|bypass safedog最新版SQL注入探索
操作系统:windwos11

PHP集成环境:PHPStudy_pro

PHP版本:5.6.9

Apache版本:2.4.39(需系统管理员在服务列表中启动apache服务)

MySQL版本:5.7.26

safedog版本:网站安全狗Apache版(windows) V4.0.31523 目前是最新版

测试过程

判断注入点

先添加一个单引号’,出现报错,可能存在注入点

实战|bypass safedog最新版SQL注入探索
再加个--+注释,回显正常,说明存在注入

http://192.168.31.78/sqli-labs-master/Less-1/?id=1%27--+

实战|bypass safedog最新版SQL注入探索
and 测试

and 1=1 被安全狗拦截了,说明部署成功。

实战|bypass safedog最新版SQL注入探索

那么,我们接下来得挨个测试看看是对哪里做了检测,触发了WAF的黑名单校验规则,从而被拦截。

实战|bypass safedog最新版SQL注入探索
经测试发现,只要语句中出现and空格+数字,就会被WAF拦截掉,说明该WAF规则是and和数字中间不允许出现空格。那么我们这时候思考应该通过怎样的形式来替换掉空格,不影响SQL语句执行,从而绕过WAF正则匹配。

先使用常规的注释符/**/试试看

实战|bypass safedog最新版SQL注入探索
发现常规性的注释符已经不行了,需要对/**/注释符进行变形,在/**/中间加入垃圾字符是不会影响语句执行的,看看怎么变形,可以绕过安全狗的黑名单校验规则呢。

这里直接就是手动测试了一下,发现/*/123/**/可以成功绕过检测

实战|bypass safedog最新版SQL注入探索
order by 判断字段

测试 ?id=1 and 1=2 order by  3--+,直接被拦截

实战|bypass safedog最新版SQL注入探索

测试一下拦截位:

实战|bypass safedog最新版SQL注入探索

发现对order空格+by 这个组合中间出现空格就会被拦截,用上面的注释语句/*/123/**/,看能否绕过,还能过!

实战|bypass safedog最新版SQL注入探索
union select

直接输入?id=1%27and/*/*123/**/1=2 union select 1,2,3--+,还是被拦截了。

实战|bypass safedog最新版SQL注入探索

还是在这里测试一下拦截位,如下:

实战|bypass safedog最新版SQL注入探索

发现对union空格+select 这个组合中间出现空格就会被拦截,用上面的注释语句/*/123/**/,被拦截掉了。这里进一步手动尝试变形,由于前面几步手动构造注释语句,一下绕过去了,我相信这一把应该也不需要很长时间测试。果不其然,在/*/*123/**/基础之上变形,构造/*/*!123%2b-/**/,成功绕过WAF检测。

实战|bypass safedog最新版SQL注入探索
database()

这里直接查数据库名,还是会直接被拦截

实战|bypass safedog最新版SQL注入探索

经测试拦截位,直接把字段数字,改为database()会直接被拦截,去掉括号,就不拦截了。那说明对database()组合有拦截,对这个整体有检测,直接用上面的注释符看能否绕过,可行!

实战|bypass safedog最新版SQL注入探索
实战|bypass safedog最新版SQL注入探索
查询表名

经过分块传输等各种测试WAF拦截位,一直处于被拦截,也FUZZ爆破过,但直到我们这里直接把union select删掉,发现对group_concat(table_name) from information_schema.tables where table_schema并没有出现拦截页面。此时一想,原来是上面的内联注释语句/*/*!123%2b-/**/无法绕过正则检测了,才被WAF拦截。那么,我们继续对注释语法进行变形,几番折腾,修改为/*//*//*!10448*/(经多次测试发现版本号必须有两位数字44在一块,其他三位为任意数字,咱就是说,有点玄学!!!),再测试,发现可以绕过了,成功查询出表名,如下:

实战|bypass safedog最新版SQL注入探索
查询字段

这里我们查询字段名是否可以按照上面查询表名方法去绕过检测呢?试试看

实战|bypass safedog最新版SQL注入探索

是可行的,成功绕过,查询出字段名。

查询字段内容

依旧按照上面查询表名、字段名方法来实验,如下:

实战|bypass safedog最新版SQL注入探索

也是可行的,成功绕过检测,查询出字段内容。

tamper脚本

想到后面方便使用,依照上面的绕过手法,编写了个tamper脚本,经过验证,没毛病。

实战|bypass safedog最新版SQL注入探索

到了这里,针对bypass safedog最新版SQL注入探索就暂时告一段落了。

SERAPH说攻防

SQL注入漏洞是一种通过在应用程序的输入字段中插入恶意SQL代码来攻击数据库的网络攻击方法。主要利用应用程序未对输入进行充分验证或过滤的技术漏洞,将恶意代码注入SQL查询中。通过操纵SQL查询,攻击者可以绕过认证步骤、访问未经授权的数据、修改或删除数据库中的信息,甚至在某些情况下执行数据库管理系统上的任意命令。

这种攻击方式可以通过直接操控数据库的行为来造成重大损害,因此检测和防御SQL注入是网络安全中的重要任务。有效的防御措施包括使用参数化查询、存储过程以及严谨的输入验证和过滤等技术。

SQL注入漏洞的危害也涉及多个方面:

1

数据泄露

攻击者可以未经授权访问数据库中的敏感信息,包括个人身份信息、财务数据和其他机密信息。

2

数据篡改

不仅可以读取数据,攻击者还可能修改、插入或删除数据库中的记录,导致数据完整性受损。

3

认证绕过

通过操控SQL查询,攻击者可能绕过登录认证机制,获得对应用程序的管理员权限。

4

拒绝服务

恶意SQL查询可能导致数据库崩溃或性能大幅下降,从而使应用程序无法正常服务用户。

5

远程控制

在某些情况下,攻击者可以利用SQL注入漏洞执行数据库管理系统上的命令,从而获取服务器的更高权限,进一步扩大攻击范围。

6

商业声誉受损

一旦发生数据泄露或服务中断事件,受影响组织的声誉可能会受到严重打击,导致客户信任度下降和经济损失。

云科

安全有道

在云科安信的睚眦数字风险全栈防御系统中,就有针对SQL注入等安全威胁的防御模块。像本次实战探索的SQL注入攻击,就无法突破睚眦数字风险全栈防御系统的应用防护机制。

实战|bypass safedog最新版SQL注入探索

「睚眦」表单动态加固防护模块,通过“表单字段加密技术”,对表单提交参数名及参数值进行动态加密是混淆,如果数据包被劫持,看到的将不再是原始的参数及值,而是加密之后的密文。这些密文为动态加密混淆的,攻击者无法进行解密和修改,如若强行修改数据包将会被直接阻断。暴力破解、SQL注入等攻击需要对参数值进行不断地枚举以达到攻击的目的,使用了表单动态加固功能,攻击者将无法有效分析表单相关字段含义,也无法对参数名和参数值解密进行攻击。

实战|bypass safedog最新版SQL注入探索

在攻防实战中,经反复实践发现表单动态加固防御功能对0day攻击也有着天然的防御能力。Web应用层的0day攻击多数都是通过构造好的数据包直接对目标进行打击,而开启表单动态加固保护的应用,会对提交过来的数据包为明文参数非经过加密混淆后的密文,数据包会直接被阻断,大大降低了潜在的0day攻击风险。

原文始发于微信公众号(云科安信Antira):实战|bypass safedog最新版SQL注入探索

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月27日18:29:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战|bypass safedog最新版SQL注入探索https://cn-sec.com/archives/3215518.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息