码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [WUSTCTF2020]朴实无华


    查看robots.txt 找到/fAke_flagggg.php

    显然这是个假的flag,但是我们在header处发现了fl4g.php

    近来发现中文全部变成了乱码

     

    插件转成utf8后正常显示

     

    1. header('Content-type:text/html;charset=utf-8');
    2. error_reporting(0);
    3. highlight_file(__file__);
    4. //level 1
    5. if (isset($_GET['num'])){
    6. $num = $_GET['num'];
    7. if(intval($num) < 2020 && intval($num + 1) > 2021){
    8. echo "我不经意间看了看我的劳力士, 不是想看时间, 只是想不经意间, 让你知道我过得比你好.
      "
      ;
    9. }else{
    10. die("金钱解决不了穷人的本质问题");
    11. }
    12. }else{
    13. die("去非洲吧");
    14. }
    15. //level 2
    16. if (isset($_GET['md5'])){
    17. $md5=$_GET['md5'];
    18. if ($md5==md5($md5))
    19. echo "想到这个CTFer拿到flag后, 感激涕零, 跑去东澜岸, 找一家餐厅, 把厨师轰出去, 自己炒两个拿手小菜, 倒一杯散装白酒, 致富有道, 别学小暴.
      "
      ;
    20. else
    21. die("我赶紧喊来我的酒肉朋友, 他打了个电话, 把他一家安排到了非洲");
    22. }else{
    23. die("去非洲吧");
    24. }
    25. //get flag
    26. if (isset($_GET['get_flag'])){
    27. $get_flag = $_GET['get_flag'];
    28. if(!strstr($get_flag," ")){
    29. $get_flag = str_ireplace("cat", "wctf2020", $get_flag);
    30. echo "想到这里, 我充实而欣慰, 有钱人的快乐往往就是这么的朴实无华, 且枯燥.
      "
      ;
    31. system($get_flag);
    32. }else{
    33. die("快到非洲了");
    34. }
    35. }else{
    36. die("去非洲吧");
    37. }
    38. ?>

     第一步 绕过intval()

    显然不存在一个实数n使得n<2020&&n>2020

    通过科学计数法绕过num="3e3",经过intval()解析,结果如下图

    这个绕过只在较低php版本有效

    PHP intval()函数详解,intval()函数漏洞原理及绕过思路_intval函数-CSDN博客

    第二步 绕过md5

    要求一个字符串的MD5值等于字符串本身

    这个比较使用了==,是弱类型判断,也可以通过和第一步差不多的思路,科学计数法0==0绕过。故只要我们找出0e开头且MD5值也是0e开头的字符串即可。

    这一步自己写脚本可能得跑一段时间,但现在我们站在巨人的肩膀上,找到了符合这个条件的字符串 0e215962017

    第三步 绕过空格和cat

    先ls查看flag位置

    这一步就比较简单了,空格可以使用$IFS$9代替

    cat可以使用tac,head,tail,nl替代

    linux中查看文件命令和空格绕过_$ifs$9-CSDN博客 

     

  • 相关阅读:
    QT+OSG/osgEarth编译之四十一:osgUtil+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5工具库osgUtil)
    【安卓】开发跳过广告app,具备“李跳跳”app的部分功能
    文本分类从入门到精通—代码展示
    【Pycharm 安装Django报错显示:ERROR: Failed building wheel for backports.zoneinfo】
    力扣(LeetCode)566. 重塑矩阵(C语言)
    [数据结构]链表OJ题 (三) 链表的中间结点、链表中倒数第k个结点、合并两个有序链表、链表分割、链表的回文结构
    企业为什么要做等保?不做等保有什么后果?
    2023年9月26日LINUX融合改动记录
    MySQL 面试题——数据库理论基础
    从SDE的离散化出发统一扩散模型(一)
  • 原文地址:https://blog.csdn.net/qq_48932191/article/details/136653063
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号