Đâ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"

đọ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

.
Đã 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...

, 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ụ...

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ọ

[ 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"

.
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ư ý

, host -> 1 căn phòng trọ trong căn nhà đấy, domain -> tên phòng, phòng 110 chẳng hạn

]
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

]. 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 đủ 360
0 chưa

... Nhiều website bảo mật lỗi sql-injection tệ lắm

[ tôi sẽ viết bài tập về lỗi này sau

]... 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ì?

Are you cracker or hacker?

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

...
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.