Lindungi URL WordPress Dari Request Berbahaya

By Cruz3N | on December 27th, 2010 | 2 Comments

Awalnya dari postingan dari salah satu sahabat saya, Despic Crash di facebook yang menunjukkan screenshot bagaimana dia melakukan scanning terhadap WordPress menggunakan wpscan dari darkc0de. Sebenernya itu bukan scanner, itu hanyalah kumpulan / list beberapa exploit WordPress. Nah untuk mencegahnya yah kita jangan menggunakan plugin pada daftar list / selalu update WordPress dan plugin yang kita gunakan.

Apa akan bertahan tuh? Nah terpikir 1 cara untuk mencegah request URL berbahaya… Penasaran?

Pertama yang mesti kalian lakukan adalah buat file php dengan nama terserah.php lalu paste kode berikut

<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
Description: Protect WordPress Against Malicious URL Requests
Author URI: http://perishablepress.com/
Author: Perishable Press
Version: 1.0
*/
global $user_ID; if($user_ID) {
if(!current_user_can('level_10')) {
if (strlen($_SERVER['REQUEST_URI']) > 255 ||
strpos($_SERVER['REQUEST_URI'], "eval(") ||
strpos($_SERVER['REQUEST_URI'], "CONCAT") ||
strpos($_SERVER['REQUEST_URI'], "UNION SELECT") ||
strpos($_SERVER['REQUEST_URI'], "base64")) {
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
}
} ?>

Lalu upload sebagai plugin, terlihat dia akan melakukan filter terhadap URL request yang bertuliskan UNION SELECT, CONCAT, dll. Kalian bisa tambahkan sendiri neh. Terserah, kan kalian yang biasa inject website Laugh .

Semoga berguna… All Credits and Thanks to Jeff Starr

UPDATE

Nah script diatas juga ada beberapa kelemahan diantaranya seperti yang telah saya jelaskan disini bahwa jika sang attacker menggunakan kata UniOn atau cOnCaT maka akan lolos lalu script diatas juga tidak memfilter tag pembuka dan penutup HTML serta tanda single quote (‘)… Maka saya melakukan sedikit modifikasi dan sekali lagi terima kasih yang sebesar-besarnya buat Om Ketek. Ingat gak cuman WordPress, script berikut bisa diterapkan pada semua web… Semoga berguna…

<?php
/*
Plugin Name: Block Bad Queries
Plugin URI: http://perishablepress.com/press/2009/12/22/protect-wordpress-against-malicious-url-requests/
Description: Protect WordPress Against Malicious URL Requests
Author URI: http://perishablepress.com/
Author: Perishable Press
Version: 1.0
*/

if (strlen($_SERVER['REQUEST_URI']) > 255 ||
stripos($_SERVER['REQUEST_URI'], "concat" ) ||
stripos($_SERVER['REQUEST_URI'], "union") ||
stripos($_SERVER['REQUEST_URI'], "base64") ||
stripos(urldecode($_SERVER['REQUEST_URI']), "<") ||
stripos(urldecode($_SERVER['REQUEST_URI']), ">") ||
stripos(urldecode($_SERVER['REQUEST_URI']), "'"))
{
$client_ip = $_SERVER['REMOTE_ADDR'];
$req_uri = urldecode($_SERVER['REQUEST_URI']);

echo "Maaf Bro... Apa tuh? Mau Nakal Yah Razz <br>";
echo "Your IP : ". $client_ip ."<br>";
echo "URL : ". $req_uri;
@header("HTTP/1.1 414 Request-URI Too Long");
@header("Status: 414 Request-URI Too Long");
@header("Connection: Close");
@exit;
}
?>

Related posts:

  1. [PHP] System Log
  2. Cara Lain Lindungi Halaman Admin, Maybe
  3. Plugin Sederhana Anti IE7
  4. Plugin Sederhana Filter Komentar
  5. WordPress Code

2 Responses to “Lindungi URL WordPress Dari Request Berbahaya”

February 13th, 2011 at 5:30 pm

You made a few nice points there. I did a search on the issue and found a good number of persons will consent with your blog.

January 16th, 2012 at 10:42 am

Plugin sederhana tapi bagus, mancap… Yes Yes

Leave a Response

SmileBig SmileGrinLaughFrownBig FrownCryNeutralWinkKissRazzChicCoolAngryReally AngryConfusedQuestionThinkingPainShockYesNoLOLSillyBeautyLashesCuteShyBlushKissedIn LoveDroolGiggleSnickerHeh!SmirkWiltWeepIDKStruggleSide FrownDazedHypnotizedSweatEek!Roll EyesSarcasmDisdainSmugMoney MouthFoot in MouthShut MouthQuietShameBeat UpMeanEvil GrinGrit TeethShoutPissed OffReally PissedMad RazzDrunken RazzSickYawnSleepyDanceClapJumpHandshakeHigh FiveHug LeftHug RightKiss BlowKissingByeGo AwayCall MeOn the PhoneSecretMeetingWavingStopTime OutTalk to the HandLoserLyingDOH!Fingers CrossedWaitingSuspenseTremblePrayWorshipStarvingEatVictoryCurseAlienAngelClownCowboyCyclopsDevilDoctorFemale FighterMale FighterMohawkMusicNerdPartyPirateSkywalkerSnowmanSoldierVampireZombie KillerGhostSkeletonBunnyCatCat 2ChickChickenChicken 2CowCow 2DogDog 2DuckGoatHippoKoalaLionMonkeyMonkey 2MousePandaPigPig 2SheepSheep 2ReindeerSnailTigerTurtleBeerDrinkLiquorCoffeeCakePizzaWatermelonBowlPlateCanFemaleMaleHeartBroken HeartRoseDead RosePeaceYin YangUS FlagMoonStarSunCloudyRainThunderUmbrellaRainbowMusic NoteAirplaneCarIslandAnnouncebrbMailCellPhoneCameraFilmTVClockLampSearchCoinsComputerConsolePresentSoccerCloverPumpkinBombHammerKnifeHandcuffsPillPoopCigarette