Codes Xploit: write up
Showing posts with label write up. Show all posts
Showing posts with label write up. Show all posts

Deteksi Celah NO REDIRECT Pada Suatu Situs Menggunakan CURL

Halo selamat malam, kali ini saya akan memberikan sedikit tutorial bagaimana menemukan sebuah celah/vulnerability NO REDIRECT pada suatu situs. Celah ini ditemukan pada suatu halaman/file yang seharusnya dapat diakses hanya pada user yang memiliki akses tertentu (user yang sudah login).

Contohnya pada suatu kasus untuk dapat masuk ke halaman dashboard admin yang terdapat pada file /admin/home.php, kita diharuskan login terlebih dahulu. Maka dari itu, biasanya kita akan di redirect/arahkan ke halaman login dahulu, misalkan di file /admin/login.php


Sudah paham maksudnya?
Jika masih belum paham, mari simak penjelasan berikut.


Saya menemukan suatu sample situs yang memiliki celah ini, coba kalian kunjungi situs berikut:
http://shmsupport.telkomspeedy.com/admin/ maka kalian akan di arahkan/redirect ke halaman situs tersebut yang beralamat pada http://shmsupport.telkomspeedy.com/admin/login.php?MSG=NOSESSION

Dapat Simpulkan, bahwa pada folder /admin/ terdapat sebuah file index.php yang mem-validasi bahwa hanya user yang sudah LOGIN saja yang dapat mengakses ini. Simplenya, $_SESSION user sudah ter-set.

 Sayangnya, ada cara bagaimana mengakses /admin/ tanpa harus login terlebih dahulu. Bypassing dengan Query SQL??? 

***Bukan jawaban yang tepat pada pembahasan kali ini***

Lalu bagaimana?

*Cukup gunakan command CURL pada console/terminal/CMD, lalu jalankan command berikut:

$ curl -v http://shmsupport.telkomspeedy.com/admin/

Akan muncul sebuah hasil, dimana di perlihatkan bahwa kita dapat melihat isi dari halaman dashboard admin tersebut.



Melihat tulisan LOGOUT bukan? Padahal kita tidak login sama sekali ke website tersebut. Yap, ini merupakan sebuah bug. Melalui console seperti memang akan terbatas untuk melakukan hal-hal lainnya, tapi anda bisa menggunakan sebuah addons pada Browser untuk melakukan ini yaitu NO REDIRECT (https://addons.mozilla.org/en-US/firefox/addon/noredirect/).

*******************************
Kenapa ini bisa terjadi?
Jika kita pernah coding hal seperti ini, kita akan membuat sebuah validasi $_SESSION, untuk memastikan apakah user yang mengakses halaman tersebut sudah login atau belum. Biasanya akan di coding seperti ini:

if(!isset($_SESSION[user])) {
             // lakukan redirect disini jika user belum login
}

Tapi codingan diatas masih memiliki bug, memang jika kita mengaksesnya melalui browser kita akan di arahkan ke halaman yang akan di set di codingan tersebut, namun jika kita melihat melalui CURL tadi, halamannya akan bisa kita lihat.

*******************************
Lalu bagaimana memperbaiki bug ini? dan apakah ini fatal?

Untuk memperbaiki ini simple saja, tambahkan die() ataupun exit() setelah bagian Lakukan Redirect.

if(!isset($_SESSION[user])) {
              // lakukan redirect disini jika user belum login
              exit();
}

Codingan diatas akan langsung menutup tadi jika kita mengakses melalui CURL, dan potongan code dashboard admin tadi tidak akan bisa dilihat lagi.

Jika terdapat informasi yang sensitif seperti dokument pribadi/dokument user/customer/client atau hal lainnya yang terdapat pada halaman tersebut, akan sangat mudah sekali didapatkan karena mereka masuk/melihat tanpa harus melalui sebuah authentikasi yang valid. Hal ini juga bisa menjadi awal terjadinya Exploitasi dengan CSRF, dan lainnya.



Oke sekian dulu tutorial kali ini, semoga bermanfaat.

Write up CTF Kioptrix 1 [ smb ]


Assalamualaikum..
bismillah..

this session i will explain you how to got access root from server with ilegal access, many more ways/technique for get access root with ilegal, then this session i will show you how to get access root from SMB.

ok, SMB is which stands for Server Message Block, is a protocol for sharing files, printers, serial ports, and communications abstractions such as named pipes and mail slots between computers.
The earliest document I have on the SMB protocol is an IBM document from 1985. It is a copy of an IBM Personal Computer Seminar Proceedings from May 1985. It contains the IBM PC Network SMB Protocol. The next document I have access to is a Microsoft/Intel document called Microsoft Networks/OpenNET-FILE SHARING PROTOCOL from 1987. The protocol was subsequently developed further by Microsoft and others. Many of the documents that define the SMB protocol(s) are available at ftp.microsoft.com in the SMB documentation area.

ok i will use SearchSploit usefull for searching exploit,

here we go, i will explain you , what requirement you need it for got root:

1. Linux / VPS

2. install Netdiscover
sudo apt-get install netdiscover
or

you can use arp -a

3. install SearchSploit
git clone https://github.com/offensive-security/exploit-database.git

4. install Nmap
sudo apt-get install Nmap 


3. install Kioptrix 1.1 for example
Download


[CTF CDC2016] WRITE UP

1. CEDECE16
    Pada soal ini kita diberikan sebuah file �cedece16�


Yang merupakan sebuah file ELF 32-bit, lalu saya coba jalankan dan mendapatkan sebuah info berupa:


Di beritahu bahwa flag harus dinputkan melalui argv[1], tapi sayangnya karena kita disini mencari flagnya, otomatis kita tidak tau apa yang harus di inputkan. Lalu saya coba melakukan debugging dengan menggunakan command: ltrace, agar melihat source yang digunakan ketika file dijalankan.


Terlihat bahwa ketika kita tidak menginputkan apa-apa ( kosong ) dalam argv1 , maka tidak terlihat source yang jalan. Maka selanjutkan saya coba menginputkan asal dalam argv1, didapatkan clue:

ltrace ./cedece16 1
strlen(�NKRI_1�); 
strncmp("1", "NKRI_1", 6) 


Dapat dilihat bahwa flagnya di cek dengan strncmp, inputan �1� merupakan hasil dari argv1 tadi. Dan diatasnya terdapat �NKRI_1�, lalu di line 2 di cek dengan strncmp, sudah dapat dipastikan bahwa NKRI_1 adalah flagnya:


Yap, lihat bahwa output �FLAG BENAR�.

Itu dia flagnya:
CDC2016{NKRI_1}

--------------------------------------------------------
Download Write UP lainnya disini: WRITE CDC2016

CTFS[dot]ME WRITE UP READ ME


[*] LINK: https://www.dropbox.com/s/2ok8m6geogd8osm/readme.png?dl=0
[*] TITLE: Read Me
[*] Kategori: Crypto
[*] Point: 100
[*] Level: Medium

Dalam soal kali ini, kita diberikan sebuah gambar yang sangat asing bagi kita.

Tapi jgn khawatir walaupun kita tidak tau gambar apa ini, untuk mengetahui nya mudah saja.

Klik Kanan Pada Gambar Tersebut. Lalu pilih "Search google for image"

Lalu akan muncul di google dengan Keyword sesuai dengan jenis gambar tersebut. Yaitu: "MaxiCode"

Lalu dalam tahap ini, coba kita perhatikan baik-baik soal yang diberikan. "Can you find way to read me ? i am not easy in some way". Menurut soal, apakah kita bisa cari cara untuk membaca gambar tersebut? yang kemungkinan flag nya ada disana.
Kebetulan soalnya "Crytpo/Kriptografi" disini saya tidak langsung memikirkan tools stegano untuk mencari-cari flag nya. Yang saya langsung pikirkan adalah......

Lalu saya buka link kedua, yaitu: https://zxing.org/w/decode.jspx
Langsung saja ada sebuah form disana, upload gambar maxicode tadi ke form tersebut.

Lalu didapatkan hasil sebagai berikut.

Perhatikan pada Raw text, tepatnya di "Q1RGU3tHMDBEX0owQl9CUjB9" sepertinya itu jenis encode base64
Langsung saya kita coba decode.
- Dengan command linux: echo "Q1RGU3tHMDBEX0owQl9CUjB9" | base64 -d
- Bisa juga dengan tools online contohnya: http://base64decode.org

Kita lihat hasilnyaa........


Yap, itu dia flag nyaaaaa.
CTFS{G00D_J0B_BR0}

CTFS[dot]ME WRITE UP BLUES CLOUD


[*] LINK: https://www.dropbox.com/s/c7ahpeyr2pk2n7x/blue_cloud.jpg?dl=0
[*] TITLE: Blues Cloud
[*] Kategori: Stegano
[*] Point: 30
[*] Level: Easy

Dalam soal kali ini, kita di berikan sebuah soal yaitu berupa gambar (Karena kebetulan kategori soal challenge kali ini berupa Steganografi). Dalam soal ini, kita hanya di beri sebuah clue bahwa flag berformat md5. "Flag dalam bentuk MD5 CTFS{Md5}". Kebetulan karena soalnya stegano, lansung saja saya download soalnya kemudian mencoba cek-cek menggunakan tools stegano. yaitu exiftool


Tetapi, saya mendapatkan ZONK tidak ada informasi apa-apa dalam file gambar ini.

Jujur saja saya sempat bingung ketika menyelesaikan soal ini, karena setelah saya bongkar-bongkar menggunakan tools stegano, tidak mendapatkan hasil apa-apa alias NIHIL.
Lalu, kemudian saya baca baik-baik dan berulang kali serta mencerna baik-baik soalnya yang berbunyi "Flag dalam bentuk MD5"
Seketika saja muncul di pikiran untuk mencoba mencari sesuatu di google dengan keyword "Convert image to md5"
Muncul salah satu web berupa http://hash.online-convert.com/md5-generator dalam hasil paling pertama di google. Langsung saja saya buka. Kemudian terlihat form

Langsung saja saya upload file gambar tadi dan setelah setelai muncul hasil sebagai berikut.....

Kembali ke pada clue soal bahwa disebutkan kalo flag berformat "CTFS{md5}", di awal form terlihat tulisan md5 checksum. tapi kenapa setelah result bertuliskan hex? ahhh mungkin typo saja.
Lalu saya coba saja input flag sebagai berikut.
CTFS{1d177d53cec97f13cab6af44b4b1249f}
dan ternyata benar saja, flagnya......

Ternyata setelah searching-searching, untuk mengetahui md5sum pada file . Kita dapat melakukannya menggunakan Command Linux : md5sum [nama_file]

Dan terlihat bahwa hasilnya sama seperti tadi.....

Oke sekian dulu......
Nantikan Write UP selanjutnyaaa..........

CTFS[dot]ME WRITE UP DEFUSE MY BOMB


[*] LINK: https://www.dropbox.com/s/kxa0r52mbsx433g/defusemybomb.jpg?dl=0
[*] TITLE: Defuse My Bomb
[*] Kategori: Reccon
[*] Point: 50
[*] Level: Easy

Dalam challenge ini, kita diberi sebuah soal "Old game memory, the password is flag , remember format CTFS{flag} Download!"
Saat kita buka link tersebut, terdapat sebuah gambar yang tidak asing. Mungkin jika kita seorang gamers XD.


Sebelumnya, kita mendapatkan sebuah clue dalam soalnya bahwa "the password is flag", dan juga petunjuk dari kategorinya yaitu "Reccon" yaitu mencari informasi terkait soal yang diberikan ( pinter-pinter googling yeee :p ).

Jika dilihat dengan seksama, dalam gambar tersebut terlihat sebuah bagian dari game yang tidak asing bagi kita. yang mungkin hampir tiap orang mainkan. hmmmmmm tapi apa yaaaa? ............

Seperti Counter Strike xxxxxxxx .......

Kita coba sajaa, cari informasinya di google Sebuah game yang sedang memasang bomb??????

Kita Mendapatkan sebuah jawaban disini........ Tapi?? apakah benar???

Okee kita coba, dan ingat dalam soal format flag adalah : CTFS{flag}
CTFS{7355608}

Dannn, boommmmmm ternyata benar heheheheheee.

CTFS[dot]ME WRITE UP DEBUG DREAMING


[*] LINK: https://ctfs.me/web/web30/
[*] TITLE: Debug Dreaming
[*] Kategori: Website
[*] Point: 30
[*] Level: Easy

Dalam challenge ini,Kita diberi soal "You want to buy flag, but you not have much money. you need to work to get money Bank CTFS.ME"


Jika kita buka Link yang tertera tersebut, Kita akan ditujukan ke tempat yang dimaksud dalam soal ini, yaitu: Bank CTFS.ME
Di dalam soal, sudah diberi sebuah clue/petunjuk, bahwa untuk mendapatkan flag nya kita harus membelinya. Namun, Ketika klik "Try It" muncul sebuah pesan
Menurut soal, kita tidak mempunyai cukup uang ( tertera hanya memiliki $10 ) untuk membeli flag tersebut. Lalu Bagaimanakah caranya agar kita membeli flagnya? dan bagaimana kita memiliki cukup uang untuk membelinya?


Simple Saja, jika kita cerna baik-baik soalnya "you not have much money. you need to work to get money" , dalam artian kita harus melakukan sesuatu agar uang kita bertambah. Apa kah kalian terpikir langkah apa yang harus kita lakukan untuk mengubah nilai uang nya ? ...............

Yap, (semoga terpikirkan oleh kalian) jika kalian sering/pernah mengedit sebuah content/artikel dalam sebuah website menggunakan "Inspect element" maka tanpa pikir panjang kalian akan mencoba melakukannya....

Dan Kita Lihat bagian ini.........
Kita dapat lihat bahwa variable ballance merupakan variable nilai 'money' disimpan, dan disana di cek menggunakan if(ballance > 9999) { output.flag } else { can't bug flag } yang artinya bahwa uang kita harus diatas dari "9999"
Dalam source tersebut kita mengetahui bahwa "99999999" Money di panggil menggunakan javascript dengan memanfaatkan "document.getElementById('money')" sehingga ketika kita ganti nilai ( value ) nya, otomatis saat dipanggil javascript akan merespon nilai nya sesuai dengan data yang kita masukan.

Dan Alhasil, kita coba klik "Try It" .......


Yeahhhh, Itu dia Flag nyaaa........