Pertama-tama saya sangat berterima kasih buat Om wenkhairu [at] devilzc0de yang dah menemukan bug di http://www.sctv.co.id/. Numpang minjem Om, biar enak ngejelasinnya kalo live Grin Oke sebelum saya menjelaskan apa itu XSS ada baiknya kita cobain dulu neh http://www.sctv.co.id/. Biasanya sih bug ini terdapat pada fasilitas search dan memang betul pada kasus kali ini terletak pada fasilitas searchnya.

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Dan bila seandainya kita mengetikkan

<strong>cruzenaldo</strong>

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Maka hasilnya adalah Ditemukan 0 data untuk pencarian ‘cruzenaldo’

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Nah cara untuk mengecek apakah fasilitas tersebut memiliki bug XSS adalah dengan memasukkan tag-tag HTML di dalamnya. Contohnya

<h1>cruzenaldo</h1>

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Maka hasil yang di dapat adalah

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Wow… Vulnerable. Banyak tag-tag HTML yang bisa kita input, bahkan javascript pun bisa. Nah bug ini merupakan bug yang gak berpengaruh apa-apa pada servernya. Jadi cuman komputer kita itu sendiri yang bisa melihat perubahan yang terjadi kecuali kita memberikan link berikut kepada seseorang.


http://www.sctv.co.id/search.php?s=<h1>cruzenaldo</h1>

Maka orang itu akan melihat hasilnya. Nah walaupun terlihat seperti bug yang gak berguna akan tetapi jika kita mau memanfaatkannya dengan maksimal hasilnya bisa sangat membahayakan. Tehnik Social Engineering biasanya sering digunakan. Contoh…

http://www.sctv.co.id/search.php?s=<h1>Selamat Anda Memenangkan Hadiah<br>bla...bla...bla...</h1>

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Semua tergantung bagaimana kreatifnya kita. Mungkin bisa dengan menggunakan tehnik XSS Cookies Stealing? Untuk tutorialnya kalian bisa langsung mendownload aja…

POC XSS ATTACK (PEMULA) by Aurel666

Nah sekarang dah mulai penjelasannya. Kita gak mungkin dong membongkar source code dari sctv.co.id, lagian saya memang gak bisa. Disini saya akan memberikan script sederhana bagaimana bug ini bisa terjadi.

Buat file cari.php yang berisi kode berikut

<html>
<head>
<title>Contoh Bug XSS</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="hasil.php">
<table width="200" border="1">
<tr>
<td>Cari</td>
<td>
<input type="text" name="cari" /></td>
</tr>
<tr>
<td> </td>
<td>
<input type="submit" name="Submit" value="Submit" /></td>
</tr>
</table>
</form>

</body>
</html>

Hasilnya adalah 1 buah Textbox dan 1 buah button

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Jadi penjelasan kode diatas adalah ketika kita menginputkan nilai apa aja maka Action / langkah berikutnya adalah menuju hasil.php. Nah sekarang kita akan membuat hasil.php yang berisi kode berikut

<html>
<head>
<title>Contoh Bug XSS</title>
</head><body>
<?php
$cari=$_POST['cari'];
echo "Hasil Pencarian : $cari";
?>
</body>
</html>

Nah penjelasan kode diatas adalah ketika kita menginput sesuatu di cari.php maka variabel yang terdapat pada textbox yang bernama cari akan diambil / ditangkap oleh hasil.php lalu akan ditampilkan nilai $cari. Maka hasilnya adalah

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Hasil berikut terlihat normal

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Nah ketika kita menginput dengan menambahkan tag-tag html maka hasilnya adalah

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Nah kesimpulannya adalah kita tidak melakukan pemfilteran terhadap apa yang diinputkan oleh user, misalnya tag HTML ataupun Javascript. Bisa kita liat pada hasil.php.

Dalam hal ini banyak cara yang bisa lakukan dan nantinya tergantung dari aplikasi atau fasilitas apa yang kita buat. Berikut adalah beberapa fungsi yang bisa kita gunakan dalam PHP.

ereg_replace(), eregi_replace(), str_replace()

Ketiga fungsi diatas mempunyai 1 kesamaan yaitu mengganti inputan yang dilakukan oleh user dalam hal ini tanda < dan >. Contoh, ganti / tambahkan source code pada hasil.php dengan kode berikut

<html>
<head>
<title>Contoh Bug XSS</title>
</head><body>
<?php
$cari=$_POST['cari'];
$cari=ereg_replace("<","<","$cari");
$cari=ereg_replace(">",">","$cari");
echo "Hasil Pencarian : $cari";
?>
</body>
</html>

Penjelasan kode diatas adalah dengan menggunakan fungsi ereg_replace(). Jadi ketika user melakukan request pada $cari maka nilai tersebut akan difilter terlebih dahulu. Jadi dia mengganti tanda < dengan &lt ; dan > dengan &gt ; Maka hasilnya

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Fungsi lain yang bisa kita gunakan adalah htmlentities() atau strip_tags(). Contoh penggunaan htmlentities()

<html>
<head>
<title>Contoh Bug XSS</title>
</head><body>
<?php
$cari=htmlentities($_POST['cari']);
echo "Hasil Pencarian : $cari";
?>
</body>
</html>

Dan contoh penggunaan strip_tags()

<html>
<head>
<title>Contoh Bug XSS</title>
</head><body>
<?php
$cari=strip_tags($_POST['cari']);
echo "Hasil Pencarian : $cari";
?>
</body>
</html>

Perbedaan dari keduanya adalah jika kita menggunakan htmlentities() hasil yang didapat sama dengan kita menggunakan ereg_replace() sedangkan jika kita menggukan strip_tags() maka fungsi ini akan membabat habis semua tag-tag yang diinputkan sehingga tidak akan ditampilkan. Jadi yang tampil hanya Artikel Hacking tanpa

<h1> dan </h1>

Gak susah kan? Tapi kenapa situs sekelas sctv.co.id masih kena? Tanya kenapa? Jangan lupa juga yah download ebook dari saya

Apa dan Bagaimana XSS itu? live (http://sctv.co.id)

Download

No related posts.

Posted in : PHP, Security

4 Responses to “Apa dan Bagaimana XSS itu? live (http://sctv.co.id)”

root

January 12th, 2011 at 5:29 am

http://smart-telecom.co.id/login_page.php?error=1%00%27%22%3E%3CScRiPt%20%3Ealert%28406765876271%29%3B%3C/ScRiPt%3E.

kalo kaya gini gimana bro bisa dijelasin gk Grin

January 12th, 2011 at 11:12 am

@root: Keren Bro penemuannya… Jadi gini form loginnya kan ada disini Bro

http://smart-telecom.co.id/login_page.php

Nah ketika kita masukin username dan password asal2an misalnya “test” maka akan muncul tulisan “Not authenticated”

Nah kesalahannya dia adalah

?error=Not+authenticated “Dia ambil dari sini kata2nya…”

Nah coba kita edit2 dengan menambahkan / menyisipkan contohnya tag2 html kayak diatas seperti H1 dll…

http://smart-telecom.co.id/login_page.php?error=%3Ch1%3ENot+authenticated%3C/h1%3E

Jadi kesalahannya adalah sama sekali gak memfilter pesan error yang akan ditampilkan sama sekali Bro… Mungkin cara patch nya Bro bisa baca2 artikel diatas lagi Grin

Maap klo kurang jelas Grin Salam kenal Bro…

January 27th, 2012 at 7:56 pm

I cannot tell a lie, that really hlpeed.

January 28th, 2012 at 2:15 am

JZp984 zapdrqxrpidj

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