这是我们的实验环境

kali 172.18.5.118
smtp windows2003  172.18.5.117  pop3 110 smtp 25
本机 172.18.5.114

已经知道slmail存在PASS处的缓冲区溢出漏洞 当你输入的足够长的时候会缓冲区溢出

但是如果我们进行手动测试会显得很麻烦 所有这里我们使用脚本来跑这是01.py

import socket
s = socket.socket(socket.AF_INET,socket.SOCKET_STREAM)
try:
print"\nSending evil buffer..."
s.connect(('172.18.5.117',110))
data = s.recv(1024)
print data s.send('USER Aadministrator'+'\r\n')
data =s.recv(1024)
print data s.send('PASS password\r\n')
data =s.recv(1024)
print data s.close()
print "\nDone!" except:
print "Could not connect to POP3"

先建立一个链接

发送魔鬼buffer \n是换行的意思

s.connect是连接目标的110端口

data 是回显的信息 pirnt输出显示信息

s.send是你要发送的内容

然后close这个链接

最后是未执行成功的报错(except)

但是小编这里遇到了这个问题 原来是windows的py与liunx不兼容造成的

以下是解决链接

https://blog.csdn.net/u010383937/article/details/73161475

这里是在kali里面在创一个记事本然后复制代码上去 改名为001.py完成的不兼容绕过

改好后

用户名收到 OK 密码回显错误 脚本是可以的

我们不断的增大向目标服务器的数据数量

接下来是002.py

在服务器端观察一下进程是如何溢出的

进入

进来是默认的暂停状态

点击播放来实时的监管这个344端口的进程

然后我们从客服端向服务器发送 数据在服务端在查看  这是进行的002.py

发到2900的时候发现他一直没有动了 那我们来到服务端来看一下

这是ASCII编码转换为10进制后就是40+1

EIP是下一步这个进程要进行的操作的地址 我们在这里发送大量的A将其复制了

所有说这里下一步的进程被我们发送的大量的A覆盖了 简单说就是这个程序被搞崩溃了。因为414141不是原来要执行的地址

这里我们进行重新启动一下

将A改成B

可以看出slmail的PASS命令存在缓冲区溢出的漏洞

EIP是存放下一条指令的地址  这是原来的EIP

精确的定位溢出位置 继续查找 刚才2900停了

现在我们发2700个A

2700个A也发生EIP寄存器的溢出了

我们试试2600个A

发现存在溢出了但是 2600不足以溢出到EIP

我们可以用以下方法

用kali里面现成的脚本来实现唯一字符串

下是的事目录 kali里面的默认目录

usr/share/metasploit-framework/tools/pattern_create.rb 2700 

sploit-framework/tools/pattern_create.rb 2700

现在EIP里面存在了这么一串字符串

39 69 44 38

38 69 44 39

8 D i 9

但是windows内存里面的存放规则是高位

./pattern.offset.rb 39694438

自动计算后面的数字在数组里面产生的位置  也就是偏移量

找到位置是2606 所以我们在2607开始填充

验证EIP溢出位置是否真确

我们在2067位置填充BBBB

ASCII

缓存区溢出之slmail fuzzing的更多相关文章

  1. csapp lab3 bufbomb 缓存区溢出攻击 《深入理解计算机系统》

    这个实验主要是熟悉栈,和了解数据缓存区溢出的问题. 数据缓存区溢出:程序每次调用函数时,会把当前的eip指针保存在栈里面,作为被调用函数返回时的程序指针.在被调用程序里面,栈是向下增长的.所有局部变量 ...

  2. 缓存区溢出漏洞工具Doona

    缓存区溢出漏洞工具Doona   Doona是缓存区溢出漏洞工具BED的分支.它在BED的基础上,增加了更多插件,如nttp.proxy.rtsp.tftp等.同时,它对各个插件扩充了攻击载荷,这里也 ...

  3. 缓存区溢出检测工具BED

    缓存区溢出检测工具BED   缓存区溢出(Buffer Overflow)是一类常见的漏洞,广泛存在于各种操作系统和软件中.利用缓存区溢出漏洞进行攻击,会导致程序运行失败.系统崩溃.渗透测试人员利用这 ...

  4. node(Buffer缓存区)

    // 创建buffer类 var buf=new buffer(10); var buf=new buffer([10,20,30,40]); var buf=new buffer("www ...

  5. ACM/ICPC 之 优先级队列+设置IO缓存区(TSH OJ-Schedule(任务调度))

    一个裸的优先级队列(最大堆)题,但也有其他普通队列的做法.这道题我做了两天,结果发现是输入输出太过频繁,一直只能A掉55%的数据,其他都是TLE,如果将输入输出的数据放入缓存区,然后满区输出,可以将I ...

  6. git --如何撤销已放入缓存区(Index区)的修改

    修改或新增的文件通过 git add --all 命令全部加入缓存区(index区)之后,使用 git status 查看状态(git status -s 简单模式查看状态,第一列本地库和缓存区的差异 ...

  7. IntelliJ IDEA修改Output输出缓存区大小【应对:too much output to process】

    IntelliJ IDEA默认的Output输出缓存区大小只有1024KB,超过大小限制的就会被清除,而且还会显示[too much output to process],可通过如下配置界面进行修改O ...

  8. 【MINA】缓存区ByteBuffer和IOBuffer你要了解的常用知识

    mina中IOBuffer是Nio中ByteBuffer的衍生类,主要是解决Bytebuffer的两个不足 1.没有提供足够灵活的get/putXXX方法 2.它容量固定,难以写入可变长度的数据 特点 ...

  9. Java NIO------基础理论之缓存区

    1.概述:NIO我的理解就是 New IO,是API1.4里提供的新的API,为所有的原始类型做缓存支持. NIO主要的核心组成部分: Buffer(缓存) Channels(通道) Selector ...

随机推荐

  1. split、paste命令

    一.split分割文件 语法       split [OPTION] ... [INPUT [PREFIX]] 描述       将固定大小的INPUT输出到PREFIXaa,PREFIXab,.. ...

  2. Java Web开发技术教程入门-JavaBean组件与Servlet

    补更:阅战阅勇第7/8/9Days笔记 昨天我们了解了JDBC技术的一些日常操作,对于数据库而言,不仅仅的只有"增,删,改,查".博主觉得最重要的是SQL语句的优化,一个" ...

  3. 在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间

    在Linux中,没有文件创建时间的概念.只有文件的访问时间.修改时间.状态改变时间.也就是说不能知道文件的创建时间.但如果文件创建后就没有修改过,修改时间=创建时间:如果文件创建后,状态就没有改变过, ...

  4. ion-icon

    观察默认的使用 关于Ion-icon 图标的自定义,首先,看一看默认内置的图标的显示,是怎么来的 可以看到默认的路径为:/svg/ios-xxx.svg 自定义实现 那么这种路径是哪里来的,明显是an ...

  5. Oracle VM VirtualBox 安装 Centos7 并配置静态IP

    新建虚拟电脑 选择类型和版本 设置内存大小 现在创建虚拟硬盘 选择VDI 硬盘足够就选择 固定大小 选择虚拟硬盘存储位置不要放在默认的C盘下,设置大小为30G 等待创建虚拟硬盘 虚拟硬盘创建成果之后 ...

  6. openCV3测试指南

    本文来源于https://docs.opencv.org/3.4.1/db/df5/tutorial_linux_gcc_cmake.html 经测试整理后发布 上一节安装完成了openCV,这一节进 ...

  7. Chrome中的插件运用

    1. Postman Java后台开发RPC,还没有没有开始和前端联调,只是想自测下这个RPC,但是有时候RPC的访问入参数据量很大,远远超过get方式访问2k(大多数浏览器通常都会限制url长度在2 ...

  8. 织梦多个栏目arclist调用副栏目不显示的解决办法

    织梦arclist调用副栏目不显示,网上关于这个问题的解决办法有很多,其中一种是: 打开/include/taglib/arclist.lib.php,代码约位于295-296行(我目前用的DedeC ...

  9. shell 实用脚本2

    脚本功能 拷贝文件夹 及 子文件夹内文件  到 对应的 文件结构下 ,且拷贝前先进行备份 #!/bin/sh #create by lizr -- #脚本功能 #覆盖文件前先备份 cfsuffix=$ ...

  10. lightinthebox头部分类菜单下拉导航,使鼠标移到See All Categories就显示下拉菜单

    lightinthebox头部分类菜单下拉导航,使鼠标移到See All Categories就显示下拉菜单 打开includes\templates\lightinthebox\common\tpl ...