Posts

Showing posts from October, 2009

Lại chuyện tiền nong

(nên đọc nếu tiền làm bạn đau đầu :-D) mình thấy mình thiếu kiến thức nghiêm trọng, hay nói cách khác, cực kỳ ngu dốt, về chuyện quản lý tài chính cá nhân. đi làm 7 năm, làm *chuyên nghiệp* 5 năm, vậy mà nhìn lại tài chính thì rối tung, tài sản thì chỉ được mỗi mụn sách, còn đầu tư thì bỏ lỡ quá trời cơ hội. giá mà có ai đó nói cho mình biết việc quản lý tài chính này nó quan trọng đến cỡ nào thì có lẽ tình hình đã tốt hơn rất nhiều rồi. ít nhất là không bị mất ngủ vì cái sự ngu dốt của mình. thôi, bỏ qua. giờ biết mình ngu cũng chưa có muộn lắm. bắt đầu học lại vậy. ---- mình có lời khuyên cho các bạn đang muốn thấu chi (dành cho các bạn không làm ngân hàng: thấu chi là vay tiền ngân hàng, để có thể rút vượt quá số tiền còn lại trong tài khoản). mình nói hoài àh, giờ nhắc lại lần cuối: đừng bao giờ thấu chi! nếu mà mấy năm vừa rồi, các bạn vẫn sống được, thì không cần thấu chi, các bạn vẫn có thể sống tốt. kinh nghiệm thấu chi của mình đau đớn lắm nha. làm nguyên năm, đến cuối n

Writing neat shellcode using inlineegg - Sapheads HackJam 2009 Challenge 8

Challenge 8 is a trivial format string bug, but one needs neat shellcode to get the flag. 1. Analysis First thing first: $ file t1g3rd t1g3rd: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.15, dynamically linked (uses shared libs), not stripped t1g3rd is a regular network service that when executed would listen on port 7384. When a client comes in, the binary forks a new child process, and calls a function named handleClient . At the begining of handleClient , t1g3rd calls setrlimit(2) to disallow this child process to open new file or fork a new process. This makes the binary a perfect example to illustrate how to write neat shellcode using inlineegg :-D. handleClient then goes on to read two inputs, which are 19 bytes long and 512 bytes long respectively, from the client. The first input is sent back to the client using printf(3) , and the second is just discarded. 2. Vulnerability As one can guess, the printf(3) call at 0x08048c52 t