C'mon See My Vulns
PHP eval(), LD_PRELOAD RCE
Problem
Solution
<?php
function do_calcs($csv){
preg_match_all("/{{([^}]*)}}/", $csv, $matches);
foreach ($matches[1] as &$val){
$csv = str_replace("{{" . $val . "}}", eval("return " . $val . ";"), $csv);
}
return $csv;
}
/* main */
if ($_SERVER['REQUEST_METHOD'] == "POST"){
if (isset($_POST['csv'])){
// do the math calculations
$csv = trim(do_calcs($_POST['csv']));
$csv = str_replace("\r\n", "\n", $csv); // replace CRLF to LF
$result = csv_parse($csv);
print_r($result);
}
else{
die("Missing param csv");
}
}
?>




Last updated