Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Thử nghiệm SQL Injection
- Trước khi cấu hình một số quy tắc, chúng tôi sẽ tạo một tập lệnh PHP dễ bị SQL injection kiểm tra sự bảo vệ của ModSecurity.
- Lưu ý: đây là một kịch bản đăng nhập cơ bản của PHP mà không có xử lý phiên làm việc hoặc hình thức vệ sinh. Nó chỉ được sử dụng như một ví dụ để kiểm tra các quy tắc SQL injection và ModSecurity. Nó sẽ được gỡ bỏ trước khi kết thúc hướng dẫn.
- Trước tiên, truy cập vào dấu nhắc MySQL.
- • mysql -u root -p
- •
- Ở đây, tạo một cơ sở dữ liệu MySQL được gọi là mẫu và kết nối với nó.
- • create database sample;
- •
- • connect sample;
- •
- Sau đó tạo ra một bảng có chứa một số thông tin quan trọng - tên người dùng sammy và mật khẩu mật khẩu .
- • create table users(username VARCHAR(100),password VARCHAR(100));
- •
- • insert into users values('sammy','password');
- •
- Cuối cùng, thoát MySQL.
- • quit;
- •
- Tiếp theo, tạo kịch bản đăng nhập trong gốc tài liệu của Apache.
- • sudo nano /var/www/html/login.php
- •
- Dán mã PHP sau vào tệp. Hãy chắc chắn để thay đổi mật khẩu MySQL trong kịch bản dưới đây để một trong những bạn thiết lập trước đó để các kịch bản có thể kết nối với cơ sở dữ liệu:
- /var/www/html/login.php
- <html>
- <body>
- <?php
- if(isset($_POST['login']))
- {
- $username = $_POST['username'];
- $password = $_POST['password'];
- $con = mysqli_connect('localhost','root','your_mysql_password','sample');
- $result = mysqli_query($con, "SELECT * FROM `users` WHERE username='$username' AND password='$password'");
- if(mysqli_num_rows($result) == 0)
- echo 'Invalid username or password';
- else
- echo '<h1>Logged in</h1><p>This is text that should only be displayed when logged in with valid credentials.</p>';
- }
- else
- {
- ?>
- <form action="" method="post">
- Username: <input type="text" name="username"/><br />
- Password: <input type="password" name="password"/><br />
- <input type="submit" name="login" value="Login"/>
- </form>
- <?php
- }
- ?>
- </body>
- </html>
- Kịch bản này sẽ hiển thị một hình thức đăng nhập. Mở trình duyệt của bạn và điều hướng đến để xem nó. Nếu bạn nhập đúng cặp thông tin xác thực, ví dụ sammy trong trường Tên đăng nhập và mật khẩu trong trường Mật khẩu , bạn sẽ thấy thông báo Đây là văn bản chỉ được hiển thị khi đăng nhập với thông tin xác thực hợp lệ . Nếu bạn di chuyển trở lại màn hình đăng nhập và sử dụng thông tin xác thực không chính xác, bạn sẽ thấy thông báo Tên người dùng hoặc mật khẩu không hợp lệ.http://your_server_ip/login.php
- Công việc tiếp theo là dùng thử SQL injection để bỏ qua trang đăng nhập. Nhập phần sau cho trường tên người dùng.
- Tên người dùng SQL injection
- ' or true --
- Lưu ý rằng không nên có một không gian sau khi --tiêm này để làm việc. Để trống trường mật khẩu và nhấn nút đăng nhập. Tập lệnh cho thấy thông điệp dành cho người dùng được chứng thực! Trong bước tiếp theo, chúng tôi sẽ ngăn chặn điều này.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement