码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • BUUCTF--[ACTF2020 新生赛]Include


    目录

    1、本题详解

    2、延伸拓展


    1、本题详解

    访问题目链接 

    有一个tips的链接,我们点击

    请求了file,内容是flag.php的内容:Can you find out the flag?

    尝试请求一下index.php

    并没有发现什么信息

    flag.php也没发现什么

    尝试爆破一下它的目录和一些敏感文件名

    但是遇到429报错,请求被服务器拒绝,因为发送了太多请求 

    想起题目名叫Include,应该考察的是文件包含,因此尝试使用伪协议进行文件读取

    首先使用 php://filter(用于读取源码)

    这里直接尝试读取当前目录下的flag.php

    进行base64编码输出,构造payload:

    ?file=php://filter/read=convert.base64-encode/resource=flag.php

    读取成功

    进行base64解码

    拿到 flag{f88d4b88-a1d0-4245-9c11-69da16affdac}

    2、延伸拓展

    关于php://filter的用法:

    php://filter/read=convert.base64-encode/resource=[文件名]

    读取文件源码(针对php文件需要base64编码)

    当然有时候会对编码进行过滤和限制,这时我们就需要使用一些其他的编码方式

    比如使用utf8和utf16

    /?file=php://filter/convert.iconv.utf8.utf16/resource=flag.php

    读取出来的内容就不需要解base64了

    这里说一下这个iconv函数:完成各种字符集间的转换

    比如 iconv("utf8","gbk",$string) :将字符串string 编码由utf8转变成gbk

    以及convert.iconv.的用法:

    1. convert.iconv.<input-encoding>.<output-encoding>
    2. 或者
    3. convert.iconv.<input-encoding>/<output-encoding>

    和 就是编码方式

    常用的编码方式有:

    1. UCS-4*
    2. UCS-4BE
    3. UCS-4LE*
    4. UCS-2
    5. UCS-2BE
    6. UCS-2LE
    7. UTF-32*
    8. UTF-32BE*
    9. UTF-32LE*
    10. UTF-16*
    11. UTF-16BE*
    12. UTF-16LE*
    13. UTF-7
    14. UTF7-IMAP
    15. UTF-8*
    16. ASCII*
    17. EUC-JP*
    18. SJIS*
    19. eucJP-win*
    20. SJIS-win*

    比如我们的payload还可以是:

    ?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=flag.php

    但是这种编码读取php文件似乎不行,不过我们可以读其他的,比如etc下的passwd

    ?file=php://filter//convert.iconv.SJIS*.UCS-4*/resource=/etc/passwd

    尝试使用 php://input (用于执行PHP代码)进行代码执行:

    回显 hacker!

    应该是被检测了,我们读取一下index.php的源码看看

    /?file=php://filter/convert.iconv.utf8.utf16/resource=index.php

    确实过滤掉了很多伪协议,但是 php://filter 是可以使用的,这也是为什么我们能读取到flag.php

  • 相关阅读:
    Weblogic一个domain建多个server(端口)
    LeetCode买卖股票之一:基本套路(122)
    《Web安全基础》06. 逻辑漏洞&越权
    C/C++个人帐本管理系统
    成年期人类大脑功能网络的重叠模块组织
    kettle安装使用与部署
    React中组件通信02——消息订阅与发布、取消订阅以及卸载组件时取消订阅
    【leetcode hot 100】对称二叉树,二叉树最大深度,买卖股票的最佳时机,只出现一次的数字,环形链表,相交链表
    数据结构与算法------栈和队列
    初识HTML超文本标记语言
  • 原文地址:https://blog.csdn.net/Myon5/article/details/134529032
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号