首先管理页面进入到云平台项目管理中心

发现下面可以查看源码,点击view-source:

这个直接就绕过去了

看第二个

第二个需要满足$_SESSION['admin']==true才行,因此看看第三个php

满足这个 isset($_GET[id]) && floatval($_GET[id]) !== '1' && substr($_GET[id], -1) === '9'即可让$_SESSION['admin']==true

大概的意思就是存GET变量id,并且他的浮点数不等于1,且最后一位为9的字符串,‘1-9’即可满足

构造payload:

http://111.198.29.45:31864/index.php?page=flag.php&id=1-9

成功绕过,然后看看第二段代码,意思就是以post方式上传文件,post变量file代表文件名,con代表文件内容,且后缀名经过正则过滤了,然后上传路径原本在根目录下的/backup/目录下面,由于加了个chdir()函数,因此将根目录后面加上了/uploaded/目录,然后在跟/backup/目录。

最后的上传目录为:

/uploaded/backup/

正则的话是判断.之后的字符,因此我们可以利用‘/.’的方式绕过,这个方式的意思是在文件名目录下在加个空目录,相当于没加,因此达到绕过正则的目的。

post数据的payload为:

file=p.php/.&con=<?php phpinfo();?>

访问/uploaded/backup/p.php

已成功上传,那么直接写一句话上传,菜刀连接

找到flag.php打开后得到flag值。

最新文章

  1. 你不可不知的HTML优化技巧
  2. 链接器工具错误 LNK2026 XXX模块对于 SAFESEH 映像是不安全的
  3. asp.net 动态添加自定义控件
  4. kernel32.dll出错解决方案
  5. python多线程机制
  6. JEESZ分布式框架简介
  7. Python项目实战:福布斯系列之数据采集
  8. js中多维数组转一维
  9. Vue-cli 模拟数据库
  10. redis 3.2 新数据结构:quicklist、String的embstr与raw编码方式分界点
  11. 网络编程 —— UPD
  12. 通过JPA注解获取某个类的主键字段
  13. junit 测试quartz
  14. ARP工作过程、ARP欺骗的原理和现象、如何防范ARP欺骗
  15. MVC3学习:实现文章上一篇下一篇链接
  16. 初试PyOpenGL三 (Python+OpenGL)GPGPU基本运算与乒乓技术
  17. elasticsearch Geo Distance Query
  18. virtualbox+vagrant学习-2(command cli)-16-vagrant snapshot命令
  19. 数据结构与算法之排序(4)希尔排序 ——in dart
  20. App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure.

热门文章

  1. 【译文连载】 理解Istio服务网格(第二章 安装)
  2. 搭建 Kubernetes 集群
  3. sparc v8 汇编语言语法
  4. Visual C# 2015调用SnmpSharpNet库实现简单的SNMP元素查询
  5. k8s系列--- dashboard认证及分级授权
  6. MySQL中大数据表增加字段,增加索引实现
  7. 使用ASDM 管理 ciscoASA设备
  8. Ts环境搭建
  9. 利用django打造自己的工作流平台(三):团队成员任务跟踪系统
  10. HDU 2018 DP