ROOT-ME.ORG WEB-CLIENT CHALLENGES

Ngoài lề tí:
Huhu mấy ngày nay vịt teo nó block không vào được forum :'(
với lại thường vào thì máy 2GB ram của mình nó "lắc" không tả được
ngày mai mình được nghỉ nên tranh thủ viết bài cho anh em, à mà mai 5/11 có ai đi hội thao của FPT không ? Mai em đi nè hihi
-------------------------------------------------------------------------------------------------------------------------------------------------------
Vào vấn đề chính nhé, sau nhiều tuần vùi đầu vào mớ code thì một hôm anh Kit Hulk có đưa mình trang root-me.org để chơi thử đổi không khí và sau khoảng 2.5 ngày thì mình giải xong 1 nửa challenges web-client lúc này mình mới biết trình độ "hack" đã giảm sút :'( mình viết bài này để chỉ ra những challenge mình đã giải thành công và đồng thời nhờ các bạn giúp mình các bài mình chưa biết (đánh chữ không cũng lag :'( )
Bài đầu tiên: Javascript - Authentication
Vừa vào thì thấy 1 form đăng nhập bình thường, ok ctrl + u cái , oh thì ra là hắn xài js để kiểm tra đăng nhập 


Ok lần mò vào hang ổ của nó thôi !  login.js thẳng tiến, vừa vào thì thấy câu lệnh if này:

if (pseudo=="4dm1n" && password=="sh.org")

Ok ta đăng nhập thành công và sửa dụng mật khẩu đó để submit challenge, Ok first 5 point yay !
Bài thứ hai: Javascript - Source
Ùi vừa vào chưa chào hỏi gì mà đã dập thông báo vào mặt mất lịch sự quá !  


xem thử code nào dạy web như thế


à thì ra là nó ! để lộ thông tin quá -_- mình thích thì mình copy pass thôi hehe, pass = 123456azerty, yeeee (pewdiepie) ta có thêm 5 point !
Bài thứ ba: Javascript - Authentication 2
Ú hú hú lại là auth à :3 ta ctrl + u xem:


Again login.js xem thử lần này có gì cải tiến


ohhhhh code cải tiến kìa !
Sau khi xem xét thì ta thấy:
đầu tiên nó quét từng phần tử của biến the list tức là nó dùng string "CACHÉ:HIDDEN" sau đó nó tìm vị trí của string mà người dùng nhập vào có nằm trong string "CACHÉ:HIDDEN" hay không nếu có thì phải ở vị trí là 0 ! sau đó nếu có thì nó sẽ split "CACHÉ:HIDDEN" thành 2 phần từ dấu ':' và ta có theUsername = CACHÉ và pass = HIDDEN ok ta submit challenge bằng pass này và nhận thêm 10 point.

Bài thứ 4: JavaScript - Obfuscation 1
Bài này thuộc dạng khó nhai ! 
vừa vào ta ctrl + u xem nguồn:


Ok vừa bay vào là câu lệnh if nó gợi ý rồi , ta sẽ dùng hàm unescape vào biến pass để nhận đc pass:


OK ta submit challenge với pass: cpasbiendurpassword và ok done ! 10 point !

Bài thứ 5: Obfuscation 2 (nhiều obfuscation thế ?)
Vừa vào thì ơ sao trang trống lóc thế này ??? ctrl +u xem


Oh nhìn vào ta nhận ra ngay nó sẽ escape nhiều lần để ra cái pass, thì ta theo nó thôi:



Done ! thanks "hDufjdki156" !
Bài thứ 6: Javascript - Native code
đầu tiên nhìn vào source:


Điểm chung của các obfuscator này là chung đều dịch câu lệnh rồi chạy bằng hàm construct ! À để ý xem tại sao lại có nhiều dấu '\\' như vậy ? oh nghĩ ngay đến unicode ! thử xem nào:


Hehe thì ra là như thế ta dịch ra thôi :


Ok 'toto123lol' thanks for 15 point !
Bài thứ 7: Obfuscation 3
Bài này căng !
Vào xem nguồn ta nhận thấy:


Ây da nhìn phức tạp quá, lúc đầu mình vọc mãi cái function nhưng sau khoảng 15p mình nhận ra : "Nguuuuuuuuu kiểu gì mà nó không build ra string : FAUX PASSWORD HAHA" 
vì thế mình quay lại và nhận ra một điều lạ , dòng này để làm gì ?:

String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34
\x39\x2c\x35\x30"));
 Nó không dùng gì vào function hết ? có thể đây là pass ! mình để ý là nó lại gọi hàm dechiffre ?? hàm đó trả về FAUX PASSWORD HAHA mà ??? sao đc nhỉ ? à có thể nó lừa ! ta dịch đoạn string trong hàm xem?


Oh vậy là nó lừa thật :'( toàn bị lừa thôi :'(
ta xài hàm fromCharCode và nhận được password: "786OsErtk12" 
Ok Thêm 30 point !

Bài chủ nhật à nhầm bài thứ 8 : XSS - Stored 1


Ồ nhìn vào là ta nghĩ ngay chắc là send thông báo tới cha admin xong chạy js ăn cắp cookie chứ gì ! thử inject cơ bản xem



Lưu ý abc.com là trang mình dùng để chưa file lưu cookie đã được sửa tên
Huhu không chụp cái pass cho ae đc do hostinger nó giới hạn cpu òi :'(

Mình chỉ mới giải được tới đó thôi còn lại thì mới các bạn thử sức nhé nhớ cmt dười bài này cho mọi người cùng học hỏi hehe Big Grin