Minggu, 30 Desember 2012

Cara Buat Slideshow Keren Di Blog


Sudah bosan dengan tampilan blog ? ingin mencoba mengubah dengan memberi sentuhan sedikit  seperti slide photo pada blog kita . silahkan ikuti langkah berikut :
1. Masuk ke Dashboard
2. Pilih rancangan
3. Pilih edit HTML
4. Centang Expand Template Widget, Sebelum mengedit silahkan download template anda untuk menjaga eror
5. Cari kode HTML ini <head>
6. Jika sudah ketemu Letakkan Script berikut tepat di bawah kode <head> tadi.

    <!-- slide -->
    <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'/>
    <script type='text/javascript'>
    //<![CDATA[
    $(document).ready(function() {
    //Execute the slideShow, set 6 seconds for each images
    slideShow(3000);
    });
    function slideShow(speed) {
    //append a LI item to the UL list for displaying caption
    $('ul.slideshow').append('<li id="slideshow-caption" class="caption"><div class="slideshow-caption-container"><h3></h3><p></p></div></li>');
    //Set the opacity of all images to 0
    $('ul.slideshow li').css({opacity: 0.0});
    //Get the first image and display it (set it to full opacity)
    $('ul.slideshow li:first').css({opacity: 1.0});
    //Get the caption of the first image from REL attribute and display it
    $('#slideshow-caption h3').html($('ul.slideshow a:first').find('img').attr('title'));
    $('#slideshow-caption p').html($('ul.slideshow a:first').find('img').attr('alt'));
    //Display the caption
    $('#slideshow-caption').css({opacity: 0.7, bottom:0});
    //Call the gallery function to run the slideshow
    var timer = setInterval('gallery()',speed);
    //pause the slideshow on mouse over
    $('ul.slideshow').hover(
    function () {
    clearInterval(timer);
    },
    function () {
    timer = setInterval('gallery()',speed);
    }
    );
    }
    function gallery() {
    //if no IMGs have the show class, grab the first image
    var current = ($('ul.slideshow li.show')? $('ul.slideshow li.show') : $('#ul.slideshow li:first'));
    //Get next image, if it reached the end of the slideshow, rotate it back to the first image
    var next = ((current.next().length) ? ((current.next().attr('id') == 'slideshow-caption')? $('ul.slideshow li:first') :current.next()) : $('ul.slideshow li:first'));
    //Get next image caption
    var title = next.find('img').attr('title');
    var desc = next.find('img').attr('alt');
    //Set the fade in effect for the next image, show class has higher z-index
    next.css({opacity: 0.0}).addClass('show').animate({opacity: 1.0}, 1000);
    //Hide the caption first, and then set and display the caption
    $('#slideshow-caption').animate({bottom:-70}, 300, function () {
    //Display the content
    $('#slideshow-caption h3').html(title);
    $('#slideshow-caption p').html(desc);
    $('#slideshow-caption').animate({bottom:0}, 500);
    });
    //Hide the current image
    current.animate({opacity: 0.0}, 1000).removeClass('show');
    }
    //]]>
    </script>

    <style type='text/css'>
    ul.slideshow {
    list-style:none;
    width:700px;
    height:260px;
    overflow:hidden;
    position:relative;
    margin:0;
    padding:0;
    font-family:Arial,Helvetica,Trebuchet MS,Verdana;
    ;
    }
    ul.slideshow li {
    position:absolute;
    left:0;
    right:0;
    }
    ul.slideshow li.show {
    z-index:500;
    }
    ul img {
    width:700px;
    height:220px;
    border:none;
    }
    #slideshow-caption {
    width:700px;
    height:70px;
    position:absolute;
    bottom:0;
    left:0;
    color:#fff;
    background:#000;
    z-index:500;
    }
    #slideshow-caption .slideshow-caption-container {
    padding:5px 10px;
    z-index:1000;
    }
    #slideshow-caption h3 {
    margin:0;
    padding:0;
    font-size:16px;
    }
    #slideshow-caption p {
    margin:5px 0 0 0;
    padding:0;
    }
    </style>
    <!-- slide end-->


7. Jika sudah selesai sekarang simpan templatenya. in belum selesai ya, masih ada tahap selanjutnya.

8. Selanjutnya masuk kehalaman Dashboard > Tata Letak > klik tulisan Add a Gadget (tambah widget) > pilih HTML/Javascript lalu letakkan script berikut.

    <ul class="slideshow">

    <li><a href="URL POSTINGAN ANDA DISINI"><img src="URL GAMBAR ANDA DISINI" title="JUDUL SLIDE-NYA DISINI " alt="DISKRIPSI ATAU TULISAN KEIL YANG DIBWAH JUDULNYA" /></a></li>
    <li><a href="URL POSTINGAN ANDA DISINI"><img src="URL GAMBAR ANDA DISINI" title="JUDUL SLIDE-NYA DISINI " alt="DISKRIPSI ATAU TULISAN KEIL YANG DIBWAH JUDULNYA" /></a></li>

    <li><a href="http://1stshared.blogspot.com/"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjev-1WMpP1IUADIsZNyn5NyIU38kk1OWjblBnAtD_WaVozP8rd41o-t5ZBO_krPCMoOTnb8Q6FEbReUZWXVy99IfMOHdpwHZL0lQm0NSg5Kwa2UXf49vE8YBs-Zyas56sUNim94NE-6XH5/s0/5.jpg" title="mobil keren modifikasi jadi canggih" alt="penegen punya mobil seperti ini" /></a></li>

    </ul>

simpan dan lihat hasilnya
semoga bermanfaaat

Minggu, 18 Desember 2011

Membuat Status Berantai di Facebook

Hari ini saya menyadari ada yang tidak beres dengan status teman-teman facebook saya. Banyak yang mendadak statusnya berisi promosi suatu link bahkan hingga berkali-kali. Apa gerangan yang terjadi? Dalam artikel ini saya akan membedah teknik penyebaran status berantai tersebut.

Analisa
Mari kita mulai analisa kita dengan mengambil sample satu URL jebakan, yaitu tinyurl.com/sampahh. Ini adalah url versi pendek yang bila diklik akan melakukan redirect ke url aslinya, yaitu:

http://m.facebook.com/connect/prompt_feed.php?display=wap&user_message_prompt='<script>window.onload=function(){document.forms[0].message.value='jangan salahin w kalo lo bakal ngakak ngeliat ni orang :D http://tinyurl.com/sampahh';document.forms[0].submit();}</script>
 
URL tersebut akan saya pecah menjadi 3 bagian:
  • http://m.facebook.com/connect/prompt_feed.php
     
  • ?display=wap&user_message_prompt=
     
  • '<script>window.onload=function(){document.forms[0].message.value='jangan salahin w kalo lo bakal ngakak ngeliat ni orang :D http://tinyurl.com/sampahh';document.forms[0].submit();}</script>
Bagian pertama adalah URL untuk update status. Bagian kedua adalah query string parameter yang terdiri dari dua parameter, yaitu display dan user_message_prompt. Bagian ketiga adalah isi dari parameter user_message_prompt yang merupakan payload javascript untuk mengubah status secara otomatis.
The Prompt
Sebelum masuk lebih jauh membahas payloadnya, mari kita lihat dulu bentuk tampilan dari URL untuk mengubah status ini. Gambar ini adalah screenshot ketika browser membuka URL:

http://m.facebook.com/connect/prompt_feed.php?display=wap&user_message_prompt=Masukkan Status
 


Dari gambar di atas kini kita memahami fungsi dari parameter user_message_prompt, yaitu sebagai judul pertanyaan/prompt. Agar user mengerti apa yang harus diinputkan, dalam setiap prompt harus diberi judul yang jelas, contohnya: “Input your PIN”, “Enter your Name”, “Password:” dan sebagainya. Silakan anda mencoba bermain-main dengan mengubah-ubah nilai user_message_prompt sesuka anda di address bar dan perhatikan apa yang terjadi.
Reflected Cross Site Scripting
Normalnya user_message_prompt diisi dengan murni teks saja berupa instruksi/petunjuk apa yang harus diinputkan user. Bila parameter user_message_prompt berisi teks murni saja, maka tidak ada yang perlu dikhawatirkan, namun bagaimana bila parameter tersebut diisi dengan kode HTML atau javascript?
Perhatikan apa yang terjadi bila user_message_prompt diisi dengan kode HTML:

<font color=red><h1>Hello!!</h1></font>
 


Perhatikan juga apa yang terjadi bila user_message_prompt diisi dengan kode HTML:

<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvRwGPajdwwyNVWwI16ISEmv4N2gLwI2lPwHfNQ3qjMv9zIpgPcQhP9qnuAX70h_4480VwViPHgI9cymT3ihDdjesuqd2Dcijsy9TIhdP8QK9pDnW9kEV_YRHvM8h2GUNYHJB4_pNECzw/s320/Hacked.jpg"/>
 


Bagaimana bila user_message_prompt tidak hanya diisi dengan kode HTML, tapi diisi dengan kode javascript? Mari kita coba memasukkan javascript sederhana berikut ini:

<script>prompt("Enter your PIN");</script>
 

Kita sudah melihat bagaimana user_message_prompt tidak hanya bisa diisi dengan normal teks, namun juga bisa diisi dengan kode HTML dan javascript yang dieksekusi browser. Ini adalah vulnerability yang disebut dengan XSS (Cross Site Scripting), lebih tepatnya reflected-XSS (karena kode yang diinjeksikan dalam URL “dipantulkan” kembali sebagai response HTTP).
The Payload
Dalam contoh sebelumnya kita mencoba memasukkan javascript sederhana yang hanya menampilkan prompt input kepada user. Sebenarnya javascript bisa dipakai untuk melakukan hampir apa saja mulai dari yang sekedar iseng seperti mengubah status, sampai yang serius seperti seperti mencuri cookie korban atau take-over komputer korban dengan mengeksploitasi kelemahan pada browsernya. Hal-hal inilah yang disebut dengan payload. Attacker bebas memasukkan payload apa saja yang dia inginkan seperti mengubah status, mencuri cookie dsb.
Perhatikan kembali isi parameter user_message_prompt yang didapat dari tinyurl.com/sampahh

user_message_prompt='<script>window.onload=function(){document.forms[0].message.value='jangan salahin w kalo lo bakal ngakak ngeliat ni orang :D http://tinyurl.com/sampahh';document.forms[0].submit();}</script>
 
Bagi pembaca yang jeli tentu merasa aneh, kenapa ada karakter single-quote (‘) sebelum tag script? Perlukah karakter single-quote ini? Jawabannya adalah tidak perlu sama sekali. Saya melihat semua yang membuat url sejenis ini dalam payloadnya selalu ada karakter single-quote di depan tag script. Mungkin pembuatnya hanya ikut-ikutan saja tanpa benar-benar mengerti apa yang terjadi, karena dia mencontoh orang lain memakai single-quote, maka diapun ikut memakai single-quote.
Payload untuk mengubah status sebenarnya sangat sederhana. Berikut ini adalah payload untuk mengubah status di facebook secara otomatis:

Onload adalah event yang terjadi bila suatu halaman web selesai di-load. Baris pertama pada kode di atas artinya meminta browser untuk mengeksekusi sebuah fungsi secara otomatis ketika halaman ini selesai diload. Fungsi yang dimaksud terdiri dari dua baris kode sederhana untuk mengubah nilai textarea message dan melakukan submit form.
Baris kedua dimaksudkan untuk mengubah nilai dari textarea bernama message seperti gambar di bawah ini.



Langkah terakhir adalah memanggil fungsi submit() untuk melakukan submit form. Jadi sangat sederhana cara untuk mengubah status secara otomatis, cukup dua langkah saja, mengisi message dengan isi status, lalu submit, status pun selesai diubah.
Varian Lain dengan IFRAME
Saya juga menemukan varian lain yang memakai iframe. Varian ini lebih berbahaya karena bisa disisipkan dalam web apapun dan bisa dengan mudah melakukan pengubahan status berulang kali. Salah satu teman facebook saya menjadi korban freesmsvoip.com sampai berkali-kali.

Minggu, 13 November 2011

Kisah Cinta Yang Menyedihkan di Twitter

Cerita Cinta yang menyedihkan dari twitter...
Cowo ini (Id twitternya @raassaa) rela meninggalkan dunia karena memendam perasaan cinta dan tidak bisa mengungkapkan isi hatinya kepada sang pujaan yang dikenalnya lewat twitter...

Ceritanya gini gan, mereka berkenalan lewat twitter, dan sering berbalas tweet di twitter, perkenalan mereka berlanjut ke YM, BBM, dan Telpon.
Seiring waktu berlalu, @Raassaa mulai mulai tumbuh benih-benih cinta, dan tweetnya sering berisi kata-kata tentang cinta...

Suatu saat, melalui Facebook, @Raassaa mengetahui kalo pujaan hatinya telah mempunyai kekasih, @Raassaa melihat status si cewe "In Relationship with"

Akhirnya @Raassaa berniat menemui pujaan hatinya. Kemudian mereka bertemu, namun @Raassaa tidak dapat mengungkapkan isi hatinya dan hanya bisa memendamnya...

Kebetulan gw follow twitternya @Raassaa, jadi gw tau apa aja yg diposting@Raassaa. Dan belum lama gw baca postingan terakhir @Raassaa:
bye beb... it's my last tweet, nice to know u. In the end of my life, i can only give u a song, heres the song http://bit.ly/6IZ2KK I LOVE U

http://i46.tinypic.com/3443v5v.jpg

dan gak lama setelah itu gw dapet sms dari temen gw, klo @Raassaa udah gak ada... 

Gw download lagunya, trus gw dengerin... asli, gw merinding gan...
coba aja denger sendiri gan... ini linknya http://bit.ly/6IZ2KK

gosipnya dia nulis lagu itu pas dalam perjalanan pulang setelah bertemu pujaan hatinya...

poor him... mungkin dia memilih mati daripada hidup terbelenggu cinta, kira-kira gitu sih cerita yg bisa gw simpulin dari postingan-postingannya dia di twitter... sayang skrg udah pada di del postingan dia, hanya tinggal postingan dia yang terakhir...

UPDATE
info terakhir yang gw dapet @Raassaa meninggal karena tenggelam, gw gak tau tenggelam dimana gan...

Sumber : kaskus