ctfshow web入门文件上传

您所在的位置:网站首页 图片webshell ctfshow web入门文件上传

ctfshow web入门文件上传

2023-12-13 12:14| 来源: 网络整理| 查看: 265

web151

上传一个png的一句话木马,并用bp抓包

image-20211019154119862

找到木马路径upload/shell.php

关闭bp,观察文件是否上传成功,上传成功后会返回上传路径

image-20211019154411940

文件上传成功后,直接访问upload/shell.php

shell=system('tac ../f*');

image-20211019154454917

web152

与上一题做法一样

web153

先看一下源码,php文件上传不了,可以传png文件

php.ini是php的一个全局配置文件,对整个web服务起作用;而.user.ini和.htaccess一样是目录的配置文件,.user.ini就是用户自定义的一个php.ini,我们可以利用这个文件来构造后门和隐藏后门。 但是这种方式其实是有个前提的,因为.user.ini只对他同一目录下的文件起作用,也就是说,只有他同目录下有php文件才可以。

配置文件内容:

auto_prepend_file=filename //包含在文件头 auto_append_file=filename //包含在文件尾 //filename是你自己的文件名 为了利用auto_append_file,我们首先上传.user.ini内容为 auto_append_file=“xxx” xxx为我们上传的文件名,接着上传一个带木马的图片 因为upload有index.php,所以这个php就会添加一个include(“shell.png”),就会包含到木马,这样就在每个php文件上包含了我们的木马文件。

文件内容:

.user.ini.png 内容: auto_prepend_file="shell.png" shell.png

开始做题

先上传.user.ini.png文件,并抓包,修改名称:.user.ini

image-20211022194636869

放包

image-20211022194656139

再上传图片马

image-20211022194732546

放包

image-20211022194757512

成功上传

访问/upload/

post传入参数shell=system('tac ../flag.php');

找到flag

web154

与web153一样再来一遍,发现.user.ini文件能上传,但是上传图片马上传不成功

image-20211022195835300

应该是过滤了php

可以试试短标签

可用使用进行绕过, 等价于 //无限制 图片内容为

image-20211022200346889

1=system('tac ../flag.php'); web155

同154

web156

这次估计是过滤了[]

image-20211022200904615

可以把[]换为{},同154

image-20211022201302073

上传成功

继续同154

web157.158

在前面的基础上过滤了;在短标签里可以不要;

直接怼

直接访问/upload/

web159

这里是将()给ban了,我们采用反引号来执行命令,即

或 web160

这题在之前的基础上过滤了空格

先说第一种做法

Nginx日志的默认路径:

/var/log/nginx/

先正常上传.user.ini文件(注意里面不要有空格),然后上传图片,图片内容为

(log被过滤) 然后讲一句话写进user-agent里,再蚁剑连接,获取flag

image-20211023151930256

然后连接蚁剑

url+upload/index.php

或者将UA改为

然后直接访问/upload/

第二种

还是先上传.user.ini,再上传图片,图片内容为

然后直接访问/upload/,进行base64解码就行

web161 getimagesize(): 会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求

这道题对图片的文件头进行了检测! 所以在上题的基础上都加个 GIF89a 图片头就可以了 .user.ini也得加,图片也得加,上题的两种方法都可以

GIF89a

image-20211023153647229

web162.163

这题把flag和.给ban了,使用seesion文件包含

先上传.user.ini,内容为:

GIF89A auto_append_file=/tmp/sess_hacker

还是先构造一个上传seeeion文件的包

改Cookie:PHPSESSID=hacker

在123那里写入内容

访问upload/目录,目录下有index.php文件,即相当于在index.php文件中执行include /tmp/sess_hacker

对两个包进行有效载荷的设置

image-20211023171353216

线程搞到25

开始竞争,先爆post包,再爆get的包

成功竞争后得到flag

web164

考点是png图片二次渲染

二次渲染 将一个正常显示的图片,上传到服务器。寻找图片被渲染后与原始图片部分对比仍然相同的数据块部分,将Webshell代码插在该部分,然后上传。具体实现需要自己编写Python程序,人工尝试基本是不可能构造出能绕过渲染函数的图片webshell的。 大佬链接:https://www.fujieace.com/penetration-test/upload-labs-pass-16.html

首先只能上传png文件

上传图片马,发现没有办法执行

在bp上发现图片中php代码没有了,猜测是进行了二次渲染

绕过二次渲染的png脚本:

*/ //imagepng($img,'1.png'); 要修改的图片的路径,1.png是使用的文件,可以不存在 //会在目录下自动创建一个1.png图片 //图片脚本内容:$_GET[0]($_POST[1]); //使用方法:例子:查看图片,get传入0=system;post传入tac flag.php ?> ------------------------------------ 创建1.png图片成功! ------------------------------------

脚本保存为 png二次渲染.php ,进入脚本所在目录,执行命令

php png二次渲染.php c.png //c.png可以换成任何名字

创建成功后,生成一个图片文件1.png

上传该图片

查看图片并传入命令:

&0=system 1=tac f*

image-20211023205631934

使用ctrl+s将图片下载下来,记事本打开即可

image-20211023205717323

web165

image-20211023212147376

这题改成了:jpg二次渲染

绕过二次渲染的jpg脚本:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3