当前位置: 首页 > news >正文

珠海公司网站设计中山学校网站建设

珠海公司网站设计,中山学校网站建设,企业大型网站建设要多少钱,seo搜索引擎优化服务一、背景 今天介绍一个比较冷门的知识#xff0c;只有在PHP环境中存在的伪协议漏洞#xff0c;那么什么是PHP伪协议呢#xff1f;PHP伪协议事实上就是支持的协议与封装协议。可用于类似 fopen()、 copy()、 file_exists() 和 filesize() 的文件系统函数。 除了这些封装协议…一、背景 今天介绍一个比较冷门的知识只有在PHP环境中存在的伪协议漏洞那么什么是PHP伪协议呢PHP伪协议事实上就是支持的协议与封装协议。可用于类似 fopen()、 copy()、 file_exists() 和 filesize() 的文件系统函数。 除了这些封装协议还能通过 stream_wrapper_register() 来注册自定义的封装协议。ctf中的文件包含、文件读取的绕过、正则的绕过等等会需要用到。 二、伪协议的原理 PHP伪协议是一种在PHP处理数据时通过替换数据报的头部信息来欺骗网络协议的方式来提高性能的技术。该技术可以让PHP在读取数据时直接读取内存中的数据而不需要解析数据报。 PHP伪协议的原理是在数据报的头部中添加一个特殊的标志位用于指示该数据报是伪协议数据报。当PHP读取数据报时它会检查该标志位是否为0.如果标志位为0则它将直接读取内存中的数据如果标志位为1则它将会解析数据报并根据数据报的头部信息来执行相应的操作。 PHP伪协议的主要应用场景是缓存和压缩数据。通过数据报的头部添加特殊标志位PHP可以在读取数据时直接读取缓存中的数据而不需要进行解析。这对于提高缓存命中率和压缩数据非常有用。 需要注意的是由于PHP伪协议是通过替换数据报的头部信息来实现的一次它可能会对网络协议的完整性产生冲突。如果网络协议的头部信息被PHP伪协议替换了可能会导致网络协议的完整性被破坏从而导致通信中断。因此在进行网络通信时需要特别小心使用PHP伪协议技术。 三、伪协议的利用 PHP伪协议共有12种具体如下 file:// — 访问本地文件系统 http:// — 访问 HTTP(s) 网址 ftp:// — 访问 FTP(s) URLs php:// — 访问各个输入/输出流I/O streams      php://stdin, php://stdout 和 php://stderr      php://input      php://output      php://memory 和 php://temp      php://filter zlib:// — 压缩流 data:// — 数据RFC 2397 glob:// — 查找匹配的文件路径模式 phar:// — PHP 归档 ssh2:// — Secure Shell 2 rar:// — RAR ogg:// — 音频流 expect:// — 处理交互式的流 接下来我们选取几个特例用来演示伪协议的使用技巧 3.1 file:// 协议 --------本地文件传输协议 file:// 用于访问本地文件系统比如在CTF中通常用来读取本地文件的且不受配置文件中allow_url_fopen与allow_url_include的影响。 格式 www.xxx.com?cmd.phpfile://[文件的绝对路径和文件名]通过这个格式就可以读取到部署www.xxx.com服务器指定目录的文件了 3.2 php://协议 重头戏了属于是php:// 是ctf的常客所以关于它的故事很多。 使用条件(php.ini配置) allow_url_fopenallow_url_includephp://inputon/offonphp://stdinon/offonphp://memoryon/offonphp://tempon/offonphp://filteron/offon/off 看着确实挺多的有点迷糊但是只需要记住php://input 以及 php://filter 就行了就这俩常用 php://filter 名称描述resource—要过滤的数据流这是个必要参数。它指定了你需要筛选过滤的数据流(简单来说就是你的数据来源)read—读链的筛选列表这个参数可选。可以设定一个或多个过滤器名称。以管道符/分隔write—读链的筛选列表这个参数可选。可以设定一个或多个过滤器名称。以管道符/分隔 举个例子就以靶场http://buuoj.cn 这个上面的提为例 题目给了提示文件包含所以这个p盲猜是include内的参数所以直接输入flag试试 这样读取并未获取到想要的信息此时我们考虑使用伪协议间接读取它的源码 通过在url后面添加了伪协议读取方式我们就将它的源码以base64的编码格式读取出来了通过这个例子我们通过php://filter伪协议将服务器中的flag.php文件源码读取出来了说明这个伪协议可能造成源码或者服务器敏感信息泄露。 php://filter 是一种元封装器 设计用于数据流打开时的筛选过滤应用。这对于一体式all-in-one的文件函数非常有用类似 readfile()、 file() 和 file_get_contents() 在数据流内容读取之前没有机会应用其他过滤器。 php://filter读取源码可以使用以下的一些命令 读php://filter/resource文件名 php://filter/readconvert.base64-encode/resource文件名 写php://filter/resource文件名txt文件内容 php://filter/writeconvert.base64-encode/resource文件名txt文件内容 3.3 zip://,bzip2://,zlib://协议 zip://, bzip2://, zlib:// 均属于压缩流可以访问压缩文件中的子文件更重要的是不需要指定后缀名 zip://协议 格式 zip:// [压缩文件绝对路径]#[压缩文件内的子文件名] 例如: zip://archive.zip#dir/file.txt 先将要执行的PHP代码写好文件名为phpcode.txt将phpcode.txt进行zip压缩,压缩文件名为file.zip,如果可以上传zip文件便直接上传若不能便将file.zip重命名为file.jpg后在上传其他几种压缩格式也可以这样操作。 由于#在get请求中会将后面的参数忽略所以使用get请求时候应进行url编码为%23且此处经过测试相对路径是不可行所以只能用绝对路径。 更多过滤器使用可参考 四、伪协议的防护 PHP这门语言凭借其上手快轻量级以往在建站的时候被广泛使用现实使用较少了虽然使用少了但我们还是要对其存在的漏洞有所了解掌握其中原理以及了解其漏洞的基本利用方法。以下提供几种防御伪协议的方法 4.1 验证输入数据 对用户输入的数据采取零信任无论输入来自url参数、表单数据还是其他途径都需要进行严格过滤和验证。可以使用过滤器函数如filter_var()对输入数据进行验证确保其符合预期的格式和内容避免恶意构造的URL导致安全漏洞。 4.2 使用白名单机制 为了防止伪协议被滥用应该限制可访问的资源范围。可以创建一个白名单只允许指定的资源可以通过伪协议进行访问。这样可以避免用户通过伪协议访问敏感文件和敏感资源。 4.3 禁用危险的协议 PHP提供了一些危险的伪协议如php://input 、php://filter、data://等它们可能被用于读取、写入或执行恶意代码。为了防止安全漏洞建议禁用这些危险的伪协议。可以通过修改php.ini文件或在代码中使用ini_set()函数来实现。 4.4 不要动态拼接URL 动态拼接URL可能导致安全风险特别是包含用户输入的情况下。应该尽量避免将用户输入直接拼接到URL中而是使用URL编码函数urlencode()对用户输入进行处理确保URL的完整性和安全性。 4.5 使用安全的文件访问函数 在使用伪协议访问文件时应该使用安全的文件访问函数,如file_ get contents0、file_ put contents0等。避免使不安全的函数如include(、 require0等, 以防止恶意代码执行。 4.6限制文件访问权限 为了避免敏感文件被访问应该设置合适的文件访问权限。确保只有授权的用户或进程才能访问这些文件。可以使用chmod命令或文件管理I具来设置文件权限。 4.7.定期更新和维护 及时更新PHP版本和相关组件以获取最新的安全补J和功能改进。同时,定期检查和维护代码修复可能存在的安全漏洞和错误。 4.8.使用安全的数据库操作 如果使用伪协议访问数据库,应该使用安全的数据库操作函数,如PD0或预处理语句,以防止SQL注入等安全威胁。 4.9.记录和监控日志 为了及时发现和处理安全事件,建议记录和监控伪协议访问的日志。可以使用日志分析工具或安全监控系统来实现。 总结起来防御PHP伪协议安全威胁的方法包括验证输入数据、使用白名单机制、禁用危险的伪协议、不动态拼接URL、使用安全的文件访问函数、限制文件访问权限、定期更新和维护、使用安全的数据库操作、记录和监控日志等。通过综合使用这些方法可以有效减少伪协议带来的安全风险,保护系统和用户的数据安全。 五、总结 单纯看伪协议利用与之前的文件包含漏洞及其相似但是在真实环境中是对用户输入进行了过滤替换的在使用漏洞就需要不断考虑如何绕过这些过滤条件。只要我们开发过程中对于使用了伪协议这些函数的时候一定要严格对用户参数进行过滤避免一时偷懒导致服务器被黑其实最终难逃其就。如有还不太理解或有其他想法的小伙伴们都可以私信我或评论区打出来哟如有写的不好的地方也请大家多多包涵。
http://www.yutouwan.com/news/16183/

相关文章:

  • 网站制作者素材视频 素材库
  • 建一个手机网站多少钱小锋云主机
  • vs2017 网站开发环境社区团购系统开发
  • 装修队做网站铜仁市住房和城乡建设厅网站
  • 最新微网站建设价格yfcms企业网站建设
  • 怎么做套系网站ui网页设计论文
  • 手机网站大全123456站点
  • 北京建设公司网站动物大联盟微信小程序入口
  • qq刷赞网站怎么做简单网站制作
  • 上海哪家网站建得好网站源码建设模板
  • wordpress是建站最快的上海有实力的seo推广咨询
  • 网址怎么申请注册网站优化主要内容
  • 做go富集的网站下一页p30
  • 广东专业移动网站建设哪家好58同城的网站怎么做的
  • 做外贸网站费用17173游戏网
  • 如何做单位网站湖南省建设信息网站查询
  • 学网站建设需要多久asp网站安全
  • 网站关健词排名新闻静态网站模板
  • 徐州如何提高网站建设做水果的有什么网站
  • 汶上网站建设网站建设经验交流
  • wordpress小工具用不百度seo优化教程免费
  • 网站seo怎么优化wordpress无法安装
  • 词条有哪些网站可以做建设优化网站
  • 响应式网站开发报价网站直播间 是怎么做的
  • 免费的游戏网站建设做app网站的软件
  • 深圳建设交易信息网站广告设计怎么接单
  • 网站制作简单协议杭州 网站开发公司
  • 注册网站需要多少wordpress 分类列表插件
  • 群晖可以做网站吗装修网站排行榜前十名有哪些
  • h5〃wordpress网站优化建设安徽