导读:
By:疯狗(B.C.T)
简单的了解了一下漏洞原因,问题出在ping上,首先先触发这个漏洞看看效果。
开启CC,然后telnet 127.0.0.1 23,出现如下提示
CCProxy Telnet>CCProxy Telnet Service Ready.
CCProxy Telnet>
直接输入ping AAAAAAAAAA...(超长的A),程序崩溃了,看看提示
程序在读取41414141也就是AAAA时出错,41414141是我提交的超长的AAA...并不是正确的指令,况且这里的内存还是为分配的,典型的栈溢出。
漏洞分析暂时略过,已经被分析的很透彻了,CC在发ping命令的时候用的是send函数和WSASend函数, send一次只能发送一个缓冲区,而且效率底下,WSASend可以发送多个缓冲区,而且性能要比send高,所以CC肯定使用了WSASend,经过一些人的分析确实如此。
OD载入,动态分析,这次我使用了cooldiyer的检测溢出点的程序,在xfocus下的好code,工具的原理(借助于英文26个字母实现了26进制,4位最多可以到ZZZZ也就是26的4次方就是十进制的456976十六进制的0x6f910,原理是因为编译器字节对齐默认情况下是按双字(4bytes)对齐的)
AAAD 4 0x04 EIP =
By:疯狗(B.C.T)
简单的了解了一下漏洞原因,问题出在ping上,首先先触发这个漏洞看看效果。
开启CC,然后telnet 127.0.0.1 23,出现如下提示
CCProxy Telnet>CCProxy Telnet Service Ready.
CCProxy Telnet>
直接输入ping AAAAAAAAAA...(超长的A),程序崩溃了,看看提示
![](http://www.neeao.com/blog/attachments/200712/11_203858_1.jpg)
程序在读取41414141也就是AAAA时出错,41414141是我提交的超长的AAA...并不是正确的指令,况且这里的内存还是为分配的,典型的栈溢出。
漏洞分析暂时略过,已经被分析的很透彻了,CC在发ping命令的时候用的是send函数和WSASend函数, send一次只能发送一个缓冲区,而且效率底下,WSASend可以发送多个缓冲区,而且性能要比send高,所以CC肯定使用了WSASend,经过一些人的分析确实如此。
OD载入,动态分析,这次我使用了cooldiyer的检测溢出点的程序,在xfocus下的好code,工具的原理(借助于英文26个字母实现了26进制,4位最多可以到ZZZZ也就是26的4次方就是十进制的456976十六进制的0x6f910,原理是因为编译器字节对齐默认情况下是按双字(4bytes)对齐的)
AAAD 4 0x04 EIP =