BUU_Web [SUCTF 2019]CheckIn

打开解题网址,一看就是文件上传:

在这里插入图片描述这里首先尝试了上传 一句话 php, 以及文本,测试后发现需要上传 jpg 格式图片,并且文件中不能含有 <? ,文件后缀不能是 php文件的所有后缀;到这里,涉及知识盲区了;翻看大佬wp 才明白这道上传题没有之前的那么简单;

  • 需要利用到一个 .user.ini 文件,以及利用GIF 文件头绕过exif_imagetype()检测;

  • 知识点
    .user.ini 文件

  • .user.ini文件是相当于由客户端控制的一个 php.ini文件,系统在执行php代码之前,会先对目录进行扫描,发现 .ini文件,则先执行 .ini文件,再执行php代码;

  • 利用:在.user.ini 文件中写入 auto_prepend_file函数或者 auto_append_file 函数;这两个函数的作用就是将 一个文件 例如 1.jpg包含到接下来要执行的php文件中去(如index.php),相当在 PHP文件中插入了一条 require(./1.jpg);

  • .user.ini利用条件
    1,服务器使用 CGI/FastCGI 模式
    2,对应目录下有可执行的php文件
    3,open_basedir没有被限制

  • auto_prepend_file 与 auto_append_file的区别
    auto_prepend_file 是在php文件加载前将 文件包含进 php文件最前面;
    auto_append_file 是在php文件加载后将文件包含进php文件末尾,(并且当文件调用了exit()时,该设置无效);
    因此通常使用 auto_prepend_file ;

  • .user.ini文件具体详情

  • .user.ini文件在渗透中的利用

  • 更多细节

解题:

既然php所有格式无法上传,只能是 jpg格式,并且不能包含 <? ,所以,可以制作一个图片马,实际上只是后缀为 jpg格式,并加上 GIF89a 文件头绕过exif_imagetype()检测:

在这里插入图片描述
同样,写一个 .user.ini文件,利用 auto_prepend_file 设置将 webshell.jpg 包含在index.php的最开头(注意这个.user.ini文件同样需要绕过 exif_imagetype()的检测):

在这里插入图片描述然后,开始上传文件,首先上传 .user.ini 文件:

在这里插入图片描述上传之后,将图片马(一句话)上传:

在这里插入图片描述访问 它给出的文件存放路径:

在这里插入图片描述看到我们写入显示的文件头了,上传成功;
到这里,有两种方法获取flag:
第一种 方法:

因为是 我的一句话木马是get方式获取参数,参数名为 cmd,所以可以构造payload:

?cmd=system('ls /');

在这里插入图片描述

?cmd=system('cat /flag');
或者 ?cmd=var_dump(file_get_contents('/flag'));

在这里插入图片描述直接在页面获取flag;

第二种方法
需要一句话木马是POST方式获取参数;
连接蚁剑,右键虚拟终端获取;
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值