考点
hash_hmac函数绕过、RCE、绕过
思路
- 先把音乐download下来,用strings命令查看一下有没有源码信息隐藏,在最后面发现源码信息
- 要RCE,首先需要满足
$hh !== $_POST['Black-Cat-Sheriff']
, 然后执行exec("nc".$_POST['One-ear']);
,参数可控,hh 就是php解析器根据我们输入的内容生成的并赋值的,Black-Cat-Sheriff 是我们自己传的参数- 我们看看hash_hmac函数利用方式,当$binary设置为true时,为原始二进制数据;设置为false时,输出为十六进制值
easy_bypass
Payload
strings 音频后得到的源码
if(empty($_POST['Black-Cat-Sheriff']) || empty($_POST['One-ear'])){
die('
$clandestine = getenv("clandestine");
if(isset($_POST['White-cat-monitor']))
$clandestine = hash_hmac('sha256', $_POST['White-cat-monitor'], $clandestine);
$hh = hash_hmac('sha256', $_POST['One-ear'], $clandestine);
if($hh !== $_POST['Black-Cat-Sheriff']){
die('
echo exec("nc".$_POST['One-ear']);
Payload