Tóm tắt quá trình hack athena.com.vn
(Local attack)
Bỏ qua mấy giai đoạn lặt vặt bây giờ làm việc với trường hợp đã có sẵn
con webshell
//http://12a6dh.info/forum/cache/skin_cache/cacheid_2/skin_public.php
Chạy con backdoor trên kết nối vào mysql của 12a6 sau đó tiến hành lấy
sources của athena. Trong trường hợp này xác định link của trang quản
trị là /admin nên chỉ chú trọng vào việc lấy code của các file liên quan
đến cái này thui (khi nào có con backdoor trên host của nó rùi lấy
tiếp). Lấy code bằng mấy câu query sau:
CREATE TABLE test(text LONGTEXT);
load data local infile 'path/file' into table test FIELDS TERMINATED BY
',' OPTIONALLY ENCLOSED BY '\'' LINES TERMINATED BY '\n';
Có code rùi thì ngồi đọc nó, trước hết là thằng index.php
session_start(); // quản lý bằng session chứ ko phải bằng cookie, có
nghĩa là khi ta vào link admin nó sẽ tạo cho ta một phiên làm việc,
phiên làm việc này sẽ được server tạo ra và lưu vào file sess_......
(VD: sess_2d193503319fefd5a48b208d48b69d36) nằm trên server, mặc định
của phiên làm việc này là ko hợp lệ nhưng nếu ta đăng nhập thành công
thì server sẽ chỉnh sửa file sess_ kia thành hợp lệ (hack được athena
phải cảm ơn thằng này nhiều ). Tiếp tục nào case 'login' : include
"_login.php"; break; thằng index sơ sơ như vậy là được rùi bây giờ
chuyển sang thằng _login.php
if (isset($_POST['txtUsername'])) $admin_user=$_POST['txtUsername']; else $admin_user='';
if (isset($_POST['txtPassword'])) $admin_pass=$_POST['txtPassword']; else $admin_pass='';
if (isset($_POST['txtPassSec'])) $admin_sec=$_POST['txtPassSec']; else $admin_sec='';
hô hô user, pass1, pass2.
$admin_sec = md5(base64_encode($admin_sec));
if ($admin_sec == "53f8797e875fb1b667c86e4ae15cee24") {
if ( (!empty($admin_user)) && (!empty($admin_pass)) )
{
$admin_pass = md5($admin_pass);
$query = "select * from admin WHERE username='$admin_user' AND password='$admin_pass'";
ặc ặc cái pass2 của nó vừa base64_encode vừa md5, nó mà đặt pass dài xíu
là ngồi decode đù người luôn mà chưa chắc gì có kết quả, còn cái pass1
cũng bị md5 luôn.
Có 2 cách giải quyết được đặt ra, thứ nhất là dò 2 cái pass của nó, thứ 2
là fake cookie. Cách thứ nhất ko chơi, ngu gì mà ngồi dò pass trong khi
cách thứ 2 có vẻ dễ ăn hơn và khả năng thành công cũng cao hơn. Hồi nãy
coi file index thấy nó quản lý phiên làm việc bằng session coi bộ ngon
ăn. Vậy là quyết định chọn cách 2.
Có 2 hướng giải quyết cho cách 2:
+ Thứ nhất là khi ta mở trang index.php ra nó sẽ tạo cho ta một session
trên server, công việc của ta là tìm cách edit cái phiên làm việc sao
cho nó trở thành hợp lệ. Coi cái phpinfo() của nó xem nào
session.save_path=/tmp. Ok rùi mở cái thư mục /tmp coi thử có gì trong
đó. Ặc ặc …. bị access denied rùi coi bộ hướng đi này ko ổn, chuyển
hướng đi thui.
+ Thứ hai nếu ta edit cái file session ko được thì tại sao ta ko tạo ra
một cái file session mới hợp lệ với cái source đã có kia rùi fake cookie
của web browser với cái session mới đó. Vậy là đã xác định được chính
xác hướng đi và những cái cần phải làm, công việc tiếp theo là up
sources của athena lên host 12a6, edit lại cái pass2 trong file
_login.php, edit cái pass1 trong db của nó, xong rùi login nào … vừng ơi
mở ra…. bùm vào được admin control panel rùi (cái này là đồ giả nằm
trên host của 12a6) vào phần quản lý cookie của web browsers (opera) coi
thử cái session của nó là gì nào, copy nó lại bây giờ chuyển qua thằng
athena fake bằng cái session đó, refresh lại nào …. bùm …. he he heeeeee
vào được admin control panel của athena rùi (hàng thật chất lượng cao
), tìm chỗ up con shell…..
GAME OVER
Author: longnhi
Longnhi hack Athena.com.vn như thế nào?
Longnhi hack Athena.com.vn như thế nào? | Juno_okyo's Blog