PHP特性(安全相关)

3 篇文章 1 订阅
2 篇文章 0 订阅

这部分内容可能比较杂,会更新着记录

多后缀:
apache对于文件后缀的解析顺序是从后往前,直到碰到一个它可以解析的合法字符段为止。
apache认为文件的后缀名可以有多个,其解析后碰到相应的类型,并调用对应的执行模块。
在module模式下碰到.php.xxx时,虽然apache可以将其解析为php文件,但是php执行部分不认识,但他不报错,而是返回文件本身。
在fastCGI模式下,PHP执行模块会报错,此时返回500。
冒号截断:
在windows中
NTFS流冒号截断
利用冒号":"截断文件名,可以生成空文件。

如上传"test.asp:1.jpg"文件,会生成一个名为"test.asp"的空文件,原理是利用Windows的NTFS可替代数据流的特性。另外,

":"截断操作
是优先级高于会报错的字符(0x00除外)的,会先截断,只要报错字符在":“后面,系统是不会报错的。
如果”:“是文件名的最后一个字符,则不会截断,会报错
一个文件名中如果包含1个以上的”:"号,也是会报错

PHP 和 Windows系统的共同作用特性
以下几个符号在php和Windows环境的共同作用下,有等价的效果(iis apache都有):

双引号">" 点号"."
大于符号">" 问号"?"
小于符号"<" 星号"*"

所以先上传一个名为 test.php:.jpg 的文件,实际会在Windows系统上产生一个test.php的空文件;

然后再次上传一个名为 test.<<< 文件,就可以追加shell内容到test.php文件中。

php7的move_uploaded_file($temp_file, $img_path)函数检测img_path(目标上传路径)的合法性,如果最后带有.的话会返回false

php数组是可以在GET或POST传参时生成的。$GET_[‘file’] ,?file[0]=faeafe&file[3]=ergte是可以的。
这和手动创建数组一样,只有0,3有数据
count时值为2
但是reset索引为0,end索引为3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值