PHPVN.org
Welcome, Guest. Please login or register.
May 24, 2012, 05:46:22 am
17050 Posts in 3760 Topics by 15404 Members
Latest Member: hung5s
PHPVN.org  |  Các vấn đề khác  |  Bài tập PHP  |  Bài tập bảo mật cơ bản [ Hướng dẫn hack website PHP ] 0 Members and 10 Guests are viewing this topic. « previous next »
Pages: [1]
Author Topic: Bài tập bảo mật cơ bản [ Hướng dẫn hack website PHP ]  (Read 12639 times)
nothing1306
Mãi PHP chiêu thân đây... mại vô, mại vô...
Global Moderator
PHP Intermediate
*****
Posts: 214

nothing1306
View Profile Email
« on: January 29, 2010, 03:30:41 pm »

Tôi làm bài tập bảo mật... Bạn làm chung với tôi chứ?
Hãy cố gắng kiếm nhiều đáp số hơn tôi nhé... Good Luck

Bài tập số 1:
Hãy đăng nhập thành công vào website với những thông tin bị lộ như sau:
- Lộ thông tin về server:
Cấu hình PHP: register_globals = on
- Lộ Souce:
Trang index.php:
Quote
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Trang Quản Trị</title>
</head>

<body>
<form name="login" action="login.php" method="post">
    <input type="text" name="username" />
    <input type="text" name="password" />
    <input type="submit" name="submit" value="Login" />
</form>
</body>
</html>

Trang functions.php:
Quote
<?php
   function check_login()
   {
      $submit = $_POST['submit'];
      if($submit=='Login'):
         $username = $_POST['username'];
         $password = $_POST['password'];
         if($username == 'nothing1306'):
            if($password == 123456):
               return true;
            else:
               return false;
            endif;
         else:
            return false;
         endif;
      else:
         return false;
      endif;
   }
?>

Trang login.php:
Quote
<?php
   include("functions.php");
   if(check_login()):
      $succeed = true;
   endif;
   if($succeed):
      echo 'Ban da dang nhap thanh cong, nhan <a href="index.php">vao day</a> de tro lai trang dang nhap';
   else:
      echo 'Username hoac Password bi sai, nhan <a href="index.php">vao day</a> de tro lai trang dang nhap';
   endif;
?>

Điều kiện:
- Không dùng username: nothing1306 và password: 123456

Gợi ý:
- Hãy đi tìm hiểu về "register_globals" [ http://www.google.com ]

Source code của bài tập:
- Gồm 4 file:
   + index.php
   + functions.php
   + login.php
   + .htaccess [ không cần lưu ý file này, file này chỉ giúp sửa đổi cấu hình của PHP sao cho giống với bài tập ]
http://www.mediafire.com/download.php?mzeynjlwcno
« Last Edit: January 29, 2010, 03:48:15 pm by nothing1306 » Logged

Bạn có một ít tiền, bạn muốn dùng những đồng tiền ít ỏi đó cho những công việc to lớn, vĩ đại, có ý nghĩa, click chuột vào đây: http://sechia.vn/diendan/vi-cong-dong/
Bạn có một ít tình, bạn muốn tìm kiếm 1 người yêu lý tưởng, click chuột vào đây: http://phpvn.org/index.php?action=profile;u=6580
nothing1306
Mãi PHP chiêu thân đây... mại vô, mại vô...
Global Moderator
PHP Intermediate
*****
Posts: 214

nothing1306
View Profile Email
« Reply #1 on: January 31, 2010, 04:06:48 am »

Ở bài tập số 1, nếu có thực tập hoặc đã từng trải thì chắc các bạn cũng đã thấy được sơ hở trong việc lập trình và vì thiếu kiến thức về cấu hình của php nên đã để hacker có cơ hội khai thác. Nhưng ở thực tế theo kinh nghiệm của tôi mà nói thì rất ích lập trình viên nào mắc phải những lỗi này, cái mà lập trình viên viết sẽ là:

Quote
<?php
   include("functions.php");
   $succeed = check_login();
   /*
   if(check_login()):
      $succeed = true;
   endif;
   */
   if($succeed):
      echo 'Ban da dang nhap thanh cong, nhan <a href="index.php">vao day</a> de tro lai trang dang nhap';
   else:
      echo 'Username hoac Password bi sai, nhan <a href="index.php">vao day</a> de tro lai trang dang nhap';
   endif;
?>

Vậy đâu là cách khắc phục cho lỗi này?
- Thứ 1, bạn cần kiểm tra lại cấu hình của PHP trong Server.
Quote
<?php
   if( ini_get("register_globals") == '1' )
   {
      echo "Cau hinh register_globals hien dang bat";
   }
   else
   {
      echo "Cau hinh register_globals hien dang tat";
   }
?>
Theo kinh nghiệm của mình thì nên cấu hình register_globals là tắt.

- Thứ 2, bạn cần hình dung ra cách hoạt động code trong trang web và viết thật rõ ràng để tránh bị tận dụng lỗi ở trên.

Đồng thời cũng có 1 số lỗi về cách lấy giá trị của biến mà tôi đã chứng kiến ít nhất 2 lập trình viên giỏi hơn tôi mắc phải, trong đó phải kể đến là cách lấy biến của hàm $_REQUEST:
- Lạm dụng hàm $_REQUEST.

* $_REQUEST: Đây là 1 hàm của PHP dùng để nhận các tham số đưa vào giống như hàm $_GET hoặc hàm $_POST, tuy nhiên hàm $_REQUEST sẽ nhận những tham số được truyền vào [ nếu có tham số ] theo dạng $_GET hoặc cả theo dạng $_POST. Hàm này thường được thấy khi ta buộc phải lấy 1 hoặc 1 vài tham số truyền vào theo 1 trong 2 hai trường hợp, hoặc GET hoặc POST.

Bài tập số 2:
Hãy đăng nhập thành công vào website với quyền quản trị là admin, những thông tin bị lộ như sau:
- Lộ Souce:

Trang index.php
Quote
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Trang Quản Trị</title>
</head>

<body>
<form name="login" action="login.php" method="post">
    <input type="text" name="username" />
    <input type="text" name="password" />
    <input type="hidden" name="level" value="mod" />
    <input type="submit" name="submit" value="Login" />
</form>
</body>
</html>

Trang functions.php
Quote
<?php
   function check_login()
   {
      $submit = $_REQUEST['submit'];
      if($submit=='Login'):
         $username = $_REQUEST['username'];
         $password = $_REQUEST['password'];
         $level = $_REQUEST['level'];
         if($username == 'nothing1306'):
            if($password == 123456):
               if($level == "mod"):
                  return "MOD";
               elseif($level == "admin"):
                  return "ADMIN";
               else:
                  return false;
               endif;
            else:
               return false;
            endif;
         else:
            return false;
         endif;
      else:
         return false;
      endif;
   }
?>

Trang login.php
Quote
<?php
   include("functions.php");
   $level = check_login();
   if( ($level == "MOD") || ($level == "ADMIN") ):
      echo 'Quyen cua ban la '.$level;
      echo '<br/>';
      echo 'Ban da dang nhap thanh cong, nhan <a href="index.php">vao day</a> de tro lai trang dang nhap';
   else:
      echo 'Username hoac Password bi sai, nhan <a href="index.php">vao day</a> de tro lai trang dang nhap';
   endif;
?>

Source code của bài tập:
- Gồm 3 file:
   + index.php
   + functions.php
   + login.php
http://www.mediafire.com/download.php?mtzhd2zkmwz
Logged

Bạn có một ít tiền, bạn muốn dùng những đồng tiền ít ỏi đó cho những công việc to lớn, vĩ đại, có ý nghĩa, click chuột vào đây: http://sechia.vn/diendan/vi-cong-dong/
Bạn có một ít tình, bạn muốn tìm kiếm 1 người yêu lý tưởng, click chuột vào đây: http://phpvn.org/index.php?action=profile;u=6580
nothing1306
Mãi PHP chiêu thân đây... mại vô, mại vô...
Global Moderator
PHP Intermediate
*****
Posts: 214

nothing1306
View Profile Email
« Reply #2 on: February 02, 2010, 09:07:22 am »

Trước khi tôi viết bài tập số 3 này cho các bạn thực tập, các bạn hãy dành chút thời giờ để đọc cuộc đối thoại sau:

Quote
X: Tao thấy mày viết bài tập số 1 thì còn được, vì ít ra tao cũng học được thêm cái "biến" cấu hình trong PHP, còn bài tập thứ 2 thì dỡ quá, bản thân tao là lập trình viên này, tao biết là không nên, nhưng tao thấy tiện và tao cũng nghĩ đến nó chẳng nguy hiểm gì nên tao mới viết, cho dù có bị khai thác lỗi đi nữa, thì nó cũng chẳng làm gì được "source" của tao, nó chỉ làm cho trang bị lỗi này lỗi nọ do mấy cái giá trị của biến bị thay đổi hoặc thiếu giá trị của biến mà thôi, vậy mà mày làm quá, cho nó là nguy hiểm, rồi gắn đoạn code lỗi đó vô đúng phần chạy code của admin, nếu mà tao sửa lại, mày có hack được không?

Tôi: [ Tôi đang chờ xem cách thay đổi code của X là như thế nào ]

X: Mày mở trang functions.php lên, thay bốn cái $_REQUEST bằng $_POST coi, hack được, tao gọi mày bằng cụ.

Tôi: Cheesy [ Tôi mĩm cười, vì tôi biết rằng X sẽ phải gọi tôi bằng cụ Cheesy ]

Thế tại sao tôi tự tin, khẳng định điều đó? Vì tôi biết bạn của tôi đã không hiểu nhiều lắm về bảo mật, hay có thể nói là không quan tâm đến chúng.
Trước đây tôi cũng đã từng như vậy khi còn là 1 lập trình viên ít kinh nghiệm [ Tôi thông cảm điều đó với X, dù sao tôi cũng rất mừng vì X đã đi theo ngành lập trình Web bằng ngôn ngữ lập trình PHP... cho dù hiện nay X tiến bộ hơi chậm... hơn 1 tháng sau gặp lại X, X vẫn dậm chân tại chỗ, thậm chí còn "đi lùi" Cheesy ]

Quote
Tôi: Mày mở trang index.php lên đi, save cái trang đó về máy tính.

X: Làm gì?

Tôi: Làm đi, save xong rồi thì mở file đó lên và sửa giá trị của field level thành admin, giá trị action của form thành http://localhost/rq/login.php

Đến đây thì X đã hiểu ra cách làm của tôi, cách làm của tôi là thay đổi giá trị field level thành admin để phù hợp với đoạn code. [ Dĩ nhiên phải thay đổi cả action của form để gửi giá trị admin này đến đúng trang cần nhận nó ]

Quote
X: Mày điên àh, không làm kiểu đấy. Làm kiểu đó không hay.

Tôi: Thì mày đâu có giao không được làm thế, vậy cũng là hack mà.

X: Vậy thì mày sửa lại trang functions.php như thế này đi.

Trang functions.php:
Quote
<?php
   function check_http_referer()
   {
      $http_referer = $_SERVER['HTTP_REFERER'];
      if($http_referer == 'http://localhost/rq/index.php' || $http_referer == 'http://localhost/rq/'):
         return true;
      else:
         return false;
      endif;
   }
   function check_login()
   {
      $http_referer = check_http_referer();
      if($http_referer):
         $submit = $_POST['submit'];
         if($submit=='Login'):
            $username = $_POST['username'];
            $password = $_POST['password'];
            $level = $_POST['level'];
            if($username == 'nothing1306'):
               if($password == 123456):
                  if($level == "mod"):
                     return "MOD";
                  elseif($level == "admin"):
                     return "ADMIN";
                  else:
                     return false;
                  endif;
               else:
                  return false;
               endif;
            else:
               return false;
            endif;
         else:
            return false;
         endif;
      else:
         return false;
      endif;
   }
?>

Như các bạn đã biết, biến $_SERVER['HTTP_REFERER'] là biến dùng để kiểm tra xem "trước khi xem trang hiện tại, bạn đã xem trang gì", trong trường hợp bạn mở trang hiện tại đang xem bằng cách gõ link dẫn trực tiếp trên thanh address thì giá trị này sẽ là NULL, trong trường hợp của tôi, việc thực hiện gửi dữ liệu đến trang http://localhost/rq/login.php từ file save về máy tính như trên thì biến $_SERVER['HTTP_REFERER'] cũng sẽ mang giá trị NULL.
Do đó hàm check_http_referer() trong trang functions.php sẽ trở về false.

Bạn của tôi thêm đoạn code đó mục đích để kiểm tra xem tôi gửi dữ liệu từ đâu, từ trang index.php hay từ trang tôi đã save về máy.

Vậy thì cách nào để có thể sửa lại giá trị trong field level thành admin và đồng thời đảm bảo rằng $_SERVER['HTTP_REFERER'] mang 1 trong 2 giá trị kể trên [ http://localhost/rq/index.php, http://localhost/rq/ ]

Ok... Trước hết, nếu các bạn dùng firefox thì hãy download 1 add-on của nó, tên add-on đó là RefControl. https://addons.mozilla.org/en-US/firefox/addon/953. Add-on này cho phép các bạn "sửa đổi được giá trị của biến $_SERVER['HTTP_REFERER']" [ tạm hiểu thế Cheesy ]

Sau khi các bạn nhấn vào nút "Add to Firefox" thì 1 hộp thoại xuất hiện, bạn nhấn vào "Install Now", chờ firefox tự động cài đặt xong rồi thì sẽ xuất hiện 1 hộp thoại add-on của firefox, bạn nhấn vào "Restart FireFox"

Sau đó bạn chọn menu Tool -> RefControl Option.. -> Add Site
Nhập vào trường Site: http://localhost
Chọn Custom và nhập vào: http://localhost/rq/index.php hoặc http://localhost/rq/
Nhấp vào Ok
Đến đây thì khi bạn xem bất kỳ trang nào từ localhost thì giá trị biến $_SERVER['HTTP_REFERER'] luôn là http://localhost/rq/index.php hoặc http://localhost/rq/

Và dĩ nhiên khi tôi kết hợp với cách làm cũ, tôi hoàn toàn có thể vượt qua mục đích của đoạn code đó.

Bài tập số 3:
Thực hành lại những gì ở trên.

P/s: Qua điều này ta thấy rõ 1 điều là không phải chỉ học PHP thì có thể bảo mật cho PHP, mà còn phải hiểu rộng, hiểu nhiều, và đặc biệt là phải hiểu kỹ.
Các bạn đồng ý với tôi chứ?
« Last Edit: February 03, 2010, 01:36:41 pm by nothing1306 » Logged

Bạn có một ít tiền, bạn muốn dùng những đồng tiền ít ỏi đó cho những công việc to lớn, vĩ đại, có ý nghĩa, click chuột vào đây: http://sechia.vn/diendan/vi-cong-dong/
Bạn có một ít tình, bạn muốn tìm kiếm 1 người yêu lý tưởng, click chuột vào đây: http://phpvn.org/index.php?action=profile;u=6580
nothing1306
Mãi PHP chiêu thân đây... mại vô, mại vô...
Global Moderator
PHP Intermediate
*****
Posts: 214

nothing1306
View Profile Email
« Reply #3 on: February 28, 2010, 11:14:11 am »

Đây không phải là một bài tập, đây là vài lời nói chung của tôi về những gì tôi và các bạn sẽ hiểu "theo của tôi" về 2 từ "hacker", "cracker".
Thật sự là tôi định đi ngủ rồi, nhưng biết trước là mình không thể nào ngủ được.
Thôi kệ, sống nốt kiếp "làm dơi" thêm 1 thời gian nữa vậy.
Đáng lý là ở lần "post" bài viết này, tôi sẽ gửi đến các bạn bài tập số 4, đó là lỗi include trong php. Nhưng sau khi nghĩ đi nghĩ lại thì có lẽ nên viết bài viết này trước khi bước vào lỗi include đó.
Tôi chỉ là người viết lại những lỗi thông dụng của PHP mà tôi đã vô tình hoặc "hữu tình" Cheesy đọc được trên những website khác mà thôi, có điều khi tôi đến với phpvn.org thì tôi cố gắng viết lại những hiểu biết của mình 1 cách đơn giản nhất sao cho "tôi ngày xưa" có thể hiểu được. Và với ý nghĩ đó thì tôi nghĩ các bạn cũng có thể hiểu được Cheesy.
Đã mấy lần tôi định viết về lỗi này rồi, nhưng trong đầu tôi cứ hình thành cái gọi là khai thác... Cheesy, nó xuất hiện 1 đống cách để khai thác để khi bài viết của tôi đến với các bạn sẽ trở nên lộn xộn với 2 từ "hacker", "cracker" và tôi không biết nên viết thế nào để "tôi ngày xưa" có thể hiểu. Vậy nên mới có bài viết này.

Mục đích của bài viết này chỉ là thể hiện 1 vài khái niệm của tôi về hacking và bảo mật, thêm vào đó 1 số hướng để có thể "hack có ích" và "hack vô ích".
Từ bài viết này trở đi, bạn là "hacker" hay "cracker" trong con mắt của tôi là do bạn quyết định.
Sau đây là khái niệm chung về "cracker", "hacker" của tôi:
"Hacker": Người mà tìm ra lỗi bảo mật, trong lúc tìm ra lỗi bảo mật, hạn chế thay đổi 1 số quy trình hoạt động đúng của chúng [ những phần mềm, source code... ] hoặc những thông tin thuộc về dữ liệu [ database... ], ... và sẵn sàng trả chúng về vị trí nguyên vẹn trong trường hợp có thể nhằm mục đích trả tất cả chúng về lại tình trạng ban đầu. Tuyệt đối không gây hại gì đến với "mục đích hack".
"Cracker": Những gì không thuộc về ý nghĩa của 1 "Hacker", thì đó là 1 "Cracker". Với tôi, "Cracker" đồng nghĩa với cái gọi là "phá hoại".
Khi bạn hack thành công vào 1 "cái gì đó", bạn để lại "back-door" hoặc bất cứ gì không gây hại "trực tiếp" cho "mục đích hack" và khả năng gây hại "gián tiếp" là ít, thì bạn vẫn được tôi kính trọng như 1 "hacker"... 1 hacker thực thụ... Wink

Sâu 1 tí về khái niệm "hacker", tôi sẽ diễn tả cho các bạn thấy 1 vài ý nghĩ của tôi...
Giả sử như tôi nói về "hack", điều đầu tiên tôi nghĩ sẽ là 1 cái máy tính có trong bộ não của tôi. Và với tôi, nó như 1 ngân hàng, có thể kiêm cả nhà trọ Cheesy [ tạm thời tôi gọi cái ngân hàng này là 1 căn nhà ]. 1 cách nào đó, "hack" có nghĩa là chuẩn bị làm 1 điều gì đó mờ ám, ví dụ như chuẩn bị "ăn trộm", nhưng sẽ không "lấy vật phẩm", chính xác như có vẻ thích hợp hơn... thì đó là "xem trộm" Cheesy.
Giờ giả sử, ta chuẩn bị hack 1 Server, thì điều hiện ra trong đầu tôi sau 1 cái máy tính là hệ điều hành, những phần mềm nằm trong đó,.... [ Tôi không hiểu nhiều lắm về những điều này ], và tôi xem nó như những vật dụng ở trong 1 ngôi nhà, như cửa sổ, cửa chính, camera...
Giờ giả sử, ta chuẩn bị hack 1 website, thì điều hiện ra trong đầu tôi là những gì cần thiết cho 1 website, như là phần mềm PHP, APACHE, MYSQL... những công nghệ bạn dùng trong website của bạn, như là codeigniter, htaccess, PHPMYADMIN..., và tôi xem cái website ấy như 1 cái thùng tiền quyên góp trước cửa 1 ngôi nhà. Cái mà cho dù bạn là người tốt hoặc người xấu gì bạn cũng có thể thao tác được với nó.

Bây giờ bắt đầu cái gọi là "hacking"...
Bạn biết đấy, đặt trường hợp bạn đã có thể "hack" thành công 1 ngôi nhà thì bạn có thể dễ thao tác với mọi vật dụng trong nhà, kể cả với cái thùng tiền đó. Đưa cái ý nghĩ đó trở lại cái máy tính, dẫn đến trường hợp nếu bạn có thể "chiếm" được Server, thì bạn hoàn toàn có thể nghịch ngợm với bất cứ cái gì trong đó, như là website chẳng hạn... hay xóa 1 vài phần mềm trong Server... nó chẳng khác gì so với việc ta đập vỡ 1 vài đồ đạc trong căn nhà đó...

Ok... có lẽ mọi thứ là ổn... Hy vọng là với cái ý nghĩ mà tôi đã viết ra sẽ phù hợp với những ý nghĩa về "hack".

Giờ thì chúng ta tiến hành "hack"...
Trong trường hợp này tôi chỉ muốn đề cấp đến phần "hack" 1 cái website, nó cũng có ý nghĩa là tôi sẽ "hack" cái thùng tiền ấy.
Bắt đầu...
Điều đầu tiên khi tôi muốn tiến hành "hack", tôi sẽ dòm ngó xung quanh cái căn nhà trước, tìm hiểu xem những gì mà tôi có thể được nhòm ngó từ bên ngoài. Như căn nhà được xây dựng theo kiểu kiến trúc nào [ Hệ điều hành thuộc loại nào? ], những vật dụng nào được dùng ở bên ngoài căn nhà đó, cái mà tôi có thể nhìn thấy vào lúc này... những cái camera [ Phần mềm bảo mật của Server ], những cái cửa, cửa chính, cửa sổ... [ Port nào là mở, Port nào là đóng ], những cái bàn, cái ghế bên trong căn nhà [ Phần mềm được sử dụng trong Server ],... 1 vài thông tin hữu ích khác, như biển quảng cáo giới thiệu sản phẩm [ Với những cấu hình PHP như sau, bạn sẽ có thể có 1 website hoàn hảo với 1 host giá rẻ bất ngờ, tặng kèm domain như ý Cheesy, host -> 1 căn phòng trọ trong căn nhà đấy, domain -> tên phòng, phòng 110 chẳng hạn Cheesy ]
Bạn sẽ phải để ý đến những điều đó... để tìm ra lỗi bảo mật của chúng... và tại sao lại phải tìm ra những lỗi bảo mật đó? Đơn giản là chúng ta sẽ tận dụng để khai thác lỗi bảo mật đó, và khi chúng ta hiểu được cách tận dụng ấy, tôi gọi nó gọi là "hacking có ích", ngược lại, tận dụng thành công mà không hiểu 1 tí gì về nó, tôi gọi nó gọi là "hacking vô ích"... Và tìm bằng cách nào? Ôi trời!!! Không thiếu cách tìm, lên hãng sản xuất đó hoặc những hãng sửa chữa [ forum bảo mật ] nào đó đã công bố những lỗi đó, tìm hiểu xem họ đã "vá" [ fix lỗi ] những gì trong sản phẩm của họ, và sản phẩm mà căn nhà đó dùng, có được sửa chữa chưa [ update chưa? ], nếu chưa thì đó là 1 sản phẩm cũ [ old version ], liệu cái hỏng hóc [ lỗi ] của sản phẩm đó [ phần mềm... ] có thể tận dụng được không, sản phẩm đó có cho người dùng giao tiếp không? Giao tiếp được với cái phần mềm đó thì tận dụng chúng thôi.
Việc đó giống hệt cái chìa khóa thùng tiền ấy cất trong 1 cái hộp tủ, mà hộp tủ đó bị mối ăn mòn rồi, bạn có thể dễ dàng dùng tay bẻ gẫy chúng và thò tay vào lấy cái chìa khóa. Rồi mở thùng tiền...
Hệt như là: Bạn dùng chúng [ những cái lỗi ] để lấy được file [ hoặc bất cứ cái gì tương tự ] chứa username + password của host.
Àh ha... lúc nãy chẳng phải tôi đã nói là chúng ta sẽ chỉ đi vào phần "hack" website thôi mà, hi hi...
Oái vậy mà qua đó, tôi học được nhiều việc, ví dụ như muốn "hack" 1 cái website nào thì việc đầu tiên tôi tưởng tượng ra là tôi phải đi vào trong cái thùng tiền ấy [ giờ chúng ta sẽ hiểu thùng tiền ấy như 1 cái máy ATM Cheesy ]. Vào bên trong cái máy ATM đó, thử thao tác với nó, xem nó có bị trục trặc gì không, nếu có thì bắt đầu "mò mẫm" để xem tại sao nó bị như vậy, liệu có tận dụng được không? Nếu không tận dụng được chúng hoặc không tìm thấy sự trục trặc của nó, thì ta sẽ tìm hiểu xem, tại sao nó hoạt động được, nó dựa trên cái gì, máy móc ra sao... nó giống hệt việc bạn tìm hiểu xem... forum loại gì, phiên bản nào, website chạy trên CMS nào, framework nào, phiên bản bao nhiêu? Và rồi như cách trên, tận dụng những điều đó để tiến hành "hacking"... cũng phải để ý đến những cái camera [ lần này camera lại đóng vai trò là những đoạn code bảo mật trong website ], để xem cái camera đã quay đủ 3600 chưa Cheesy... Nhiều website bảo mật lỗi sql-injection tệ lắm Cheesy [ tôi sẽ viết bài tập về lỗi này sau Cheesy ]... Tận dụng tất cả các kỹ thuật "hack" mà bạn có để khai thác tìm ra lỗi bảo mật của chúng [ website ] để tiến hành mục đích "hacking"...

Hi hi...
Nãy giờ nói về mục đích "hacking" mà tôi quên hỏi bạn... mục đích hacking của bạn là gì? Huh Are you cracker or hacker? Huh hi hi... Mục đích của tôi là học hỏi để có thể viết code tốt hơn... chỉ có vậy thôi. Àh... còn nữa, để tránh những lỗi nằm "ngoài vùng kiểm soát", như việc chọn 1 cái Server "cùi bắp" với 1 đống lỗi mà chỉ cần biết những cách khai thác cơ bản cũng thành công Cheesy...

Hết rồi... giờ đi ngủ thôi. Hi hi...

P/s: Àh ha... còn 1 vài khái niệm thế này với tôi nữa, giả sử 1 ai đó đưa cho bạn 1 cái chìa khóa để bạn có thể bước vào căn nhà [ Server ] hoặc đưa cho bạn thẻ ATM, mật khẩu để bạn rút tiền ra [ nhưng rồi bằng cách nào đó, bạn lại bỏ được tiền vào trong tài khoản ATM đó ] thì bạn vẫn là 1 hacker...
Tôi nghĩ 1 cách đơn giản, bạn có chìa khóa vào trong ngân hàng [ nơi phạm vi không cho phép ] với lối suy nghĩ đó, đó có thể hiểu là "đột nhập"... điều đó đúng, bản chất của nó không phải là "hack"... nhưng hãy nhớ rằng, nó là 1 giai đoạn của "hacking", và ở đâu mà có sự "đột nhập" đó, lý do ở đó là không có sự "bảo mật", hiểu theo tôi, khi tìm ra 1 "sự cố bảo mật" thì đó là "hack", và tùy theo mục đích "hack" của tôi, quá trình "hacking" sẽ hoàn tất.
Có thể quan niệm trên của tôi sẽ sai. Nhưng tôi nghĩ tôi cũng như các bạn, tôi cần thời gian để học hỏi thêm "kiến thức" cho đến khi tôi đồng ý với bản thân tôi rằng... tôi đã sai... lúc đó tôi sẽ phải chỉnh sửa lại bài viết này.
Chúc mọi người sớm nhận ra rằng... "hack" chẳng có gì hay ho với những người không biết gì về "mục đích hack", "hack" chỉ thật sự "tạm thời" thú vị khi bạn làm được cái mà ít thấy ai đó làm chỉ vì vài nguyên nhân hoặc bạn nghĩ bạn có thể "lén" làm cái này "lén" làm cái nọ... nhưng rồi bạn cũng sẽ sớm ngộ ra rằng... nếu không có những kiến thức vững chắc để hiểu bạn đang "thực sự hack" bạn sẽ cảm thấy mình đã bỏ quá nhiều thời gian làm những chuyện "ngu xuẩn", trong khi bạn có những kiến thức vững chắc thì tôi có thể cam đoan... bạn học hack rất nhanh, nhanh hơn nhiều so với lúc bạn chẳng biết gì mà lao đầu vào học "hack".
Muốn học "hack website php"... chẳng đâu xa lạ, những bài học php sẽ dạy bạn, kinh nghiệm sẽ dạy bạn...
Riêng cá nhân tôi, tôi nghĩ bạn sẽ thấy "hack website php" là thú vị khi bạn yêu php, yêu code... yêu website.
Chúc các bạn 1 ngày tốt lành.
Logged

Bạn có một ít tiền, bạn muốn dùng những đồng tiền ít ỏi đó cho những công việc to lớn, vĩ đại, có ý nghĩa, click chuột vào đây: http://sechia.vn/diendan/vi-cong-dong/
Bạn có một ít tình, bạn muốn tìm kiếm 1 người yêu lý tưởng, click chuột vào đây: http://phpvn.org/index.php?action=profile;u=6580
cudenweb
PHP Intermediate
*
Posts: 116


Là cái số... nếu không được thì... hẹn kiếp sau.


View Profile WWW
« Reply #4 on: June 27, 2010, 04:51:34 am »

Mình cũng...
"yêu php, yêu code... yêu website" Cheesy Cheesy Cheesy Cheesy Cheesy Cheesy
Logged

Muốn biết nhân đời trước - Xem hưởng quả đời này - Muốn biết quả tương lai - Xét nhân gieo hiện tại - Người mà tâm chân chánh - Mọi người hướng thiện theo - Việc làm hợp lý lẽ - Khắp nơi được an vui - Người mà hư tâm tà - Tham sân dần phát triển - Làm việc mà tùy tiện - Tự rước họa vào thân.
shinguyenx
Guest


Email
« Reply #5 on: August 14, 2010, 12:42:03 pm »

bài viết của bạn thực sự ko có ích .

thứ 1 . bạn viết quá dài dòng .
thứ 2 . bạn truyền đạt sai đối tượng.
thứ 3 . những cái bạn truyền là quá cơ bản trong khi bạn chỉ cần đưa ra ai cần quan tâm sẽ search. đừng làm hùm 1 phương nữa
thứ 4 . bạn chả note ra được cái ý nào là ý chính cả .
thứ 5 . cách code của bạn trong bài tập . giống như trẻ con vậy. tôi nói thật mặc dù tôi không biết bạn code như thế nào, nhưng cách code trong bài tập thật ra khiến tôi nãn.
thứ 6 . tôi nghĩ bạn nên gặp tôi, nick yahoo shinguyenx . vì tôi muôn kết bạn với 1 lập trình viên php hehe Cheesy .
thứ 7. xin bỏ qua 5 điều đâu tiên , nếu cò gì sai .
Logged
nothing1306
Mãi PHP chiêu thân đây... mại vô, mại vô...
Global Moderator
PHP Intermediate
*****
Posts: 214

nothing1306
View Profile Email
« Reply #6 on: December 02, 2010, 04:42:32 am »

Thứ 1: Đồng ý
Thứ 2: Không hiểu
Thứ 3: Càng không hiểu
Thứ 4: Chính xác
Thứ 5: Vậy code thế nào mới là "code theo kiểu người lớn"
Thứ 6: Tôi nghĩ nó "đã".
Thứ 7: Nếu sai, không cần phải xin, vì mình nghĩ đây là ý tốt.

Thanks.
Logged

Bạn có một ít tiền, bạn muốn dùng những đồng tiền ít ỏi đó cho những công việc to lớn, vĩ đại, có ý nghĩa, click chuột vào đây: http://sechia.vn/diendan/vi-cong-dong/
Bạn có một ít tình, bạn muốn tìm kiếm 1 người yêu lý tưởng, click chuột vào đây: http://phpvn.org/index.php?action=profile;u=6580
Pages: [1]
PHPVN.org  |  Các vấn đề khác  |  Bài tập PHP  |  Bài tập bảo mật cơ bản [ Hướng dẫn hack website PHP ] « previous next »
    Jump to: