bugku web 13-n

14

界面打开平平无奇

源代码打开空空如也

唯一的提示是点开链接的index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<title>Bugku-web</title>

<?php
error_reporting(0);
if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}
$file=$_GET['file'];
if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
echo "Oh no!";
exit();
}
include($file);
//flag:flag{e1a1a5e78c67607e532c7080df4d55c5}
?>
</html>

php://filter 是一种设计用来允许过滤器程序在打开时成为流的封装协议。这对于单独具有完整功能的文件函数例如 readfile(),file() 和 file_get_contents() 很有用,否则就没有机会在读取内容之前将过滤器应用于流之上。 该协议语法为 php://filter:/= 比如 php://filter:/resource=ht

16

md5解码出来时。。。。。

这。。。。。算了,去找备份文件

解码,空密码。。

在后缀那里蛮试了一下加了.bak,下了份文件

果然

parse_url(): parse_url函数用于解析整个URL,并返回其组成部分。

这里涉及到有str_replace()通过双写可绕过,md5可以通过0e开头的,也可以利用无法hash数组,返回空来绕过

str_replace() 函数替换字符串中的一些字符(区分大小写)。

该函数必须遵循下列规则:

  • 如果搜索的字符串是一个数组,那么它将返回一个数组。
  • 如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换。
  • 如果同时需要对某个数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余的元素将用空字符串进行替换。
  • 如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作用。

注释:该函数是区分大小写的。请使用 str_ireplace() 函数执行不区分大小写的搜索。

注释:该函数是二进制安全的。

语法

str_replace(find,replace,string,count)

参数 描述
find 必需。规定要查找的值。
replace 必需。规定替换 find 中的值的值。
string 必需。规定被搜索的字符串。
count 可选。一个变量,对替换数进行计数。

好家伙这个数组名还必须是kekeyy才行