Web安全攻防世界02 fileclude(ctf)

问题描述

Web安全攻防世界02 fileclude(ctf)_第1张图片

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


原因分析:

网页中直接存在源码,在此翻译和分析~

WRONG WAY! 

解题思路如下:

1 根据第12行 include($file1);

   应该在file1中传入可以读取flag.php的语句~

2 根据第10行 if(file_get_contents($file2) === "hello ctf")

   应该在file2中传入字符串"hello ctf"~


解决方案:

工具:BurpSuite或hackbar

参考:admin的官方WP、小王学信安的fileclude简单的文件包含、我爱喝牛奶的wp

1 Burp Suite

  file1=php://filter/read=convert.base64-encode/resource=flag.php 用来读取源码12行中文件flag.php中的语句~

  php://filter/read=执行文件读取功能,介绍如下图所示,感兴趣可参考官方手册:PHP: php:// - Manual(下面两张截图均出自此链接,对解题很有帮助~);

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

  /resource=flag.php填写flag.php所在的目录~

Web安全攻防世界02 fileclude(ctf)_第2张图片

  file2=php://input 表示访问语句,可以在文件末尾加上源码第10行要求的内容hello ctf~

    注意:参数是通过HTTP的数据包上传的,而HTTP的请求方法有 get、head、post三种。其中前两种get、head只接收开发者内定好的参数,你发其他的内容服务器是不会理你的~所以请求方法优先使用post,这种类型的请求适合向服务器发送数据~

    emm...然而本题无论是使用get还是post都是可以成功的~

    file1与file2需要同时满足条件,所以第一行请求的网址的输入语句为:

POST /?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=php://input HTTP/1.1

   file1读取文件flag.php,同时file2根据源码要求,在请求包末尾添加 hello ctf ~

Web安全攻防世界02 fileclude(ctf)_第3张图片

    鼠标右键菜单栏,选择send to Repeater,在Repeater模块中做以上调整,然后点击发送~

Web安全攻防世界02 fileclude(ctf)_第4张图片

    Response末端出现以Base64编码的flag,右键sent to decoder送到Burpsuite的Decoder模块;在鼠标右侧菜单栏选择Decode as base64解码~

Web安全攻防世界02 fileclude(ctf)_第5张图片

    $flag = cyberpeace{0a7246c2d4a20787121f0856bdf8ec59}

 2 Hackbar

    以下参考 我爱喝牛奶的wp

    同样的思路,换一个工具,打开chrome,安装好扩展程序HackBar以后,快捷键F12调出开发者工具:

Web安全攻防世界02 fileclude(ctf)_第6张图片

  满足下列条件:

   file1=php://filter/read=convert.base64-encode/resource=flag.php 以Base64的格式读取文件flag.php中的语句;

   file2=data://text/plain,hello ctf 纯文本格式写入题目要求的内容hello ctf~

   data://执行条件:需要受限于php.ini的文件设置 allow_url_fopen  开启(允许将URL作为文件打开处理),allow_url_include  开启(允许文件包含)~

Web安全攻防世界02 fileclude(ctf)_第7张图片

↑截图来源:PHP: data:// - Manual 

  file1与file2需要同时满足条件,所以url行的输入语句为:

http://61.147.171.105:63495/?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data://text/plain,hello ctf

  点击EXECUTE,出现Base64编码的flag~

Web安全攻防世界02 fileclude(ctf)_第8张图片

  flag解码的流程:将回显代码粘贴在hackbar中,选择encoding,base64格式编码~

Web安全攻防世界02 fileclude(ctf)_第9张图片

   解码答案~

Web安全攻防世界02 fileclude(ctf)_第10张图片

   $flag = cyberpeace{0a7246c2d4a20787121f0856bdf8ec59}

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

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

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