Test tool & Cara Patch Apache, Varnish dari HTTPoxy Vulnerability

Sekitar tanggal 18 Juli 2016 terdapat kabar bahwa ditemukan celah kemananan HTTPOXY yang berefek pada applikasi yang menjalankan cgi dan artinya permasalahan ini berimbas pada semua webserver termasuk Apache, Nginx, Varnish dan termasuk kebanyakan applikasi berbasis PHP.

Pada pembahasan kali ini kami akan menginformasikan bagaimana cara mengetahui apakah webserver anda terpengaruh dengan celah keamananan HTTPOXY ini ataukah tidak selanjutnya apabila terpengaruh bagaimana cara patch webserver khususnya apache dan varnish cache

Upload HTTPoxyTest.php

Buatlah file bernama httpoxytest.php dan isi dengan kode berikut ini

<?php

if (!function_exists('getallheaders'))  {
    function getallheaders()
    {
        if (!is_array($_SERVER)) {
            return array();
        }

        $headers = array();
        foreach ($_SERVER as $name => $value) {
            if (substr($name, 0, 5) == 'HTTP_') {
                $headers[str_replace(' ', '-', ucwords(strtolower(str_replace('_', ' ', substr($name, 5)))))] = $value;
            }
        }
        return $headers;
    }
}



if (isset($_GET['check']) && $_GET['check'] == 'yes')
{
	$hs = getallheaders();

	if (isset($hs['Proxy']) || isset($hs['proxy']))
		echo "bad";
	else
		echo "good";
	exit(0);
}


$http='http';
if ($_SERVER['HTTPS'] == 'on')
	$http='https';

$url = "$http://".$_SERVER['HTTP_HOST'].$_SERVER["SCRIPT_NAME"]."?check=yes";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Proxy: evil"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$r = curl_exec($ch);
if ($r === false)
	echo curl_error($ch);

if ($r == 'good')
{
	?><b>Good!</b>  Proxy has been filtered out.  No need to do anything<?php
}
elseif ($r == 'bad')
{
	?><b>Bad!</b> You'll need to filter out the proxy header in your configs.<?php
}
else
{
	?>No idea.. something went wrong:<br><textarea cols=80 rows=10><?=$r?></textarea><?php
}


curl_close($ch);


?>

Setelah anda membuat file tersebut kemudian akses.

Apabila hasilnya “bad” artinya webserver anda vulner dan berikut ini adalah cara melakukan patch nya.

Cara Patch Apache HTTPoxy Vulnerability

Anda tinggal tambahkan di konfigurasi apache bisa di

nano /etc/apache2/conf-available/httpoxy.conf

atau yang menggunakan Directadmin bisa disini

nano /etc/httpd/conf/extra/httpd-default.conf

Kemudian tambahkan dibagian bawah

<IfModule mod_headers.c>
RequestHeader unset Proxy early
</IfModule>

dan restart apache

Sekali lagi test ulang dengan mengakses script httpoxytest.php

Cara Patch Varnish HTTPoxy Vulnerability

Untuk varnish cache anda cukup menambahkan baris berikut ini

sub vcl_recv {
unset req.http.proxy;
}

Kami telah melakukan patch pada apache dan varnish dari httpoxy vulnerability sudah kami test dan berhasil

Selamat mencoba dan jika tidak berhasil atau ada kendala silahkan komentar dibawah.

Sumber

  1. Directadmin Forum
  2. HowtoForge
Share your vote!


Do you like this post?
  • Fascinated
  • Happy
  • Sad
  • Angry
  • Bored
  • Afraid

Leave a Reply

Your email address will not be published. Required fields are marked *