就是记录下这次的ctf过程,总的来说,亮点不在题目,而是两道题的结合。

题目分析

按照出题的思路,大致就是要我们上传一些可执行的代码,然后找出服务器上的flag文件。因此,我们这次的题目就很简单了,只需要我们绕过上传限制,并且能访问到

自己的上传的脚本就好了呀。

尝试上传

首先,我们访问ip地址是122的靶机,其界面如下:

我们先尝试将自己写好的php脚本上传,看下服务器的返回提示:

它提示我们只能上传jpg格式的文件,同时,我们也可以看出,该服务器为Nginx的,因此,我们可以利用Nginx的解析漏洞,来完成这次执行。我们直接将下图中,

1.php文件名称改为1.jpg,然后提交就可以了,看下服务器返回信息。

从图中可以看到,服务器返回了文件的存放位置,因此,我们这里就用到了Nginx的解析漏洞。

Nginx解析漏洞原理

大致原理就是,当服务器中设置了“cgi.fix_pathinfo=1”的时候,php就会以“/”作为分隔符,从最右边一个文件开始向左找去执行,因此,假设我们

上传了http://x.x.x.x/webshell.jpg

那么我们通过伪造一个不存在的文件去访问,例如http://x.x.x.x/webshell.jpg/a.php

如果服务器找不到a.php,那么就会去尝试执行a.php前面的webshell.jpg文件,因为该文件存在,所以其中的php代码会被服务器所执行。当然这里要注意漏洞的利用版本

为nginx 0.5.*

nginx 0.6.*

nginx 0.7<=0.7.65

nginx 0.8<=0.8.37

利用漏洞

因此,我们根据服务返回的文件存储路径信息,直接访问/upload/1529515750.jpg/a.php,然后得到服务器的路径信息如下:

到了这里,利用漏洞的过程已经出来了,我们只需要修改php文件代码就可以了,php的代码分别如下,通过这里的代码,我们可以找到服务器中的flag信息。

system("pwd");

?>

system("ls ../");

?>

system("cat ../flag.php");

?>

前端校验

接下来是访问123的靶机,我们其实可以很容易地看出,这是一个简单的前端校验,只需要上传的时候将后缀名改成jpg,然后通过burpsuite抓包,再将其改成php就可以

绕过限制啦。

两道题的结合

拿到了这两个flag后,就会发现,两个flag拼接在一起,就会是一段,base64加密的字符串,我们将其解密,得到如下:

因此我们发现了另一道题的ip地址,哈哈哈哈。

头文件欺骗

第三道题就用到了头文件的欺骗,利用过程都一样,这里就不重复叙述了,其实是写到这里我有点不想写了,…….

总结

emmmm,总结起来,这次的CTF让我学到了以下几个方面吧Nginx解析漏洞的条件,版本是有限制的

关于php代码的编写

文件的头文件欺骗emmmm,前天赌球,压了十块钱比利时2:0英格兰,结果赢了,翻了12倍,啊哈哈哈,简直美滋滋,第一次赌球。。。然后昨天的世界杯决赛,并没有押中,看着大家的

4:2,翻了18倍,简直羡慕,不过,权当娱乐,啊哈哈哈哈。

php 任意文件上传,任意文件上传漏洞相关推荐

  1. Struts2 - 上传任意多个文件

    Struts2 - 上传任意多个文件 一.上传单个文件 在Struts1.x中已经提供了用于上传文件的组件.而在Struts2中提供了一个更为 容易操作的上传文件组件.所不同的是,Struts1.x的 ...

  2. wordpress漏洞上传php文件,WordPress wp-admin/includes/file.php任意文件上传漏洞

    影响版本: WordPress <= 2.8.5漏洞描述: WordPress是一款免费的论坛Blog系统. WordPress中负责上传文件的代码如下: wp-admin/includes/f ...

  3. Google Doc API研究之一:模拟页面上传任意类型文件

    一直以来想要做个程序,将google doc用作网盘,程序做 的差不多了才发现不是所有的人都可以上传任意类型的文件,只有商业用户才可以.商业用户是要交钱的的,这与我们倡导的免费精神相关太远.怎么办,我 ...

  4. Struts2教程7:上传任意多个文件

    2019独角兽企业重金招聘Python工程师标准>>> 一.上传单个文件 上传文件是很多Web程序都具有的功能.在Struts1.x中已经提供了用于上传文件的组件.而在Struts2 ...

  5. 通达OA未授权任意文件上传及文件包含导致远程代码执行漏洞

    0x00 前言 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台. 0x01 漏洞简 ...

  6. 通达OA未授权任意文件上传及文件包含漏洞分析学习

    今年3月份通达OA爆出了文件上传和文件包含漏洞,网络上很多复现和分析的博客,今天我也来试着分析分析,据360灵腾安全实验室判断该漏洞等级为高,利用难度低,威胁程度高,所以可能比较适合代码审计的新手来练 ...

  7. 代码审计:YCCMS 代码执行 文件上传 任意文件删除

    代码审计:YCCMS 代码执行 文件上传 任意文件删除 YCCMS 审计准备 代码审计 代码执行漏洞 文件上传漏洞 任意文件删除漏洞 YCCMS YCCMS是一款PHP版轻量级CMS建站系统,程序页面 ...

  8. JS任意截图并上传图片,上传视频、上传文件

    ** JS截图上传图片 ** 在前端WEB开放过程中,经常使用上传图片.上传视频.上传音频以及上传其他文件等,通常都使用到各种上传插件,但是很多插件只是单纯的上传文件,不具备图片截图,即使有也很传统, ...

  9. 漏洞分析: WSO2 API Manager 任意文件上传、远程代码执行漏洞

    漏洞描述 某些WSO2产品允许不受限制地上传文件,从而执行远程代码.以WSO2 API Manager 为例,它是一个完全开源的 API 管理平台.它支持API设计,API发布,生命周期管理,应用程序 ...

最新文章

  1. 宁波机器人餐厅需要预约吗_可怕!顺德首家“机器人餐厅”开业!厨师要失业了吗?...
  2. mysql的优化总结
  3. HTTP与HttpServlet
  4. listview 刷新结束 监听_Flutter 开发从 0 到 1(四)ListView 下拉加载和加载更多
  5. 【卷积神经网络】ResNet翻译详解
  6. 程序员加班一周休病假,犯了小错误遭开除,老板怒斥程序员不中用
  7. 并发编程的艺术——chap1
  8. 单台主机一键编译部署LAMP+wordpress+discuz系统的shell脚本
  9. 关于Cluster 脑裂的文章
  10. golang使用go-sql-driver实现mysql增删改操作
  11. 第8章 集成Log4J日志
  12. Nginx自动跳转到带www域名规则配置、Nginx多域名向主域名跳转
  13. IA-32:Privilege level
  14. 日行一善的100种方式
  15. excel删除重复的行_如何在Excel中删除重复的行
  16. 关于“C2248 QString::QString 无法访问private成员的问题”
  17. 直播延时是如何产生的?4G摄像头无插件播放视频流媒体服务器EasyDSS超低延时直播的实现方案
  18. 给领导敬酒杯子非要低于领导吗?
  19. suse账号解锁_Linux多次登录失败用户被锁定使用Pam_Tally2解锁
  20. 小米6怎样打开位置服务器,小米手环6gps定位功能在哪打开?经常无法定位怎么办...

热门文章

  1. 2018html游戏引擎,跨平台三维游戏引擎Unity Pro 2018.1 Win x64
  2. Windows下在Django中创建项目时ImportError: No module named django.core解决方法
  3. R语言包_knitr
  4. 高通量测序技术的原理及各平台优势和实践应用的分析
  5. 如何用c语言打出 * * * * * * * * * * * * *?
  6. 多倍体单体型组装算法研究
  7. sound.js # pixi辅助插件 — 中文翻译教程
  8. OpenGL ---渲染流水线之世界矩阵,相机变换矩阵,透视投影变换矩阵
  9. 我看过的密码学方面的好文章
  10. nacos项目搭建(服务提供者,服务消费者)