DeadCTF và nỗi buồn đâu đó trong tôi.

Hello guys, my english not good so i will writeup by my mother languages, Vietnamese :D

Fisrt Im a web exploitable player and interested in all category(i bad at them) :DD

Chall 1: Crush.

Tôi có một đề bài như thế này, tôi muốn có crush T_T

Để tôn trọng tác giả thì việc đầu tiên là mình sẽ download và đọc source code sau đó mới test logic.
Thử thách được viết bằng nodejs,
Có 4 endpoint và mình sẽ đi qua sơ lược từng cái.
tại cái đầu tiên chả có j thú vị cả :v skip nó
một endpoint /sendcrush nhận phương thứ post, có 3 param name,crush,content. Content sẽ được viết vào file lettername đã được mã hóa md5 :v

Tại endpoint readflag, ta thấy có biến lettername có thể điều khiển và được truyền thẳng vô đường dẫn. Có thể nghĩ ngay đến local file inclusion :D
Tại enpoint hacking, cũng nhận 3 tham số thông qua các biến hack,lettername,rename.
Chúng ta hoàn toàn có thể đổi tên file.
Vậy ý tưởng của tui là sẽ đổi tên file flag.txt và đọc nó thông qua readletter
tui sẽ tạo 1 file lên server, nó sẽ cho tui một mã md5.
Thông qua endpoint hacking, ta sẽ đổi tên file thành ../../../../../flag.txt để trick lfi
bây giờ chỉ cần đọc file lettername kia để nhận flag
Xori vì cách giải thích hơi khó hiểu :/
Chall2:
Đề bài là FRSS :/ nếu đã solve thì sẽ biết nó liên quan đến ssrf
tui được cho 1 đoạn code này.
Thực ra tui chả chú ý đến đoạn code đó mấy, nó chỉ thực hiện curl thôi. Có vẻ nếu url dài quá thì sẽ bị như thế này. 
Loay hoay một tí thì nhận ra bỏ http:// thì nó vẫn chạy được :/ Đề troll quá anh ơi :>
Payload: 0.0.0.0/hehe.txt
Chall3: Dựa vào cái đề bài mà mình sẽ hướng đến xxe :v lỗi này mình ko research nhiều nhưng vẫn có thể nắm được hướng attack :v
ta đã được hint là flag ở flag.txt, thế thì lên kiếm chearshet mà hack :D
mình đã có thể đọc file /etc/passwd rồi :D 
Ôi không, không thể đọc được flag, vậy phải dùng cách khác. Tác giả troll tôi, thật hư hỏng :D
Không sao, tôi có thể pass nó bằng php://
Let's decode it 


Chall4: người anh em, anh đã ở đâu :v
Tôi có thể dùng được command
Bối rối với việc bypass backspace và cat flag, payload của tôi.
chúng ta có flag dưới dạng base64 :v Hãy decode nó
Chall5: traiblazer  sori, i dont hav time. I started to write it at 19.30 T_T
it is my payload
/images/date.__name__.class__.format('%7B%7B%7D%7D').format(__import__('os').popen('cat flag.txt|tail -c +16').read()).encode

Chung quy lại, giải này hay, mặc dù không clear được bài xee2 nhưng vẫn rất vui. Hi vọng vào năm sau.
À tui được giải pháp ngoài dự định nên share luôn cho máu









Nhận xét

Bài đăng phổ biến từ blog này

KMACTF và nỗi buồn éo làm được gì cả T__T