1. Trang chủ
  2. » Công Nghệ Thông Tin

Hacking Security Sites part 21 ppt

6 160 1

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Nội dung

Rồi Giờ Mục tiêu kế tiếp: Cấu hình IIS hỗ trợ PHP Chúng ta đã cùng nhau cài cái IIS6 và sau đó là PHP5 vào Windows Server 2003 Sau đó ta chạy hàm phpinfo trong file phpinfo.php thì thấy rằng báo rằng "page can not display" hay thậm chí sẽ không cho down load luôn file phpinfo.php về, vì sao IIS lại " đối xử " như thế đối với file .php khi mà rõ ràng ta đã cài đặt trình thông dịch PHP vào rồi. Để hiểu được điều này chúng ta sẽ xem wa một chút cơ chế làm việc của IIS . Khi nhận được request từ client đến 1 file nào đó (có phầ n mở rộng xác định, vd:.php,.asp, ) , IIS không thể tự ý xử lý một cách tùy tiện mà nó sẽ phải xem coi mình đã được chỉ đạo như thế nào. Trong trường hợp này, chúng ta hoàn toàn chưa cho IIS biết nó sẽ phải làm gì khi đụng phải "thằng" file có đuôi là .php >"không ra lệnh thì tui ngồi chơi xơi nước cho khỏe" Để ngăn anh chàng nhân viên này trốn việc ta quy định cụ thể luôn cho hắn như sau: "Khi nhận được yêu cầu file *.php, anh bạn hãy chuyễn ngay file ấy cho đồ ng nghiệp là Trình thông dịch (TTD) PHP xử lý, sau khi nhận được kết quả trả về dưới dạng html thì hãy trả về cho client đả gửi request! " Và sau đây là các bước cụ thể để ra lệnh cho IIS: Các bạn chỉnh sửa các thông số như trong hình nhé: B1:Home Directory (chú ý thư mục c:\Web là thư mục gốc trên Web Server) B2:Permission cho thư mục Web B3:Chọn Application Extension B4:Web Service Extensions Okie, sau khi làm xong các bước trên các bạn hãy view lại file phpinfo.php để xem các thông tin trên Web Server.Được rồi đó ^-^ Bây giờ bạn search thử chữ mysql trên trình duyệt đang hiển thị phpinfo.php. Kết quả: không tìm thấy Okie TIếp theo chúng ta sẽ tiếp tục công việc install MySql4 lên Home Server của mình ^-& CÒN TIẾP Cài đặt Cơ sở dữ liệu (CSDL) MySQL4 cho PHP5 Cụ thể trong bài này, tớ đã test với mysql-essential-4.1.11-win32.msi Các bạn Download về sau đó cài đặt bình thường. (nếu muốn cấu hình lại trong các lần chạy sau thì chạy file MySQL\bin\MySQLInstanceConfig.exe , giả sử cài cài đặt MySQL vào thư mục MySQL) Xong xuôi, bây giờ ta ung dung view lại cái trang phpinfo.php lúc trước, search thử Table của mysql trên trình duyệt đang hiể n thị phpinfo.php Lạ wa', vẫn không thấy gì Điều đó chứng tỏ PHP vẫn không biết đến sự có mặt của MySQL . Đối với các phiên bản PHP trước đây (4,3, ) thì sau khi làm xong các bước trên chắn chắn sẽ search ra nguyên table của mysql. Vậy vấn đề nằm ở đâu? Thì ra, kể từ các phiên bản PHP 5 trở đi các nhà lập trình sáng tạo ra ngôn ngữ PHP đã quyết định không mặc định cho PHP xài CSDL MySQL như trước. Vậy ta ph ải làm sao đây? Bạn con nhớ file php.ini được tạo ra trong thư mục Windows, và php bản .zip mà tớ nói bạn tải về chứ, đã đến lúc mò đến nó Sau đây là các bước cụ thể để nói cho PHP biết :có "anh bạn" CSDL MySQL trên đời và "anh" hãy "hợp tác" với "anh ấy" để "làm ăn" ^-^ : B1: Giải nén bản PHP .zip , copy file libmySQL.dll vào thư mục WINDOWS B2:copy file php_mysql.dll vào thư mục cài đặt PHP (giả sử "D:\Program\PHP\") B3: Mở file php.ini : _sửa lại extension_dir ="D:\Program\PHP\" _Bỏ dấu ; trước dòng extension=php_mysql.dll Ok Lập lại thao tác view cái trang phpinfo.php, rồi search thử chữ mysql trên trình duyệt bạn sẽ thấy 1 table được dành riêng cho MySQL đang hiển thị Đến đây mọi thao tác cài đặt và cấu hình WebServer hỗ trợ PHP đã xong. Các lần cài đặt lại (nếu có) về sau ta chỉ cần nhớ 3 bước: B1: cài đặt IIS B2: cài đặt PHP và cấu hình cho IIS nhận biết PHP B3: cài đặt MySQL và cấu hình cho PHP nhận biết MySQL enjoy ! Tiêu đề: CGI hacking Tác giả: (Someone) CGI hacking Hiện nay các ứng dụng WEB dùng CGI rất nhiều,nó trở nên rất phổ biến và cũng được các hacker quan tâm và không ít các lổi bảo mật được tìm thấy .Bạn muốn hack web sữ dụng CGI thì bạn phải biết chút ít về ngôn ngữ PERL.Nếu bạn không biết gì về PERL thì tôi khuyên bạn nên đi tìm một cuốn sách nói về PERL mà đọc,điều này chắc là không khó đối với bạn. Trước tiên ta hãy xem cách thức làm việt của GET và POST như thế nào: GET: GET là phương pháp mặt định để đệ trình các form,tuy là phương pháp mặt định nhưng có một vấn đề với việt sữ dụng GET.Phương pháp này thêm thông tin chứa trong form vào chuổi vấn tin URL(,nếu URL quá dài thì chương trình tự động xén bớt nên gây ra sự đệ trình không chính xác.Thông tin đực lấy từ biến môi trường $ENV{'QUERY_STRING'} ví dụ: #script.cgi?sometext #sẽ là: $file = 'sometext' $file = $ENV{'QUERY_STRING'}; #script.cgi?some&text #sẽ là: $name = 'some' and $file = 'text' ($name, $file) = split(/&/, $ENV{'QUERY_STRING'}); (chú ý:Tôi khuyên bạn biết chút ít về PERL cho dù bạ n không lập trình bằng PERL,và điển hình là bài viết này bạn hiểu nó như thế nào ví dụ lệnh split() làm như thế nào ) Và nếu nhiều biến thì như sau: @pair = split(/&/, $ENV{'QUERY_STRING'}); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); #used to make + into spaces $value =~ tr/+/ /; #used to convert url encoding (hex) to ascii : $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $FORM{$name} = $value; #script.cgi?name=some&file=text #sẽ là: $FORM{'name'} = 'some' and $FORM{'file'} = 'text' } Trên đây là những ví dụ đơn giản về phương thức GET.và HTTP có dạng như sau: GET /script.cgi?some&text HTTP/1.0 POST: POST là phương pháp thư hai dùng để đẹ trình các form và đang đươc sữ dụng rộng rải nhất,vì nó không hạn chế lượng dữ liệu truyền đến server.Để đọc dữ liệu truyền đến server,trước tiên bạn phải xác định chiều dài của nó,và thực hiện điều này bằng cách qua iến môi trường CONTENT_LENGTH và sau đó bạn có thể đọc số byte chính xác trong một biến khác,chuổi được mã hoá bởi URL do đó bạn cần phân tích và giải mã nó.Đây là ví dụ của HTML được "submit" form với hai biến "name" và "file": <form action="script.cgi" method="post"> <input type="text" name="name" value=""> <input type="hidden" name="file" value="profiles.txt"> <input type=submit value="submit"> </form> Và tất cã các form dữ liệu sẽ được đặt trong:into $FORM{'name-of-field'} đọc POST data: $buffer read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); #used to make + into spaces $value =~ tr/+/ /; #used to convert url encoding (hex) to ascii $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; #this would set $FORM{'name'} = whatever the user put in the text field #and $FORM{'file'} to profile.txt $FORM{$name} = $value; } Làm việc của POST phần nào đó rất giống GET nhưng bạn sữ dụng hàm read() để đọc vào STDIN và nó sẽ send phần dữ liệu chứa trong phương thức POST.CONTENT _LENGTH dùng để gọi script để đọc dữ liệu,nó bao gồm trong phương thức POST.Một số script sữ dụng phưong thức này có dạng như sau: <input type="hidden" name="file" value="profiles.txt"> >đây là phần ẩn của mã nguồn URL mà khi hacker muốn xem thì không khó,khi anh phát hiện ra code có dạng như thế thì có thể đổi lại như sau:  . B3: cài đặt MySQL và cấu hình cho PHP nhận biết MySQL enjoy ! Tiêu đề: CGI hacking Tác giả: (Someone) CGI hacking Hiện nay các ứng dụng WEB dùng CGI rất nhiều,nó trở nên rất phổ biến

Ngày đăng: 01/07/2014, 17:20

TỪ KHÓA LIÊN QUAN