解题思路

打开网页发现只是简单做了一个上传界面,朴实无华

上传一个php文件,发现非法后缀。

上传一个.htaccess文件,发现,爆出很重要的信息

exif_imagetype函数通过检测文件头来检测是否是规定的格式,这里我们只需构造头文件为GIF98a,内容自定的图片马,即可绕过函数限制

上传后发现<?被禁用,使用另外的方法。

提交后发现上传成功,路径为:uploads/adeee0c170ad4ffb110df0cde294aecd

现在思考如何利用图片马。需要有一个文件能包含我们的图片马,或者类似的功能

发现该路径下有index.php文件,这里有点奇怪。为什么此处会有index.php。在网上搜索其他构造php后门的方法。

发现此篇,p神写的.user.ini.构造后门

具体原理看p神的文章就可以了,我这里只谈如何利用

.user.ini. 构造后门

  • 什么是.user.ini.?

.user.ini实际上就是一个可以由用户“自定义”的php.ini,我们能够自定义的设置是模式为“PHP_INI_PERDIR 、 PHP_INI_USER”的设置。

把他理解为通过此文件,我们可以自定义php.ini中的内容

  • 为什么能被利用?

除了主 php.ini 之外,PHP 还会在每个目录下扫描 INI 文件,从被执行的 PHP 文件所在目录开始一直上升到 web 根目录($_SERVER['DOCUMENT_ROOT'] 所指定的)。如果被执行的 PHP 文件在 web 根目录之外,则只扫描该目录。

在 .user.ini 风格的 INI 文件中只有具有 PHP_INI_PERDIR 和 PHP_INI_USER 模式的 INI 设置可被识别。

即php设定为会再每个目录下自动扫描ini文件。

  • 如何构造后门?

    .user.ini. 可以指定auto_prepend_file。此设定作用为指定一个文件,自动包含在要执行的文件前。可以理解为在文件前自动包含了设定的文件

于是我们清晰了思路,再构造一个.user.ini.文件

上传成功

访问上传路径下的index.php文件,获得flag

总结思路

  1. 确定该用什么方法上传后门,改头文件,后缀等
  2. 使用.user.ini.方法包含后门,确保其可以利用
  3. 访问后门,获取flag

知识点

  • 文件上传相关bypass
  • .user.ini.构造后门

参考

p神文章

最新文章

  1. Java中引用类型变量,对象,值类型,值传递,引用传递 区别与定义
  2. 整合Apache与PHP教程
  3. CentOS 实现自动登陆
  4. 30天,O2O速成攻略【7.19深圳站】
  5. Redis系列-存储篇string主要操作函数小结
  6. 感知机学习算法 python实现
  7. 如何深入学习CSS
  8. python+selenium自动化软件测试(第9章) :Logging模块
  9. hadoop的安装和配置(三)完全分布式模式
  10. kafka集群参数解析server.properties
  11. Equivalent Sets HDU - 3836 (Tarjan)
  12. 【总结 】550,535,553 Mail from must equal authorized user— jenkins(hudson) email163邮箱和26邮箱成功配置总结
  13. FineUI 单击菜单页面内容完全刷新,关闭Tab
  14. dos命令行实践
  15. 2018-2019 ACM-ICPC Southeastern European Regional Programming Contest (SEERC 2018) Solution
  16. java冒泡排序-选择排序-插入排序-使用API中文文档直接调用函数
  17. 优秀的WEB前端开发框架:Bootstrap!
  18. Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
  19. 十二 web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies
  20. PHP正则经典漏洞

热门文章

  1. 虚拟化技术之kvm WEB管理工具kimchi
  2. iNeuOS工业互联平台,WEB组态(iNeuView)集成实时预警和报警柱状图
  3. wordpress建站如何用SMTP配置邮件通知
  4. 百度统计可以查看用户IP
  5. Qt QString转char[]数组
  6. 模型层中QuerySet的学习
  7. JVM基于栈的解释器执行原理
  8. e3mall商城总结12之购物车的实现、以及购物车小计问题、json406报错
  9. Tornado + vue.js 前后端分离运行脚本
  10. 【JAVA】给大家推荐一道有意思的java测试题。你知道答案吗?