目录
知识点
详细点
文件二次渲染
php删除规则
例题
CTF-Web入门-162
CTF-Web入门-163
CTF-Web入门-164
CTF-Web入门-165
CTF-Web入门-166
CTF-Web入门-167
CTF-Web入门-168
CTF-Web入门-169-170
1、文件上传-二次渲染
2、文件上传-简单免杀变异
3、文件上传-.htaccess妙用
4、文件上传-PHP语言特性
1、检测层面:前端,后端等
2、检测内容:文件头,完整性,二次渲染等
3、检测后缀:黑名单,白名单,MIME检测等
4、绕过技巧:多后缀解析,截断,中间件特性,条件竞争等
后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码(解析漏洞除外)
如:jpg图片里面有php后门代码,不能被触发,所以连接不上后门
如果要图片后缀解析脚本代码,一般会利用包含漏洞或解析漏洞,还有.user.ini&.htaccess
1、判断上传前和上传后的文件大小及内容
2、判断上传后的文件返回数据包内容
1、什么都删除:文件实际上是删除成功的,但是被系统或者后台删除,那么在没删除的之前,文件时存在,可以进行正常的操作
2、后门代码删除:如例题ctf-163题,直接删除png包含的路径,可以改成.user.ini进行包含
条件竞争:如果上传的文件在upload路径下会被删除,那么可以在删除前一直访问这个路径下要上传的文件,并且传输代码,利用代码创建一个新文件。只要一直访问路径并传输代码并且旧文件上传成功一秒那么久可以执行成功,将新文件放到根目录或者不会自动删除的目录下或者直接利用代码查看flag。
思路:该关有头文件判断,并且过滤的大量的字符,并且过滤了字符点。那么可以让user.ini直接包含png文件(不添加后缀名),因为大量的过滤,png文件里不能填写后门代码,那么可以直接包含一个路径(因为过滤点,所以要将url转换为数字形式,转换链接:https://www.bejson.com/convert/ip2int/),在这个路径上填写后门代码。
思路:该关方法与162关相同,唯一差别在于该关存在删除规则。
直接上关键步骤:
思路:该题考点是对png图片的二次渲染。因为图片上传后经过渲染,所以内容发生了改变。那么后门脚本就无法执行
在上传两个不同的png后发现,一个成功但是另一个会失败,说明有上传文件大小的限制,那么可以初步推断有二次渲染。并且查看文件上传后的大小,明显不太一样
利用c32asm明显发现图片发生了变化,这就代表图片进行了二次渲染
那么可以利用php脚本代码生成渲染好的图片,并且可以明显发现渲染后的图片带有后门脚本。
利用get和post后门脚本进行传参访问,burp抓包获取flag
思路:该题考点为jpg的二次渲染
上传jpg图片,访问图片并进行抓包,通过回显可以发现是通过php的内置函数进行二次渲染
利用php的脚本对图片进行渲染,并会在目录下形成一个payload图片
查看图片可以发现带有后门脚本
直接上传图片,利用后门代码获取flag即可
思路:该关只允许上传zip文件,那么将zip文件的压缩包内容改为后门脚本即可
思路:.htaccess可以通过设置实现文件解析配置,将.png后缀的文件解析成php:AddType application/x-httpd-php .png
直接上传jpg文件并修改内容为后门脚本,上传.htaccess文件,让jpg文件内容以php代码执行。
思路:该题考点是面杀后门,过滤system。那么只要利用变量将system拆分再重组即可
思路:构造.user.ini利用条件:需要上传index.php 内容随意 index可以自动调用.user.ini
上传.user.ini包含日志:auto_prepend_file=/var/log/nginx/access.log
访问地址带后门UA头写入日志:=eval($_POST[x]);?>
写入index.php内容任意,为了可以调用user.ini文件。在让user.ini文件包含日志文件