文件包含

文件包含local

 首先试了试发现可以../,这样的话就可以读取内容了

文件包含(remote)

首先先

 把他开开。然后测试了一下常规输入发现URL为http://172.22.38.205/pikachu/vul/fileinclude/fi_remote.php?filename=include%2Ffile1.php&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

就是说include/file1.php&submit=提交查询

因为开启了allow_url_include所以直接拿url测试

 发现成功,那这个网页或许能够拿来xss。往里面插就完了

文件下载

首先抓包

在这里作为应该是把filename作为参数传上去

那就直接把filename=../../fll.txt下载了。发现可以。

 文件上传之客户端check

首先先随便试试

 发现在浏览的位置被提醒文件类型问题但是实际上他并没有权限去重置提交表单,所以依然可以随便上传

 这种绕过方法估计和对方想的不太一样

那就好好来吧

找这里checkFileExt(this.value)

 这里发现的传递只能是GIF PNG JPG中的一个

然后在这边再抓包改成12.php就完事了。

MINE TYPE

因为是MINE类型。所以要抓包修改content type

 修改成

 这样就完事了

 getimagesize

还是不管怎么说先放点什么试试

 改一下看看

 php getimagesize是一个用来获得图片参数的函数

他的arry差不多是这样的

Array
(
    [0] => x
    [1] => y
    [2] => z
    [3] => width="x" height="y"
    [bits] => 8
    [mime] => image/png
)
  • 索引 0 给出的是图像宽度的像素值
  • 索引 1 给出的是图像高度的像素值
  • 索引 2 给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
  • 索引 3 给出的是一个宽度和高度的字符串,可以直接用于 HTML 的 <image> 标签
  • 索引 bits 给出的是图像的每种颜色的位数,二进制格式
  • 索引 channels 给出的是图像的通道值,RGB 图像默认是 3
  • 索引 mime 给出的是图像的 MIME 信息,此信息可以用来在 HTTP Content-type 头信息中发送正确的信息,如: header("Content-type: image/jpeg");
做一个图片马

 那就弄一个

 http://172.22.38.205/pikachu/vul/fileinclude/fi_local.php?filename=../../unsafeupload/uploads/2019/12/27/2907935e05aa6adb014892322226.jpg&submit=%E6%8F%90%E4%BA%A4&y=whoami

然后就成了
12-27 11:55