前提知识:
filter伪协议
include函数用php://filter伪协议来绕过
题目:
打开题目
页面显示如图,可以知道flag在flag.php中,还知道当前页面的绝对路径
先查看源代码
15行$lan用$_cookie传参,可以修改cookie值从而控制$lan
23行可以看出存在文件包含,include函数用php://filter伪协议来绕过,括号内包含了lan,在最后拼接上了".php”后缀
用filter伪协议读取flag.php的源码
构造payload:
language=php://filter/read=convert.base64-encode/resource=/var/www/html/flag
因为在源代码中,lan最后拼接了.php,在payload中flag后不用加
用bp抓包修改cookie值
直接在下面添加payload
得到base64编码
PD9waHANCiRmbGFnPSJjeWJlcnBlYWNlezViY2MyODc5ZWQ5ZjU4ZWM4ZDVkNzZjOWYwMTY3MzVkfSI7DQo/Pg==
解码可得flag