2012-05-19 103 views
1

我收到了一個小問題。插入shell代碼

說我有一個控制檯應用程序中下面的代碼:

printf("Enter name: "); 

scanf("%s", &name); 

我想利用這個漏洞,並輸入以下shell代碼(MessageboxA):

6A 00 68 04 21 2F 01 68 0C 21 2F 01 6A 00 FF 15 B0 20 2F 01 

我怎樣才能進入我的shell代碼(十六進制值)通過控制檯?

如果我按原樣輸入輸入,它會將數字視爲字符而不是十六進制值。

非常感謝。

回答

2

您可以使用stdin作爲所需內容的文件或使用echo命令。

假設你的shell代碼AA BB CC DD(顯然這不是一個有效的shellcode):

echo -e "\xAA\xBB\xCC\xDD" | prog 
+0

我不明白,你能解釋和舉個例子嗎?我無法更改源代碼。 – Michael

+1

使用包含這些字符的某個十六進制編輯器創建文件'input.txt'。然後以這種方式運行控制檯應用程序:'program.exe

+0

瞭解,echo命令怎麼樣?它如何幫助我? – Michael