• CTFHUB-技能树-Web-RCE(上)


    这一篇关于php伪协议

    eval执行

    eval函数应该都知道,就是把字符串按照 PHP 代码来计算

    这里源代码没有进行任何过滤

    所以直接可以传参

    ①?cmd=system('ls /');

    ②?cmd=system('cat /flag_25186');

    一个好的web手一定不会忘掉;号

    文件包含

    题目是这样的

    它里面已经有一个shell.txt,内容是一句话木马,那岂不是可以为所欲为了

    构造一下

    然后cat一下就出来了

    php://input

    这是一个伪协议,主要用来接受post数据,将post请求中的数据作为php代码执行

    所以post请求里要写上php代码,格式如下

    然后cat一下就好啦

    读取源代码

    这里介绍另一个php伪协议,php://filter协议,主要用来查看源码(或者已知文件名的文件)

    一般格式:参数=php://filter/(read.)convert.base64-encode/resource=include.php(以base64加密方式读取)

    也可以直接读取:php://filter/resource=xxx

    本题就是直接读取,因为提示了flag的位置

    远程包含

    含义:包含攻击者指定url文件

    这题好像没有考到,还是用的伪协议

    补充:php的伪协议还有

    一:php://file文件,用于当../(相对路径)被屏蔽时,格式:参数=file:///C:windows/win.ini
    二:zip://、bzip2://、zlib://协议:可以访问压缩文件中的子文件,格式:zip://压缩文件绝对路径#(#可以写成其url形式:%23)压缩文件内的子文件名
    三:phar://协议:类似zip协议,但是可以使用相对路径,格式:phar://压缩文件绝对或相对路径/压缩文件内的子文件名
    四:data://协议:将原本的include的文件流重定向到了用户可控制的输入流中,格式:参数=data://text/plain,<?php phpinfo();也可以写成base64形式:data://text/plain;base64,PD9waHAgcGhwaW5mbygpOyA==

  • 相关阅读:
    php 三元运算符简洁用法
    Linux 获取网卡信息
    《构建之法》读后感
    毫秒数据字符串转换为DateTime
    POST请求——HttpWebRequest
    多个不同类对象传输思路
    WCF 大文件传输配置
    WCF配置文件详解
    C# 元组、匿名对象、ref&out
    C#控制台关闭之前做一些操作
  • 原文地址:https://www.cnblogs.com/Web-Fresher/p/13723337.html
Copyright © 2020-2023  润新知