【摘要】

实验目的:

1, 掌握缓冲区溢出原理

2, 掌握常用的缓冲区语出方法

3, 理解缓冲区溢出的危害

4, 掌握防范和避免缓冲区溢出攻击的方法

实验内容:

利用War-Ftpd这个FTP server本身存在的loginusername过长缓冲区溢出漏洞,使用调试工具CDB挖掘漏洞并利用这个漏洞编写攻击程序在server端能够运行的shellcode,比如说新建帐户或者开启一个高端口以供远程登陆等。通过试验能够了解缓冲区溢出原理及防范缓冲区溢出方法等。

实验环境:

操作系统:Windows XP

溢出对象:war-ftpd 1.65

调试工具:CDB

高级编程语言:Python

Shellcode功能:在目标机上新建一个hacker帐户



实验设计:

首先通过查阅相关资料得知,war-ftpd的漏洞是:通过向服务器发送超过480个字节的用户名可以触发漏洞(即使用USER longString\r\n),溢出之后,RET的内容被longString中的内容替代,这样就可以向war-ftpd发送一串超过480字节的不重复的用户名,然后查看EIP中的内容即RET的内容,然后计算EIP中的内容在整个longString中的偏移量,这样就定位出RET的偏移量了,然后就可设定RET的值;

然后是向RET中放入“JMP ESP”这条指令,因为这条指令在window系列的有一个通用的地址0x7ffa4512指向“JMP ESP”这条指令。然后是定位ESP指向的地址偏移,通过计算ESP地址指向的内容来计算偏移量;

然后是将完成一定功能的shellcode放到ESP指向的缓冲区中即可。

最后按上述方法构造username

当客户端攻击程序运行时,发送给服务器的包含shellcodeusername的程序就会自动执行,在目标主机上新建一个hacker帐户,完成攻击任务。

详情请看附件

本文地址 http://www.yaronspace.cn/blog/?p=11

来自yaronspace.cn  本文链接:http://yaronspace.cn/blog/archives/11