攻防世界Web

06-01 1550阅读

引子

data://伪协议

详见:【CTF】 文件包含漏洞——data伪协议 【详】-CSDN博客

data://是 PHP 中的一种伪协议,允许将数据直接嵌入到 URL 中,从而在请求中传递和处理数据。

data:// 伪协议的基本格式如下:

  • data://[][;charset=][;base64],
  • MIME-type:指定数据的类型,默认为 text/plain。
  • charset(可选,默认为UTF-8):指定数据的编码类型,如 utf-8。
  • base64(可选):如果数据经过 Base64 编码,则需要加上 ;base64 标识。
  • data:实际的数据内容。

    使用方式:在url后加上?file=data://text/plain,,可以使系统列出文件列表。亦可对data部分代码进行url编码绕过字符串过滤

    ?file=data://text/plain,%3C%3Fphp%20system%28%27ls%27%29%3B%20%3F%3E

    进行以上步骤我们可以获取当前网站目录中有些什么文件,然后我们可以使用以下方法读取我们想要的文件:

    file_get_contents

    //file_get_contents函数参数详情
    string file_get_contents ( string $filename , bool $use_include_path = FALSE , resource $context = NULL , int $offset = 0 , int $maxlen = NULL )
    //$filename:要读取的文件或资源的路径(可以是本地文件路径或 URL)。
    //$use_include_path:是否在 include_path 中查找文件。默认为 FALSE。
    //$context:上下文资源,用于设置流的选项(如超时时间、请求头等)。
    //$offset:从文件的指定偏移量开始读取。
    //$maxlen:最大读取长度。
    //示例
    http://example.com/vulnerable.php?file=data://text/plain,

    利用 fopen 和 fread

    http://example.com/vulnerable.php?file=data://text/plain,

    readfile

    http://example.com/vulnerable.php?file=data://text/plain,

    利用 highlight_file 或 show_source

    http://example.com/vulnerable.php?file=data://text/plain,

    tips:函数htmlspecialchars可以将一些特定的字符(如 、&、" 和 ')转换为对应的 HTML 实体。这样可以确保这些字符在 HTML 页面中以纯文本形式显示,而不是被浏览器解释为 HTML 标签或脚本代码。

    题目

    题目名称:Web_php_include(攻防世界)

    题目编号:NO.GFSJ0716

    攻防世界Web

    对其尝试使用data伪协议将目录打出

    攻防世界Web

    fl4gisisish3r3.php文件便是当前目录下的flag文件

    尝试读取

    攻防世界Web

    发现普通的echo输出无法正常运行

    因此发现一个函数htmlspecialchars可以将一些特定的字符(如 、&、" 和 ')转换为对应的 HTML 实体。这样可以确保这些字符在 HTML 页面中以纯文本形式显示,而不是被浏览器解释为 HTML 标签或脚本代码。

    string htmlspecialchars(string $string, int $flags = ENT_QUOTES, string $encoding = 'UTF-8', bool $double_encode = true)
    //$string:要转换的字符串。
    //$flags:指定转换规则的标志,默认为 ENT_QUOTES,表示转换双引号和单引号。
    //$encoding:指定字符编码,默认为 UTF-8。
    //$double_encode:是否对已经编码的字符进行二次编码。默认为 true。
    //常用标志
    //ENT_QUOTES:转换双引号和单引号(默认值)。
    //ENT_NOQUOTES:不转换任何引号。
    //ENT_COMPAT:仅转换双引号。
    //ENT_IGNORE:忽略无效的编码,不报告错误。

    攻防世界Web

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码