昨天遇到个站,非常奇葩,把客户的评论写到文件里面,而且开了报错。所以就很容易地看出了那个文件的源码,大概是这样的:
所以,我就想,能不能把那个.txt截断,然后先后在本地搭建了Windows环境和centos环境。
win下的结果:
发现在windows下可以使用“:”截断后面的.txt,让上传的文件变成了.php,原因是windows不允许”:”等一些特殊符号存在于文件名中,在linux中则可以存在。
之所以说鸡肋,是因为这样并没有什么卵用,只是上传了个php文件而已,file_put_content函数相当于是fopen,fwrite,fclose的打包函数,但是由于并不存在”2-1.php:.txt”文件,尽管fopen函数写了个文件名到文件夹里,不过fwrite函数无法将内容写入该文件中,因此该文件只能是空文件。
会不会覆盖其他文件呢?我试了一下,对原文件内容似乎也没有影响,我的notepad++还是提示该文件已更改,是否reload,reload以后,发现内容并没有改变。
本文始发于微信公众号(T00ls):【奇技淫巧】PHP file_put_content函数写文件鸡肋绕过
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论