Pass-12
白名单和黑名单
白名单:设置能通过的,白名单以外的不能通过。
黑名单: 不能通过,除黑名单以外可以通过。
使用白名单,只允许jpg,png,gif,pass路径可控就很好处理了。
理解原理:$_GET[‘save_path’]函数是文件最终存储路径。代码里面拼接了一些随机字符,我们可以上传1.jpg,而在 save_path这个最终保存路径函数下面保存为1.php并加上%00来隔断后面的随机字符,这样实际存储到服务器上面路径上就是1.php的后缀了。
这里利用的是00截断。即move_uploaded_file函数的底层实现类似于C语言,遇到’\0’会截断。
在url中%00等价于ascii码中的0,表示字符串结束,读取结束。
截断条件:
1 | 1、php版本小于5.3.4 |
上传白名单类型文件,抓包,在路径上添加ant.php%00
页面出错
把特殊符号删掉即可连接。
文件早已成功上传。也可以直接访问ant.php连接。
上传白名单类型文件,抓包,在路径上添加ant.php%00
页面出错
把特殊符号删掉即可连接。
文件早已成功上传。也可以直接访问ant.php连接。
Pass-13
请求方式为POST,这里需要将%00url解码,post不像get可以自己解码。
,成功上传。
Pass-14
gif头文件绕过,在一句话木马加GIF89a
成功上传。
制作图片木马
先找到一个图片和制作一句话木马(这里可以以txt格式,php格式的文件都可以,我就用php的。)
因为这里的图片放在桌面,我们要在桌面的位置打开cmd进行操作。
使用copy命令制作,a表示ascii码文件,b表示二进制文件。
如果php文件在前,jpg图片内容会复制在其后面,会出错。
如果jpg在前面,php一句话木马会复制在jpg内容后面,图片内容不会出错。
如果两者交换文件类型图片都无法正常显示。
制作成功:
无法显示。
这里不能直接连接图片获得websell,需要解析图片,我们通过文件包含漏洞解析。
建议看一下:https://www.jianshu.com/p/3514f0fd79f7
在upload目录下新建一个php文件写下:<?php $file=$_GET['page']; include($file); ?>
添加include.php这个访问路径,把图片解析成一句话木马。
连接成功。
Pass-15
提示:本pass使用getimagesize()检查是否为图片文件!
了解函数:用于获取图像大小及相关信息,成功返回一个数组,失败则返回 FALSE 并产生一条 E_WARNING 级的错误信息。
这里特别的是它会检查图片内容,所以在copy图片马的时候,不能破坏图片内容,copy 1.jpg/b + 2.php/a 666.jpg
制作后,图片还是可以正常显示,用记事本打开内容,一句话木马在最末尾。
a表示以ascii写入,b表示二进制。
Pass-16
这里需要开启php_exif模块,新版的phpstudy没有那个插件,我就下回旧版的,上传图片马即可,十四至十六差不多,只是用了不同的函数检查,
都通过文件包含漏洞将图片解析,不同图片类型上传方式也是一样。
Pass-17(二次渲染)
二次渲染:根据用户上传的图片,生成新的图片加入数据库,把原上传的图片删除。
先从gif类型图片马上传,上传成功,但是中国蚁剑连接失败,查看一下上传后图片的内容,一句话木马不见了,被二次渲染了。
原图片的一句话木马是在末尾的,前面我们也有查看过。
先下载一个十六制编辑器windex,找到两个图片哪一个位置没有变化,把php代码写进去即可。
可以连接成功,代码被执行了。
还有两种类型,都需要写脚本,相对比较复杂,这里就借鉴大佬的了:https://xz.aliyun.com/t/2657#toc-13