03-27-2014, 04:03 PM
Assalamualaikum wr.wb
selamat siang semua
kali ini saya mau share kembali
sebelumnya setelah om @zee eichel membagi trik and tips tentang backdooring di thread berikut
kali ini saya akan berbagi bagai mana cara mendeteksinya dan mencegahnya
[hide]
Persiapan percobaan :
1. index.php/index.html berisikan script html untuk form upload
2. File proses.php untuk menerima data post dari file index.html/index.php
let's try it
ini gambar yang akan di upload
gambar tersebut bersih dari script
hasil upload tanpa manipulasi image
kemudian
rubah baris code di proses.php pada bagian ini
menjadi
sisip kan script php ke image dengan perintah
saya sisipkan
hasilnya adalah
secarang bagaimana mendeteksi image tersebut telah dimanipulasi berisikan php script
rubah code proses.php menjadi
hasilnya adalah seperti ini
bagaimana menghilangkannya?
menghilangkannya dengan cara meng create ulang image tersebut dengan php gd extension
berikut code untuk menghilangkannya
hasilnya sebagai berikut :
jadi kesimpulannya untuk mencegah backdoor image masuk, jangan gunakan move_upload() untuk menyimpan file upload, tapi dengan cara meng create ulang image tersebut.
[/hide]
Selamat mencoba..
Best regards
Junior Riau
selamat siang semua
kali ini saya mau share kembali
sebelumnya setelah om @zee eichel membagi trik and tips tentang backdooring di thread berikut
kali ini saya akan berbagi bagai mana cara mendeteksinya dan mencegahnya
[hide]
Persiapan percobaan :
1. index.php/index.html berisikan script html untuk form upload
PHP Code:
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<form method="post" action="proses.php" enctype="multipart/form-data">
<input type="file" name="file"/><br/>
<input type="radio" name="for" value="Plugin"/>Plugin<br/>
<input type="radio" name="for" value="Theme"/>Theme<br/>
<input type="submit" name="submit"/>
</form>
</body>
</html>
2. File proses.php untuk menerima data post dari file index.html/index.php
PHP Code:
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
if(isset($_FILES['file'])){
$exif = exif_read_data($_FILES['file']['tmp_name'], 0, true);
echo "File Name : ".$_FILES['file']['name']."<br />\n";
echo "File exif data : <br/>\n";
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
echo "$key.$name: $val<br />\n";
}
}
}
ini gambar yang akan di upload
gambar tersebut bersih dari script
hasil upload tanpa manipulasi image
kemudian
rubah baris code di proses.php pada bagian ini
PHP Code:
echo "$key.$name: $val<br />\n";
PHP Code:
echo "$key.$name: ".htmlspecialchars($val)."<br />\n";
sisip kan script php ke image dengan perintah
PHP Code:
jhead -ce cp.jpg
PHP Code:
<?php phpinfo(); ?>
hasilnya adalah
secarang bagaimana mendeteksi image tersebut telah dimanipulasi berisikan php script
rubah code proses.php menjadi
PHP Code:
if(isset($_FILES['file'])){
$exif = exif_read_data($_FILES['file']['tmp_name'], 0, true);
echo "File Name : ".$_FILES['file']['name']."<br />\n";
echo "File exif data : <br/>\n";
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
if(strcasecmp($key, "COMMENT")==0){
echo "Comment exif data found <br/>";
echo "value : ".htmlspecialchars($val);
}
}
}
}
hasilnya adalah seperti ini
bagaimana menghilangkannya?
menghilangkannya dengan cara meng create ulang image tersebut dengan php gd extension
berikut code untuk menghilangkannya
PHP Code:
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
if(isset($_FILES['file'])){
$exif = exif_read_data($_FILES['file']['tmp_name'], 0, true);
echo "File Name : ".$_FILES['file']['name']."<br />\n";
echo "File exif data : <br/>\n";
foreach ($exif as $key => $section) {
foreach ($section as $name => $val) {
if(strcasecmp($key, "COMMENT")==0){
echo "Comment exif data found <br/>";
echo "value : ".htmlspecialchars($val);
}
}
}
$imageType;
$image;
echo "<br/><br/>Re-create image : <br/><br/>";
$temp=getimagesize($_FILES['file']['tmp_name']);
$imageType=$temp[2];
if( $imageType == IMAGETYPE_JPEG ){
$image = imagecreatefromjpeg($_FILES['file']['tmp_name']);
imagejpeg($image,"upload/".$_FILES['file']['name']);
}
elseif( $imageType == IMAGETYPE_GIF ){
$image = imagecreatefromgif($_FILES['file']['tmp_name']);
imagegif($image,"upload/".$_FILES['file']['name']);
}
elseif( $imageType == IMAGETYPE_PNG ){
$image = imagecreatefrompng($_FILES['file']['tmp_name']);
imagepng($image,"upload/".$_FILES['file']['name']);
}
echo "File exif data : <br/>\n";
$new= exif_read_data("upload/".$_FILES['file']['name'], 0, true);
foreach ($new as $key => $section) {
foreach ($section as $name => $val) {
echo $key." ".$name ." : ".$val."<br/>";
}
}
}
hasilnya sebagai berikut :
jadi kesimpulannya untuk mencegah backdoor image masuk, jangan gunakan move_upload() untuk menyimpan file upload, tapi dengan cara meng create ulang image tersebut.
[/hide]
Selamat mencoba..
Best regards
Junior Riau