Hướng dẫn include shell trong PhpBB
--------------------------------------------------------------------------------
Đã có nhiều bài nói về cách up shell trong vbb, ipb rồi mà chưa thấy có bài nào nói về chuyện up shell trong phpbb nên navaro mở ra topic này để hướng dẫn và cùng mọi người bàn luận thêm một tí nhé.
Đầu tiên ngâm cứu source của phpbb một chút.
Lấy 1 file ra làm ví dụ : faq.php (functions.php....)
Hãy chú ý dòng 62 :
Trích:
include($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/' . $lang_file . '.' . $phpEx);
Ở đây giá trị của biến $board_config['default_lang'] được lấy từ db. Mặt định giá trị là english.
Vậy thì ta có thể biến đỗi giá trị của nó một chút để sao cho nó kết hợp với các biến khác tạo thành 1 đường dẫn đến 1 file với nội dung nguy hiểm ! PHPBB cũng như tấc cả các mã nguồn mỡ khác là ko cho up load những file có đuôi như php và hạn chế cả dung lượng file nữa. Nếu bạn đã có acc admin thì hãy config để cho phép người dùng có thể upload avatar hoặc ko cần nếu như nó đã được kích hoạt.
Tấc nhiên bạn cũng đoán được "nội dung" của file avatar mà bạn sẽ up lên chứa cái gì trong đó rồi chứ ?
Giả sử : ta đã set $board_config['default_lang'] ='english/../../images/avartars/img.gif', khi xem lại dòng 62 ta thấy rằng chắc chắn nó sẽ inlcude vào img.gif.
Nếu trong img.gif có script upload file hoặc include 1 con r57, c99 thì faq.php sẽ ... như ý bạn rồi chưa ?
.......
Bạn đã làm như thế nhưng khi vào faq.php bạn ko thấy gì cả ngoài những dòng chữ đáng ghét. Bạn tự hỏi tại sao thế ?
Hì, hãy tiếp tục :
Trích:
$userdata = session_pagestart($user_ip, PAGE_FAQ);
init_userprefs($userdata);
Đây là 2 dòng 31,32 trong faq.php. Tại sao lại "khoanh tròn" 2 dòng này ?
Bạn hãy nhìn lại db bạn thấy nó có 1 table session, nhìn lại mớ file hỗn độn trong thư mục includes bạn thấy session.php . Suy nghĩ ban đầu : có lẽ nó có liên quan đến session đây.
Tiếp tục mở file session.php ra, đây là 2 func để "xem sét" session, ở đây ko post lên 2 hàm này vì code dài và hơi khó hiểu một tí
Một mẹo nhỏ, bạn đặt ra giả thiết có lẽ bạn ko include file được là do 2 dòng này chăng ? Vậy thì làm sao vô hiệu nó ? Hãy vào db mà xem table session, nếu như giả thiết gì chắc chắn nó sẽ lấy giá trị session trong table này để so sánh với session của bạn. Vậy sao ko del nó đi ?
Hihi, tới đây chắc chắn bạn đã thành công rồi đó
Nếu vẫn chưa được thì hãy post câu hỏi của bạn lên đây.
Navaro(HCE)