 |
BAGAIMANA HENDAK MENGUBAH ADMIN.PHP |
 |
Dikirim pada Thursday 08-02-2007 05:41 oleh zulkiply |
Dulu, saya pernah menulis bagaimana mengubah phpnuke captcha (ruangan Bahasa Inggeris) dan ramai yang meminta saya menulis mengenai "Cara untuk mengubah admin.php?"
Artikel ini tidak berhasrat untuk mengajar anda melakukan hacking PHPNuke tetapi untuk memberikan kawalan keselamatn terhadap nuke anda. Kerana ramai penceroboh menumpukan fail kritikal ini untuk mencapai matlamat mereka, anda perlu memalsukan fail ini dan menyelamatnya dengan baik.
Baca selanjutnya artikel ini untuk mengetahui bagaimana cara untuk menyelamatkan phpnuke anda.
Malah tatkala di fasa pemasangan lagi, kita telah diberitahu untuk menukar admin.php. Berikut ialah petikan yang diperolehi di beberapa baris fail config.php
# $admin_file: Administration panel filename. "admin" by default for # "admin.php". To improve security please rename the file # "admin.php" and change the $admin_file value to the # new filename (without the extension .php)
Nah ! Tetapi berapa ramai yang telah menukarnya? Mari kita mulakan.
1) Buka failconfig.php yang berada di root (jika anda belum mengalihkannya). Kemudian cari baris ini:
$admin_file = "admin";
Tukar dengan nama yang lain, nama yang anda hendakkan fail admin itu dipanggil (hanya anda saja yang tahu), contohnya:
$admin_file = "mawar";
Simpan fail tersebut dengan nama yang serupa iaitu config.php.
2) Buat satu salinan admin.php dan namakan salinan sebagai mawar.php. Keluarkan fail asal admin.php ke tempat - mungkin anda perlukannya semula jika di dalam proses ini anda ada melakukan kesilapan).
3) Langkah berikut melibatkan beberapa baris di dalam database anda. Jadi sekarang pergi ke mysql dan cari database serta ubah ikut kehendak anda. Contohnya, di dalam kotak SQL query taipkan ini (jangan lupa tukarkan nama mawar.php dengan nama yang anda telah pilih di no.1):
DELETE from nuke_blocks where bid=2 and bkey=''''admin'''';
INSERT INTO nuke_blocks VALUES (2, ''''admin'''', ''''Administration'''', ''''<strong><big>·</big></strong> <a href="mawar.php">Administration</a><br>\r\n<strong><big>·</big></strong> <a href="mawar.php?op=adminStory">NEW Story</a><br>\r\n<strong><big>·</big></strong> <a href="mawar.php?op=create">Change Survey</a><br>\r\n<strong><big>·</big></strong> <a href="mawar.php?op=content">Content</a><br>\r\n<strong><big>·</big></strong>
<a href="mawar.php?op=logout">Logout</a>'''', '''', ''''l'''', 2, 1, 0, ''''985591188'''', '''', '''', 2, ''''0'''', ''''d'''', 0);
4) Dah siap? Belum lagi. Sekarang pergi ke folder nuke/admin. Terdapat banyak fail di dalam sub-folder. Jom tengok sama-sama.
a) Mulakan dengan subfolder nuke/admin/case Cuba buka 1 fail di dalam subfolder ini, katakanlah fail case_authors.php Cari baris
"if (!eregi("admin.php", $_SERVER[''''PHP_SELF''''])) { die ("Access Denied"); }
Kerana anda telah menamakan fail ini kepada mawar.php, kenyataan itu perlu diubah kepada if (!eregi("mawar.php", $_SERVER[''''PHP_SELF''''])) { die ("Access Denied"); }
Simpan.
lakukan dengan cara yang sama terhadap SEMUA fail di dalam subfolder ini.
tetapi anda kemungkinan bertemu dengan pernyataan yang sedikit berbeza seperti:
if ( !defined(''''ADMIN_FILE'''') ) { die("Illegal File Access"); }
Jika demikian, biarkan ia begitu.
b) Sekarang pergi buka pula subfolder nuke/admin/links.
Buka satu fail contohnya links_blocks.php Cari baris ini:
if (!eregi("admin.php", $_SERVER[''''PHP_SELF''''])) { die ("Access Denied"); } if ($radminsuper==1) { adminmenu("admin.php?op=BlocksAdmin", ""._BLOCKS."", "blocks.gif"); }
Anda tahu apa nak buat sekarang, ya, tukarkan admin.php ke mawar.php
seperti biasa, lakukan ke atas semua fail di dalam subfolder ini.
c) Setelah itu pergi pula ke nuke/admin/modules
Buka pula satu fail di situ contohnya authors.php cari baris ini:
if (!eregi("admin.php", $_SERVER[''''PHP_SELF''''])) { die ("Access Denied"); }
Tukar admin.php kepada nama yang anda telah pilih.
Lakukan keatas semua fail di dalam subfolder ini.
Ambil perhatian bahawa anda mungkin telah memasang modul dan modul berkenaan telah mencipta folder subfolder di admin/modules. Jadi pastikan anda buka satu demi satu fail di dalamnya dan cari admin.php untuk ditukarkan.
5) Kemudian anda buka folder modules/_module_name/admin
Pilih satu subfolder contohnya nuke/modules/Reviews/admin dan buka satu fail katakanlah index.php Di situ juga anda akan temui kenyataan
if (!eregi("admin.php", $_SERVER[''''PHP_SELF''''])) { die ("Access Denied"); }
Tukar nama "admin.php" itu.
lakukan kepada setiap fail di dalm setiap subfolder admin di nuke/modules.
6) Sepatutnya telah siap sedia.
Cuba lancarkan fail mawar.php anda dan cuba login. http://www.yourdomain.com/nuke/mawar.php
Boleh login dan daptkah anda temui admin panel anda? Tahniah!
7) PERINGATAN
a) jANGAN DEDAHKAN nama fail baru anda terutama diu muka hadapan. jika ada puatan ke admin.php di menu anda, padam segera ATAU cipta satu fail palsu admin.php untuk memerangkap mereka yang cuba menceroboh menggunakan admin.php dengan memungut data dan menyimpannya di dalam satu fail log supaya nanti anda mudah untuk ban mereka.
Contohnya anda boleh memungut data seperti IP, referer, browser dan lain lian-lain untuk di simpan di dalam fail bernama log.html file.
Inilah contoh fail admin.php yang palsu:
<? //Set the date so we can store it in the text file. $tdate = date("dS F Y h:i:s A");
//Check if there is a referer if (!$HTTP_REFERER) { $HTTP_REFERER = "(NONE)"; } $ip = getenv("REMOTE_ADDR"); $browser=$_SERVER[''''HTTP_USER_AGENT'''']; $page = $_SERVER[''''REQUEST_URI'''']; //Store it in the log.html file ! DONT FORGET TO SET COUNTER.TXT CHMOD 777 ! $fp = fopen("log.html", "a"); $line = "$tdate | IP: $ip | Browser:$browser | Page: $pagen "; fwrite($fp, $line); fclose($fp) ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Oops! You are not authorised to view this page </head>
<body>
<h3>You do not have permission to access this page/directory. [error 401]
<p>... Get out from here! </body>
</html>
Bila-bila masa anda boleh buka fail log.html untuk melihat senarai penceroboh yang cuba menggunakan fail admin.php.
8) AKHIRNYA, adalah satu amalan yang baik jika fail config.php diletakkan diluar laluan Web Server, kemudian cipta satu fail config.php yang baru dengan kenyataan:
<?php include("../config.php"); ?>
SELAMAT BERJAYA.
|
|
|
|
|
| |
 |
Related Link |
 |
|
 |
Please take a second and vote for this article: |
 |
Average Score: 4.5 Undi: 2

|
|
|
|
|
 |
Options |
 |
|
|