Minggu, 29 Desember 2013

Tutorial Patch SQL Injections Untuk Pemula

Patching SQL Injections


Sebagai warga negara Indonesia yang baik dan dengan Etical hacking kita seharus tidak hanya bisa merusak, tapi juga bisa memperbaiki yang rusak, termasuk dalam patching Bug SQL Inections ini,

Sebelumnya Seo Killer sudah pernah membahas tentang Tutorial SQL Injections + Bypass WAF, Blind SQL Injection Versi 4


Cara Patching Bug SQL Injections


Langsung saja, saya mempunyai sebuah target website yang memiliki vuln terhadap serangan SQL Inject ini,
Tepatnya http://www.dispendakotakendari.com/profil.php?menu=tupoksi

dimana file dalam file profil.php tidak tersaring dengan baik, ini isi file profil.php
<?
        include "config.php";
        if ($_GET[menu])
        {   
            $var=$_GET[menu];
            $perintah="SELECT * FROM uraian WHERE MENU='$var'";
            $hasil=mysql_query($perintah);
            $data=mysql_fetch_row($hasil);
            echo "<h1 align='center'>$data[1]</h1><br>
                  $data[2]";
        }
           
     if ($_GET[pad])
     {
     echo "<h1 align='center'>Data PAD Tahun $_GET[thn]</h1>";
             include "pad.php";
     }
     if ($_GET[wajib])
     {
     echo "<h1 align='center'>Daftar Wajib Pajak  $_GET[thn]</h1>";
             include "wajib.php";
     }
   
     if ($_GET[pajak])
     {
     echo "<h1 align='center'>Data Pajak Tahun $_GET[thn]</h1>";
             include "pajak.php";
     }
     if ($_GET[kontak])
     {
     echo "<h1 align='center'>Kontak $_GET[thn]</h1>";
             include "<h1 align='center'>kontak.php</h1>";
           
     }
     if ($_GET[admin])
     {
     //echo "<h1 align='center'>Data PAD Tahun $_GET[thn]</h1>";
             include "admin.php";
     }
        ?>
Coba kita perhatikan baris perintah dari if ($_GET[menu]) sama sekali tidak di filter, yang memungkinkan hackers bisa berbuat nakal dan menyuntikkan perintah - perintah SQL Injections,

Bagaimana cara memfilter file yang memiliki Bug SQL Injections ini ?


Perhatikan Kode untuk memfilter serangan SQL Injections Berikut :
if (ereg("-", $_GET['menu'])|| ereg("order", $_GET['menu'])|| ereg("_",$_GET['menu']) || ereg("concat",$_GET['menu']) || ereg("concat/*!()*/",$_GET['menu']) || ereg("/*!concat()*/",$_GET['menu']) || ereg("%20order%20",$_GET['menu']) || ereg("/*!00000uNiOn*/+/*!00000sElEcT*/",$_GET[menu]) || ereg("\*order\*",$_GET['menu']) || ereg("\+order\+",$_GET[menu]) || ereg("%20union%20", $_GET['menu'])||ereg("union",$_GET['menu']) || ereg("\*union\*",$_GET['menu']) || ereg("\+union\+",$_GET[menu]) || ereg("\*",$_GET['menu']) || ereg("'",$_GET[menu]) || ereg("-",$_GET[menu]) || ereg("/*!uNiOn*/+/*!sElEcT*/",$_GET[menu]))
{
ob_start();
echo "<center><H2> Patched by chmod755 >> http://trafikid.com </h2></center><BR/>Ini IP anda $ip <br/> Browser dan OS Ente : $agent <br/> Hari Ini $dtime <br/>Ingat nama ane ya chmod755 cowok paling ganteng sedunia !";
ob_flush();
}
Keterangan : warna merah adalah code - code yang akan di filter pada file profil.php
dan warna merah adalah untuk pesan jika code - code warna merah di eksekusi

dan Misalkan masih ada parameter lain pada file profil.php, kita contohkan saja
http://www.dispendakotakendari.com/profil.php?menu=tupoksi&id=1

Untuk memfilter parameter ID tinggal tambahkan kode berikut :
else if (ereg("-", $_GET['id']) || ereg("order", $_GET['id'])|| ereg("_",$_GET['id']) || ereg("concat",$_GET['id']) || ereg("concat/*!()*/",$_GET['id']) || ereg("/*!concat()*/",$_GET['id']) || ereg("%20order%20",$_GET['id']) || ereg("/*!00000uNiOn*/+/*!00000sElEcT*/",$_GET[id]) || ereg("\*order\*",$_GET['id']) || ereg("\+order\+",$_GET[id]) || ereg("%20union%20", $_GET['id'])||ereg("union",$_GET['id']) || ereg("\*union\*",$_GET['id']) || ereg("\+union\+",$_GET[id]) || ereg("\*",$_GET['id']) || ereg("'",$_GET[id]) || ereg("-",$_GET[id]) || ereg("/*!uNiOn*/+/*!sElEcT*/",$_GET[id]))
{
ob_start();
echo "<h2>Awas sekali lagi nyoba - nyoba ane santet kau</h2>";
ob_flush();
}

Bagaimana cara menggabungkan code filter SQL dengan profil.php?

Code keseluruhan setelah di filter jadi seperti ini :

<?php
include "config.php";
$var=$_GET[menu];
$perintah="SELECT * FROM uraian WHERE MENU='$var'";
$hasil=mysql_query($perintah);
$data=mysql_fetch_row($hasil);
$agent = $_SERVER['HTTP_USER_AGENT'];
$ip = $_SERVER['REMOTE_ADDR'];
$ipasli = $_SERVER['HTTP_X_FORWARDED_FOR'];
$via = $_SERVER['HTTP_VIA'];
$dtime = date('r');
if (ereg("-", $_GET['menu'])|| ereg("order", $_GET['menu'])|| ereg("_",$_GET['menu']) || ereg("concat",$_GET['menu']) || ereg("concat/*!()*/",$_GET['menu']) || ereg("/*!concat()*/",$_GET['menu']) || ereg("%20order%20",$_GET['menu']) || ereg("/*!00000uNiOn*/+/*!00000sElEcT*/",$_GET[menu]) || ereg("\*order\*",$_GET['menu']) || ereg("\+order\+",$_GET[menu]) || ereg("%20union%20", $_GET['menu'])||ereg("union",$_GET['menu']) || ereg("\*union\*",$_GET['menu']) || ereg("\+union\+",$_GET[menu]) || ereg("\*",$_GET['menu']) || ereg("'",$_GET[menu]) || ereg("-",$_GET[menu]) || ereg("/*!uNiOn*/+/*!sElEcT*/",$_GET[menu]))
{
ob_start();
echo "<center><H2> Patched by chmod755 >> http://trafikid.com </h2></center><BR/>Ini IP anda $ip <br/> Browser dan OS Ente : $agent <br/> Hari Ini $dtime <br/>Ingat nama ane ya chmod755 cowok paling ganteng sedunia !";
ob_flush();
}
else if (ereg("-", $_GET['id']) || ereg("order", $_GET['id'])|| ereg("_",$_GET['id']) || ereg("concat",$_GET['id']) || ereg("concat/*!()*/",$_GET['id']) || ereg("/*!concat()*/",$_GET['id']) || ereg("%20order%20",$_GET['id']) || ereg("/*!00000uNiOn*/+/*!00000sElEcT*/",$_GET[id]) || ereg("\*order\*",$_GET['id']) || ereg("\+order\+",$_GET[id]) || ereg("%20union%20", $_GET['id'])||ereg("union",$_GET['id']) || ereg("\*union\*",$_GET['id']) || ereg("\+union\+",$_GET[id]) || ereg("\*",$_GET['id']) || ereg("'",$_GET[id]) || ereg("-",$_GET[id]) || ereg("/*!uNiOn*/+/*!sElEcT*/",$_GET[id]))
{
ob_start();
echo "<h2>Awas sekali lagi nyoba - nyoba ane santet kau</h2>";
ob_flush();
}
else
{
echo "<h1 align='center'>$data[1]</h1><br>
                  $data[2]";
        }
           
     if ($_GET[pad])
     {
     echo "<h1 align='center'>Data PAD Tahun $_GET[thn]</h1>";
             include "pad.php";
     }
     if ($_GET[wajib])
     {
     echo "<h1 align='center'>Daftar Wajib Pajak  $_GET[thn]</h1>";
             include "wajib.php";
     }
   
     if ($_GET[pajak])
     {
     echo "<h1 align='center'>Data Pajak Tahun $_GET[thn]</h1>";
             include "pajak.php";
     }
     if ($_GET[kontak])
     {
     echo "<h1 align='center'>Kontak $_GET[thn]</h1>";
             include "<h1 align='center'>kontak.php</h1>";
           
     }
     if ($_GET[admin])
     {
     //echo "<h1 align='center'>Data PAD Tahun $_GET[thn]</h1>";
             include "admin.php";
     }
        ?>
Ini adalah penampakan site setelah di patching

Tutorial lengkap Patch SQL Injections
Dan ini hasil scan menggunakan Havij
Tutorial lengkap Patch SQL Injections

Sekian tutorial Cupu yang sangat mengerikan ini, semoga bermanfaat bagi kita semua,

Regards
chmod755

0 komentar

Posting Komentar