buffer-overflow

    0熱度

    2回答

    我使用memcpy將以下4個字節:0x40, 0x7E, 0xA7, 0xF2複製到float變量。現在我的C編譯器爲float保留4個字節,所以我複製到它的4個字節不應該導致溢出。 我的「Current」輸出是-2147483648-2147483648.-2147483648 mA。 價值-2147483648似乎暗示緩衝區溢出。我不知道爲什麼它給了我這個價值。這裏是一個編譯的例子: #inc

    1熱度

    1回答

    運行一個小內部CTF來教人們一些計算機安全基礎知識,我遇到了一個奇怪的行爲。以下是分叉TCP服務器的句柄函數。這只是一個可愛的小緩衝區溢出演示(取自CSAW CTF)。 當測試時,我只是打擾發送4097字節的數據,因爲它會成功溢出到backdoor變量。然而,許多參與者決定嘗試發送完整的4099字節,而這實際上並不奏效。我不完全確定爲什麼。 在GDB中,recv ing 4099字節工作得很好,但

    1熱度

    1回答

    我在Kali 32位(基於Debian)。我禁用ASLR,NX和堆棧金絲雀。這不是一個連續的ret2ret漏洞,因爲我使用主返回語句跳轉到shellcode所在的緩衝區。這裏是我的代碼: void foo(char *args) { char buffer[512]; strcpy(buffer, args); } int main (int argc, char *a

    0熱度

    1回答

    所以我一直有生產中的問題,似乎通過服務包升級公開。它似乎是某種ado _ConnectionPtr對象的Execute方法中的某種緩衝區溢出。以下代碼是什麼產生緩衝區溢出: char szStatement[600]; sprintf(szStatement, "UPDATE ROUTING_MASTER SET CNTNR_WGT_EST = %g WHERE CNTNR_ID = '%s'"

    4熱度

    2回答

    我想了解如何創建shellcode,並且需要輸入一大堆十六進制代碼。但是,當我給我的程序輸入十六進制代碼時,十六進制代碼被視爲正常的ASCII字符,而反斜槓只是簡單地被刪除。 實施例: ./a.out 「AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA \ X35 \ X85 \ X04 \ X08」 在這種情況下,十六進制碼(\ X35 \ X85 \ X04 \ X08)被視爲

    2熱度

    1回答

    我想我的運氣與緩衝區溢出,但是,我卡住了一點。我覆蓋返回地址,以便EIP將指向我的shellcode的底座nop的地址。但是,運行ret時,出現錯誤:Cannot access memory at address 0x90909094。任何人都可以看到什麼是錯的? 從內存轉儲: (gdb) x/8wx $esp 0xbffff18c: 0xbffff470 0xbffff400 0x000000

    0熱度

    1回答

    我想用一些shellcode產生一個shell。有效負載在程序本身,但是,當我運行然後單獨編程時,我得到了分段錯誤,但是當在gdb中運行時,我的shell會打開。 有人可以指出問題可能是什麼? [email protected]:~/folder$ ./a.out h h Segmentation fault (core dumped) [email protected]:~/folder$

    1熱度

    1回答

    所以我試圖修改這個函數的返回地址,使它永遠運行。我意識到我需要用函數的地址來改變返回地址,這樣它將永遠循環。 下面是代碼 void win(char * arg) { char name[16]; char * stuff[4] = {"TV", "Phone", "Car", "Cash"}; strcpy(name, arg); printf("Y

    8熱度

    2回答

    這裏是一段代碼,其中段故障發生時(在PERROR不被調用): job = malloc(sizeof(task_t)); if(job == NULL) perror("malloc"); 爲了更精確,GDB說,segfault發生一個__int_malloc呼叫,在其內部是由malloc進行的子例程調用。 由於malloc函數與其他線程並行調用,最初我認爲它可能是問題。 我使用g

    0熱度

    2回答

    我想解析Linux ar文件的標題。我使用ar.h文件中的ar_hdr結構來保存標題數據。我從一個簡單的文本文件解析存檔並將頭數據分配給結構字符數組開始很小。 void conciseTable(char *path) { int fd, r, pos; struct ar_hdr header[20]; //Open the file fd = op