我有簡單的C程序:格式化字符串漏洞
char user_input[100];
scanf("%s", user_input);
printf(user_input);
這是我的理解,這代表的安全漏洞;例如輸入一堆%x將打印出堆棧的內容。
但是如何打印選定的內存位置?
我讀到:
\x10\x01\x48\x08_%08x.%08x.%08x.%08x.%08x|%s|
應在位置0x08480110從this paper傾銷存儲的內容。但是,它將打印出堆棧上格式化字符串的接下來的4個字節。我試圖理解爲什麼。
這是一個樹林問題,輸入超過99個字符來調用緩衝區溢出。小鮑比表的故事不消毒輸入。 – 2012-03-03 19:11:31