Professional Documents
Culture Documents
Web Sercurity
Web Sercurity
Sử dụng XSS Cheat-Sheet Khai thác Directory Listing Công cụ: dirsearch (python3)
Các reqest có nhiều data trả về Lựa chọn những thông tin trả về
Response API trả về
hợp lý. Không trả về full Object
Đoán được số cột trả về (sử
Union https://exploit-db.com
dụng lệnh ORDER BY <số cột>
CVE Phải cập nhật bản vá (Nâng cấp
Information_schema Khai thác thông tin Version
hoặc Patch)
Dấu hiệu phát hiện: Nhiều
request trong Logs. Outdate Phải cập nhật
True-False
Dữ liệu trả về ít, chỉ có 2 giá trị Download từ nguồn tin cậy
là True/ False Install (hãng)
Dùng để bypass, vượt qua Cần xác định rõ vai trò của từng
đường dẫn được thiết lập trong Request / Response method trong các module. Tránh
GET/POST/Delete
mã nguồn Method trường hợp lợi dụng việc này để
Directory Traversal Bypass Firewall
Sử dụng bộ lọc loại bỏ các kí tự
cho các đường dẫn tương Khắc phục RESTFul
đối ../,./
Trả về mã lỗi đúng: 500 khi có
HTTP Basic Authentication Status lỗi, 200 thành công, 403 khi bị
chặn
Web Form (Trang quản trị)
CVE
Single Sign On (SSO)
Version
AD Thư viện sử dụng
Tích hợp với các hệ thống khác Công cụ: https://
LDAP HTTPS www.ssllabs.com/ssltest/
Mật khẩu không nằm trong danh Expired của Certificate
sách đoán được (phổ biến)
Configuration sử dụng tool
Chữ, số, kí tự đặc biệt, HOA, Thiết lập mật khẩu https://ssl-config.mozilla.org/
Độ phức tạp
thường Mật khẩu đủ mạnh
Nếu ứng dụng chỉ hoạt động ở
> 8-12 kí tự Độ dài subdomain a.b.com thì không
Scope (Path/ Domain)
Google Capcha Sử dụng Capcha đủ mạnh nên set giá trị Domain trong
cookie là *.b.com
Sử dụng thêm Token cho mỗi
request đăng nhập Expired
Authentication Cookie HTTPOnly: Chỉ sử dụng cho
Email xác thực hành động reset-
mật khẩu Khả năng dò đoán Username & HTTP Request (Backend).
Luôn phải confirm 2 lần Password Javascript không gọi được
Nhập mật khẩu cũ Cookie khi set Flag này.
OTP Secure: Chỉ gửi cookie trong
môi trường làm việc với HTTPS
Tấn công bằng phương pháp
Brute Force JWT
Không nên lưu trữ mật khẩu Đủ mạnh
trong Cookie Encryption
Session Management Key mã hoá không quá dễ đoán
Không lưu trữ mật khẩu dưới
dạng Clear-text Checksum
SHA1 Lưu trữ mật khẩu Định danh hoặc xác định mỗi Hash(IP, Time, User-Agent +
session cho một người duy nhất Salt)
SHA256 Sử dụng mã hoá hoặc hàm băm
Expired: Sau bao lâu thì session
Bcrypt đủ mạnh Session bị vô hiệu hoá.
MD5 (+ Salt đủ lớn) Không nên để session lên trên
URL
Sử dụng nhiều luồng (threads)
để tạo ra nhiều HTTP Request Session nên được thay đổi ở
cùng một lúc để cùng truy cập mỗi lần đăng nhập khác nhau
và cùng muốn thay đổi dữ liệu hoặc ở mỗi trạng thái khác nhau
(có thể là 1 biến, 1 row trong
database, 1 vùng shared data, Session phải được huỷ bỏ sau
memory , etc...) khi người dùng logout hoặc thay
đổi trạng thái
Quá trình các thread thực thi
lệnh trông như 1 cuộc đua giữa Góc nhìn của lập trình viên
các vận động viên điền kinh Whitebox Sử dụng các công cụ hỗ trợ lập
Racing Condition Pentest Static Code Scan
olympic vì vậy có thể liên tưởng trình viên viết mã an toàn
đến thuật ngữ (keyword) “Race
condition”. Blackbox Góc nhìn của Hacker
Lỗi Logic
Các bài toán làm các công việc
chuyển tiền, tính toán số dư thì
nên đưa xuống tầng database
để xử lý.
synchronized
Cách khắc phục
Lock trạng thái
Làm việc với số âm
Chia cho không
Lỗi xử lý
Kiểm tra chuỗi rỗng hoặc null
Kiểm tra kiểu dữ liệu