文件名截断漏洞原理分析

本文深入探讨文件名截断漏洞,通过三个具体的例子展示攻击者如何利用这种漏洞读取非PHP文件内容。举例说明了%00、英文句号和反斜杠、问号截断三种方式,并指出这些方法在不同PHP版本中的可行性。
摘要由CSDN通过智能技术生成

文件名截断漏洞原理分析

By HelloWeb 2017-3-7

如下的PHP程序中(例子1),存在文件名被操控的漏洞,其代码如下:
<?php
 $name=$_GET['name'];
 $filename=$name.'.php';
 include $filename;
?>
例子1:文件名被操控的PHP程序

例子1的基本程序逻辑就是通过用户输入的文件名还包含对应文件后缀为PHP的文件,如果在文件当前目录下包含一个PHP文件为a.php,代码如下:

<?php
   print("OK! The right file.<br>");
?>


同时,在该目录下还包含一个文件名为secret.txt文件,其中包含的信息如下:This is a secret file.

根据例子1的程序逻辑,如果输入URL:http://127.0.0.1/test/t1.php?name=a,则输出结果为:OK!The right file.

对于攻击者而言,当前想通过该漏洞来读取secret.txt中的信息,但是该文件不是PHP程序,要想达到目标,就要利用文件名字截断漏洞了。

第一种方式:%00

%00表示字符串结尾

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值