zoukankan      html  css  js  c++  java
  • CG-CTF(4)

    CG-CTF

    https://cgctf.nuptsast.com/challenges#Web

     

      续上~

      第十六题:bypass again

     

      代码分析:

      当a不等于b,且a和b的md5值相同时,才会返回flag值。

      思路①:同第二题的思路,因为是==比较,只判断值是否相等,不判断类型是否相同。在PHP语言中,如果数据类型不同先转换为相同的类型再进行比较,而PHP在处理哈希字符串时,会把0E(或0e)开头的哈希值解释为0。所以如果两个值通过md5后值都以0E(或0e)开头,其值就会相等;

      构造a=s878926199a,b=s155964671a;

      取得flag(干杯~);

      思路②:同第十五题思路,PHP中md5()函数并不能处理数组数据类型,在遇到数组的时候会返回NULL,其值就会相等。(且这种方法在===比较中也可以适用;

      取得flag(干杯~);

     

      思路③:MD5本质上是使用哈希算法的一种散列函数,一个MD5理论上是可能对应多个原文的,原理是MD5是有限多个的,而原文是无限多个的;

      此处举个不准确但可以辅助理解的例子:

      1+7=8,但是只拿到8并不能推出1+7,但是我们可以构造2+6,2*4等使其最终的值相等。

      那么我们只要找到两个MD5值相同的原文(MD5散列碰撞),这道题就能解决了。

      第十七题:变量覆盖

     

      变量覆盖学习:

      https://www.baidu.com/link?url=-6QNTpui6xtGtWZeZ_FckrQRAfkP_VNych7jn9uhkLd9RZCB0XykXyF4CF1uwuMs386GwuzYHA1gIyxvdMJ4n_&wd=&eqid=81b0d711000afa1e000000035ddc96ae

      本题查看source.php;

      只需要使$pass和$password_123的值相同即可,用burp抓包添加password_123参数;

      取得flag(干杯~);

     

      第十八题:PHP是世界上最好的语言

     

      题目消失,去网上找到原题:

     

      代码分析:id的值与hackerDJ不同,而URL解码后的id与hackerDJ相同;

      思路:对hackerDJ进行两次URL加密即可;

      第十九题:伪装者

     

      分析:源代码啥也没有,只能在本地登录,说明对IP做了限制,那么尝试在HTTP头部中进行修改头部信息以达到伪装成本地登录;

      思路①:增加X-Forwarded-For请求头部,其格式为:X-Forwarded-For: client, proxy1, proxy2;

      然而好像没有达成目的,可能后端验证的不是这个头部;

      

      思路②:client-ip;

      取得flag(干杯~);

     

      第二十题:Header

     

      题目消失,上网找了一下原题;

     

      咳咳,评价刁钻;

     

      第二十一题:上传绕过

     

      点击Submit;

      提示仅支持上传jpg,gif,png后缀的文件;

      尝试上传test.jpg文件;

      提示必须上传成后缀名为php的文件;

      上传php文件;

      用burp拦包;

      思路:如果我们上传php文件,第一步就会报错,那么我们需要判断它是如何识别后缀的,可以从返回的包中看到,是根据./uploads目录下的basename来进行识别的,可以尝试进行截断;

      首先在/uploads/后面增加1.php;

      发现basename处变为1.phptest.jpg;尝试用00截断,在1.php后面增加一个空格,然后在Hex下将20改为00;

      取得flag(干杯~);

     

      未完待续~

  • 相关阅读:
    JVM底层原理 内存模型+GC垃圾回收
    新Socket与网络小结
    Redis五大数据结构及基本指令用法
    MySql高级汇总-事务,索引,SQL调优,分库分表,读写分离
    笔试错题整理
    设计模式(思路)
    网络编程
    linux
    基础算法--KMP匹配字符串
    基础算法--整数二分
  • 原文地址:https://www.cnblogs.com/Dio-Hch/p/11936906.html
Copyright © 2011-2022 走看看