Web安全攻防世界01 fileinclude(宜兴网信办)

问题描述:

Web安全攻防世界01 fileinclude(宜兴网信办)_第1张图片

攻防世界文件包含入门题目,参考大佬们的WP有所补充,内容对小白友好~


原因分析:

按照惯例,首先查看源代码ctrl+u:

Web安全攻防世界01 fileinclude(宜兴网信办)_第2张图片

整理一下大概是下面这个意思(代码0基础,可能有误,欢迎留言沟通与指正~)




//规定 HTML 文档的字符集


Notice: Undefined index: language in /var/www/html/index.php on line 9
Please choose the language you want : English or Chinese

Hi,EveryOne,The flag is in flag.php

//页面显示内容,其中提示了language的设置与地址,flag所在地址。

所以题目的关键在于达成这第15行的条件:

$lan = $_COOKIE['language'];

在cookie中的内容language 会被传到变量$lan,继而在第23行@include($lan.".php");被调用与执行,因此cookie变量中很适合写入读取flag.php的payload~


解决方案:

工具:burpsuite 或 hackbar(浏览器插件)

参考:admin发表的官方WP zhan3614发表的WP fileinclude 

1 Burp Suite抓包

首先用Burp Suite拦截网页的请求包,页面如下图所示:

Web安全攻防世界01 fileinclude(宜兴网信办)_第3张图片

emm,发现没有题目要求的变量cookie,这样就很难实现题目要求的条件了...

2 添加cookie

现在需要手动添加cookie,可以通过burpsuite或者hackbar添加~

1)Burp Suite,在页面的右下角Request Cookies可以找到添加变量的位置~

  Name:language

  Value:php://filter/read=convert.base64-encode/resource=/var/www/html/flag

  Name的值为第15行代码要求的名称,Value的值可将flag(.php)内容以Base64编码的形式读取~

php://filter/read=执行文件读取功能~(官方介绍:PHP: php:// - Manual)

convert.base64-encode执行Base64编码功能~

/resource=/var/www/html/flag填写flag.php所在的地址,本题在源码的第5行有提示地址为language in /var/www/html/index.php on line ;且需要注意注意源码第23行的内容(@include($lan.".php"); ),在上传参数时代码会附带后缀.php,所以此处不需要写为 '/var/www/html/flag.php'~

Web安全攻防世界01 fileinclude(宜兴网信办)_第4张图片

或者可以直接复制这一行到请求包末尾(同样的语句,经过URL编码):

Cookie: language=php%3a%2f%2ffilter%2fread%3dconvert.base64-encode%2fresource%3d%2fvar%2fwww%2fhtml%2fflag

消息变成如下所示以后发送: 

Web安全攻防世界01 fileinclude(宜兴网信办)_第5张图片

然后就得到了一个 编码为Base64的flag,如下图~

Web安全攻防世界01 fileinclude(宜兴网信办)_第6张图片

右键传到burpsuite自带的解码模块decoder中可以解码~Web安全攻防世界01 fileinclude(宜兴网信办)_第7张图片

 $flag=cyberpeace{9fbd1f023749c48900cf215fe902c204}

2)采用chrome的扩展工具hackbar 添加cookie的值;解题的思路与上面是一致的:F12调出开发者工具,操作步骤如下图就可以~

Name:cookie

Value:language=php://filter/read=convert.base64-encode/resource=/var/www/html/flag

Web安全攻防世界01 fileinclude(宜兴网信办)_第8张图片

页面上方回显以base64格式编码的flag,复制到网址栏,随后可用hackbar自带的解码模块encoding找到base64 encode选项进行解码~

Web安全攻防世界01 fileinclude(宜兴网信办)_第9张图片

Web安全攻防世界01 fileinclude(宜兴网信办)_第10张图片

flag=cyberpeace{9fbd1f023749c48900cf215fe902c204}

博文写得模糊或者有误之处,欢迎留言讨论与批评~

码字不易,若有所帮助,可以点赞支持一下博主嘛?感谢~(●'◡'●)

你可能感兴趣的:(#,攻防世界,php,web安全)