From 1e950c982a839ed45eada8a840b1adbfaaf54ab4 Mon Sep 17 00:00:00 2001 From: wizardforcel <562826179@qq.com> Date: Wed, 29 Mar 2017 11:00:06 +0800 Subject: [PATCH] 18.1 --- 18.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/18.md b/18.md index 369a4a4..8b4a1b7 100644 --- a/18.md +++ b/18.md @@ -62,3 +62,28 @@ thisis%00mystring > 查看 [OWASP 缓冲区溢出](https://www.owasp.org/index.php/Buffer_Overflows),[OWASP 为缓冲区覆盖和溢出复查代码](https://www.owasp.org/index.php/Reviewing_Code_for_Buffer_Overruns_and_Overflows),[OWASP 检测缓冲区溢出](https://www.owasp.org/index.php/Testing_for_Buffer_Overflow),[OWASP 检测堆溢出](https://www.owasp.org/index.php/Testing_for_Heap_Overflow),[OWASP 检测栈溢出](https://www.owasp.org/index.php/Testing_for_Stack_Overflow),[OWASP 嵌入空字符](https://www.owasp.org/index.php/Embedding_Null_Code)。 +## 示例 + +### 1\. PHP`ftp_genlist()` + +难度:高 + +URL:无 + +报告链接:`https://bugs.php.net/bug.php?id=69545` + +报告日期:2015.5.12 + +奖金:$500 + +描述: + +PHP 编程语言使用 C 语言写成,C 语言自己管理内存。像上面描述的那样,缓冲区溢出允许恶意用户写入应该为不可访问的内存,并可能执行远程代码。 + +这里,FTP 扩展 的`ftp_genlist()`函数允许溢出,或者发送多于 ~4293MB 的数据,它们会被写入到临时文件中。 + +这使得分配的缓冲区太小,而不能存放写入临时文件的数据,在将文件内容加载回内存时,这会造成堆溢出。 + +> 重要结论 + +> 缓冲区溢出是非常古老,知名的漏洞,但是在处理自己管理内存的应用时,还是很普遍的,特别是 C 和 C++。如果你发现,你正在处理基于 C 语言(PHP 用它编写)的 Web 应用,缓冲区溢出是一个明显的可能性。但是,如果你刚起步,可能你需要花费一些时间,来寻找和漏洞相关的简单注入,在更有经验时,再返回到缓冲区溢出。 -- GitLab