tombkeeper2018-04-11 12:25Open options@Laruence 昨天修复了 PHP 的一个 Bug:网页链接。char buf[128];int wrote;wrote = snprintf(buf, 128, "Could not translate address '%s'", addr);buf[wrote] = '\0';这个问题非常有代表性,是典型的由于程序员对函数特性了解不够造成的。实际上 snprintf 的相关安全问题比这个例子中表现出来的更复杂。因为 snprintf 不是 C 标准中的函数,但各家编译器又各自做了实现。早期版本 VC 中的 _snprintf 并不完全等同于 snprintf。比如对 snprintf(buf, 4, "%s", "ABCD"),_snprintf 会向缓冲区写入"ABCD",但 snprintf 会写入“ABC\0”。另外,_snprintf 和 snprintf 对返回值处理也不同。当格式化后的字符串长度大于第二形参指定的长度时,_snprintf 会返回 -1,而 snprintf 会返回格式化后的字符串所需要的缓冲区大小。这就可能导致某些程序在原始开发平台下没问题,但移植到别的系统上时简单地把 _snprintf 和 snprintf 互换就会产生漏洞。(所以上面这个 Bug 也许是一个 Windows 程序员犯的错误——然而即使如此也应该是 buf[wrote-1] = '\0' 啊)也正由于 _snprintf 和 snprintf 的这些细节差异,上面提到的这个 Bug 在 snprintf 下是有可能实现利用的,反倒是对 _snprintf 则利用的可能性很小。这一点就不细说了。你们可以试试:写一个包含这个 Bug 的小程序,对其实现漏洞利用执行 Shellcode。图片描述 by gemini-3-flash-preview详情
tombkeeper2018-04-11 10:48Open options微博正文 其中一个“科学,你们懂么”已经孵出来了。tombkeeper2017-12-16 08:38被tk转发1次Open options我辨认微博上的王八蛋还是比较准的。基本上感觉谁是王八蛋,过不多久,就一定能看到小王八孵出来。有些王八蛋不是很明显,甚至看起来颇优雅,然而有些优雅是源于教养,有些优雅是源于极端自恋。王八蛋再优雅也是个优雅的王八蛋。去年有人在评论里夸我说很像某人。我哭笑不得,心想:我乔峰大好男儿…… 详情
tombkeeper2018-04-11 03:07Open options参见赫鲁晓夫对斯大林,永远健康对万寿无疆……//@Laruence:[good]//@响马:[good] //@巢鹏: [good]//@宝玉xp:[good]2018-04-10 14:02被tk转发1次Open options抱歉,此微博已被作者删除。查看帮助: 网页链接详情
tombkeeper2018-04-10 20:59Open options真身是这样的: 查看图片 //@冈瓦纳:我也没见过他的真身啊, 也许他就是这样的普吉岛的奶茶叔2018-04-10 17:35被tk转发1次Open options爱因斯坦如果长这样,是不是相对论懂的人会更多一些哈哈哈。@开水族馆的生物男 @长鲸吟 @果壳网 @李淼在微博 @冈瓦纳 图片描述 by gemini-3-flash-preview详情
tombkeeper2018-04-10 12:57Open options你们瞧瞧:2018-04-10 10:51被tk转发1次Open options该账号因被投诉违反《微博社区公约》的相关规定,现已无法查看。查看帮助 网页链接详情