• CTF_show WEB1通过order排序读取数据库数据(特定场景)


    代码如下:

    过滤很完整,不存在绕过。但是order参数可控。order参数默认为id,如果改成pwd则用password排序。我们可以通过pwd排序,来推断flag用户的密码即真正的flag。假设flag用户的密码为flag{26d56dfd-7b5a-4167-871a-679e352c1026}

    f
    fa
    fl
    flag
    fm

    字符串是如何做比较的?

    当第一位字符相同时比较第二位字符,第二位字符一样,比较第三位字符,以此类推。(需要先转换为ascii码)

    假设我们注册的用户密码同为f,用pwd排序则f在flag用户上面。接着我们再注册用户同密码fa的用户,发现fa再flag用户上面,则flag用户密码的第二位比fa小,接着继续注册到fl,发现fl用户在flag上面,因为fl与flag用户前两位相同,则比较第三位,fl只有两位,则在flag之上。接着注册fm,发现fm刚好在flag用户之下,则flag用户的密码第二位是fl。因为fl是刚刚等于flag用户的前两位大于三位以后,而fm则小于 flag用户,所以fl是flag用户的前两位。以此类推,最后退出flag用的的密码,即flag值。

  • 相关阅读:
    优化网站性能的14条准则
    单元测试
    无配置wcf Host
    .net 4.0
    Java 7 resources
    关于重用
    用GMaven plugin更好地编译系统
    关于系统分层的自问自答
    UBIQUITOUS LANAGUAGE
    用Groovy方式实现接口便于单元测试和协作开发
  • 原文地址:https://www.cnblogs.com/aptkekeo/p/13893076.html
Copyright © 2020-2023  润新知