- Hin nay khi hack local đ as ćc server đu bt t́n hn ng safemode ON và Disable
B it thêm v CHMOD:
M t trong ćc l i m̀ ćc admin hay m c ph i l̀ CHMOD sai, do CHMOD sai nên kh n ng site đ́ b t n công l̀ cao h n r t nhi u so v i ćc site kh́c CHMOD đ́ng, đ c bi t l̀ c̀ng server khi b hack local. T t nhiên là ch v i l i ǹy th̀ không th t n công tr c ti p v̀ đây không ph i là l i ć th t n công đ c. L i ǹy d d̀ng b khai th́c khi th m c đ t quy n ghi v̀ ch y đ ng th i cho m t th m c, th ng l̀ ćc th m c cho ph́p upload. Nên hacker d d̀ng ch y shell th m c ǹy. M t tr ng h p kh́c l̀ khi hack local, CHMOD 777 l̀ 1 th m h a, v̀ nh v y l̀ đã b ki m sót tòn b th m c đ́. V̀ tôi d́m ch c d ng tay hacker ǹo khi hack local m̀ nh̀n th y ći m̀u xanh ĺt (m̀u thông th ng cho ćc th m c l̀ ) c a th m c 777 th̀ m ng ra m t và ngh admin ǹy "g̀" ghê.
Vì sao tôi vi t b̀i ǹy ? V̀ nhi u admin, coder không bi t CHMOD l̀ g̀ ? ho c ch hi u s qua. H ch quan tâm đ n cho website ch y đ c, ch m h t. Nhi u ng i c̀n hi u r t ngây th r ng quy n ghi đ ng ngh a v i 777. Hòn tòn sai!!! V y CHMOD l̀ g̀ ?
CHMOD - đ́ l̀ ph m tr̀ liên quan đ n ćc files v̀ th m c, ć ch c n ng ch ra cho server bi t, ai có th l̀m g̀ đ i v i file hay th m c ǹo đ́. Ch y u CHMOD đ a ra ćc l nh nh quy n đ c đ c, vi t v̀o file (hay th m c), quy n th c hi n m t công vi c nh t đ nh.
Vì ph n l n ćc server l̀m vi c trên c s h th ng UNIX, nên ch́ng ta s nghiên c u v ćch CHMOD chính cho các servers này.
Trên các h th ng UNIX, ng i s d ng đ c chia ra l̀m 3 nh́m: "user" (ch nhân tr c ti p c a các files), "group" (thành viên c a nh́m m̀ ng i ch nhân file ć tham gia) v̀ "world" (t t c nh ng tr ng h p kh́c). Khi b n k t n i v i server, ń s x́c đ nh xem b n thu c v nh́m ǹo. Ví d b n k t n i v i server b ng FTP, khai báo tên truy c p nh m t th̀nh viên, ch́nh server s quy b n v̀o nh́m "user". C̀n nh ng th̀nh viên kh́c truy c p b ng FTP thu c v nh́m
"group". Khi ai đ́ đ n site c a b n b ng tr̀nh duy t web, s đ c quy v̀o nh́m "world". Sau khi x́c đ nh nh́m,ng i s d ng s đ c ǵn quy n h n nh t đ nh đ i v i file ho c th m c ǹo đ́. C th l̀ ng i s d ng s đ c đ c, ghi hay t o m i (ho c x́a) file. xem th m c ǹo đ́ th̀ ń ph i ng h cho vi c xem ǹy. đ c xem n i dung th m c, th̀ ćc files hay th m c con trong đ́ c ng ph i ć ch đ "Cho ph́p đ c". C̀n đ t o file hay th m c m i n m trong th m c ǹy l i đ̀i h i ph i ć quy n ghi. T́m l i, đ th c hi n m t trong nh ng vi c trên, c n ph i đ t v̀o th m c ch đ "quy n đ c" v̀ "quy n th c hi n".
Bây gi ch́ng ta s th c h̀nh...
Nh trên đã nêu, có t t c 3 nh́m ng i s d ng v̀ 3 "quy n h n" đ i v i files hay th m c. x́c đ nh quy n h n cho ćc nh́m nh t đ nh, th ng nh t s d ng ćc ḱ hi u b ng con s nh sau:
4 = read (quy n đ c đ c) 2 = write (quy n đ c ghi)
1 = execute (quy n đ c th c hi n)
B ng ph́p c ng đ n gi n ćc con s ǹy ć th hi n th đ c c m t "t h p" quy n h n kh́c nhau. Ví d , 3 (2+1) - quy n ghi v̀ quy n th c hi n đ i v i file (hay th m c); 5 (4+1) - quy n đ c v̀ quy n th c hi n; 6 (4+2) - quy n đ c v̀ quy n ghi; 7 (4+2+1) - quy n đ c, ghi v̀ th c hi n. T́m l i ć t t c 7 ph ng ́n sau:
7 = read, write & execute 6 = read & write
5 = read & execute 4 = read
3 = write & execute 2 = write
Ký hi u l nh CHMOD th ng ć 3 con s : con s đ u th hi n quy n h n ǵn cho ng i s d ng thu c nh́m "user" (T c l̀ đ i v i b n). Con s th hai ch ra quy n h n c a ng i s d ng thu c nh́m "group" v̀ con s th ba - dành cho nhóm "world".
Trong ph n l n ćc ch ng tr̀nh FTP hi n đ i đ u ng h CHMOD theo ki u nêu trên (V́ d , công c truy c p b ng FTP m nh nh t hi n nay l̀ WS_FTP)
Th nh ng c ng không th a n u nh ta bi t thêm v ćc l nh c a h th ng UNIX. l nh "chmod" trong UNIX có 2 ch đ : tuy t đ i (B ng ćc con s ) v̀ b ng ćc ḱ hi u ch .
Khi s d ng ch đ tuy t đ i (b ng ćc con s ), th ng nh t d̀ng t h p 3 con s đ c nêu trên đ th hi n quy n h n. Trong tr ng h p s d ng ḱ hi u ch , ch́ng ta s b t g p nh ng ḱ hi u sau: "r" - quy n đ c đ c "w" - quy n đ c ghi "x" - quy n đ c th c hi n Ngoài ra còn có: "u" - đ i v i user "g" - đ i v i group
"o" - đ i v i other (world) "a" - đ i v i all (t t c )
Ví d : 755 = chmod u=rwx,go=rx filename; 644 = chmod u=rw,go=r filename; 600 = chmod u=rw,go= filename; 444 = chmod a=r filename.
D i đây l̀ b ng các t h p th ng g p ph n l n ćc hosting: Quy n truy c p L nh (M̃) Miêu t :
U G W
r w x r - x r - x chmod 755 D̀nh cho ćc th m c, CGI-scripts và nh ng files th c hi n kh́c r w - r - - r - - chmod 644 D̀nh cho ćc files th ng
r w - - - chmod 600 Gi u files đ i v i t t c ngo i tr b n v̀ nh ng scripts c a b n U = user; G = group; W = world r = Read; w = Write; x = Execute; - = Không có quy n
Hi u thêm v By-pass login:
ôi khi b n truy c p v̀o 1 s trang ǹo đ́, b n s đ ́ ć ph n đ ng nh p ... v̀ b n mu n đ ng nh p v i quy n qu n tr th̀ sao ? Ch c n bi t user v̀ pass l̀ ć th đ ng nh p thôi ch g̀ ? Nh ng trong tr ng h p không bi t th̀ sao. V y by-pass login s gíp cho b n đ ng nh p v̀o n i đ́ v i quy n cao nh t .. c b n l̀ v y đ́ nha. Còn đây l̀ m t s data gíp b n submit đ xem coi nó b by pass login không :
Username Password ' or 1=1-- ' or 1=1-- " or 1=1-- " or 1=1-- or 1=1-- or 1=1--
" or "a"="a ') or ('a'='a ') or ('a'='a
D i đây l̀ b̀i vi t c a boyxintin Hcegroup.net: Tìm hi u thêm v công ngh m t ch́t.
Các ng d ng hi n nay, c web application hay win application đ u s d ng mô h̀nh 3 l p g m : l p giao di n, l p x ĺ, l p c s d li u.
- l p giao di n ch́nh l̀ nh ng g̀ m̀ ng i d̀ng nh̀n th y, nh m t trang web hay ch ng tr̀nh yahoo các b n ć th nh̀n th y.
- l p x ĺ bao g m nh ng đo n code đ x ĺ nh ng s ki n, v́ d nh khi b n nh p user + pass cho yahoo msg, xong nh n enter, chuy n g̀ x y ra ? l p x ĺ ǹy s th c hi n ćc s ki n đ́. - l p c s d li u d̀ng đ l u tr thông tin, nh ćc thông tin v t̀i kho n kh́ch h̀ng, thông tin qu n tr ,...tu theo m c đ́ch c a ng d ng đ l̀m g̀. c s d li u đ c l u tr trên ćc h qu n tr c s d li u (Mysql, Sql server, Oradcle, MS Access...)
Ví d :
hxxp://daleosterloh.com/bug/index.php
Lúc này l p x ĺ s th c hi n ćc câu truy v n đ n c s d li u đ xem thông tin b n nh p v̀o ć đ́ng hay không, v̀ s th c hi n ćc mã kch b n c a ń.
T i sao ć th bypass đ c ?
ć th bypass đ c m t ćch hòn h o, tr c h t xin kh ng đ nh ćc b n ph i hi u trong l p x ĺ đ c vi t nh ng g̀ ? nh ng ai đ̃ đ c qua ebook c a hieupc c ng ć th bi t đ c v̀i t khó đ bypass, t t c nh ng t khó đ́ do ćc attacker đ̃ t n công v̀o h th ng, xem source v̀ đ a ra, vì các site th ng d̀ng chung 1 source (mua t đâu đ́) nên ch t l̀ ch t ch̀m.
Bây gi m̀nh s phân t́ch đo n code trên đ ćc b n hi u rõ t i sao ć th bypass đ c nh́.
Sau khi các l p giao di n g i d li u v th̀ ph n x ĺ ǹy ta ć 2 bi n $username + $password
là 2 bi n ch a user v̀ pass m̀ ng i d̀ng nh p v̀o
B qua nh ng th r m rà, các b n t p trung vào câu query:
select * from users where username='".$username."' and password='".$password."'
và câu if : if($list_rows > 0) { header("Location: manage.php?hcegroup=1"); } else { header("Location: error.php"); } Có ý ngha nh sau :
Query ch n ra t t c thu c t́nh (username, password...) t table users v i đi u ki n username=user đã nh p, password = password đ̃ nh p.
if : n u nh s l ng d̀ng tr v > 0 th̀ cho v̀o, không th̀ t ch i
đ n đây m̀nh ch a th y l i, b̀i tón kh́ login : t̀m trong c s d li u ć t n t i user + pass đ́, n u s l ng l n h n 0, ć ngh a l̀ t n t i, th̀ cho v̀o, không thì deny.
đây gi i th́ch thêm t i sao d̀ng ($list_rows > 0), th ng trong database th̀ user ch ć m t, nên n u t̀m th y gí tr th̀ ń l̀ 1, m t s l p tr̀nh viên thay v̀ vi t =1 th̀ vi t th̀nh >0. V y bây gi b n nh p user = abcd v̀ password = ' or '1'='1 thay ph n m̀u đ trên nh́. câu query s nh th ǹy :
select * users where user = 'abcd' and password ='' or '1'='1'
câu trên đ c hi u qú đ n gi n, không c n quan tâm user l̀ g̀, pass l̀ g̀, v̀ '1'='1' l̀ 1 đi u ki n hi n nhiên đ́ng, nên t t c user ć trong b ng s đ c select ra, v̀ th s l ng users t̀m đ c luôn l n h n 0 (tr khi trong database ch ng ć user ǹo). Lúc này b n qua đ c câu l nh if v̀ v̀o đ c trang admin, n u ćc b n hi u đ c nh ng g̀ m̀nh vi t trên th̀ đây ćc b n ć th suy lu n ra l̀ đâu c n ph i nh t thi t l̀ '1'='1', ć th l̀ '1'<>'0' ho c 1>0 ho c 'a' ='a ho c 'a'<>'b, mi n sao l̀ 1 đi u ki n đ́ng đ c ch̀n v̀o câu query l̀ đ c , nh v y ć h̀ng t ćch đ bypass.
Gi i th́ch thêm cho ćc b n v d u ' , d u -- khi bypass, h i tr c ĺc m i đ c m̀nh c ng th c m c. Ví d by pass c ng login trên b ng pass : ' or '1'='1
t i sao ć d u ' đ u, t i sao cu i s 1 không ć d u ' hãy nhìn câu select : (đ ng quan tâm đ n d u " nh́)
khi user & pass c a b n đ a v̀o ń đ c đ t gi a 2 d u '', cho nên đ theo đ́ng ć ph́p ćc b n ph i đ t nh th ǹy:
select * from users where user ='abcd' and password='' or '1'='1'
ch ngqua l̀ ń đ́ng d u '' thì SQL nó không nh n các giá tr m̀nh đ a v̀o l̀ chu i thôi. Ngoài ra d u -- d̀ng đ ch́ th́ch cho 1 dòng, khi b n thêm d u -- vào thì nh ng ḱ t sau nó s không còn ý ngha v i SQL
ví d pass trên m̀nh ć th d̀ng password : ' or '1'='1'-- .Th̀ câu l nh th ǹy:
select * from users where user ='abcd' and password='' or '1'='1'--'