0x01背景:
4.2.8p9之前的NTP中的read_mru_list函数允许远程攻击者通过精心设计的mrulist查询导致拒绝服务(崩溃)

0x02复现:
Kali启动服务充当server

Win上执行poc

然后kali上的ntp服务就报错奔溃了

0x03源码分析:
看到focus的reference

漏洞出现在read_mru_list中

在4000-4019可以看到它把mrulist数据包中各字段输入in_parms中,并且用到了sizeof()

4006行sizeof处理的nonce_text在其定义时为

即:nonce_text为6字节
传入变量后

定位到4041行可以看到ctl_getitem(),和在处理变量时使用的estrdup()

先看ctl_getitem,功能是处理解码后数据包中的数据

在part one 中主要是验证包状态

在3111行的for循环中,cp赋初值为reqpt,而cp = reqend时或出出现,则终止,而3103的while循环中我们知道出现,或者空的时候,reqpt++.3106行可以看出,程序正常执行时reqpt<reqend的。所以结合以上分析,可以知道for循环出现,则终止,出现=则赋值。如果没有出现=进行赋值,则tp字段就会一直为null

再看estrdup
从源码中可以看到estrdup中包含了strdup()

而strdup又包含了strlen

由于strlen参数不能是null(如果是null,则segmentation faults)
所以如果val引入了空指针 ,则会触发漏洞

如上图所示,nonce前面的一个字节正常格式原本应该是=(/x3d)的,漏洞发现者把它置为6了(16进制就是\x36),所以才会导致漏洞产生

0x04
Exp结合流量分析:

exp比较简单,主要还是关注在socket建立之后发送的buffer,buffer中就是构造的payload
exp给出的payload是以16进制表示的
\x16\x0a\x00\x10\x00\x00\x00\x00\x00\x00\x00\x36\x6e\x6f\x6e\x63\x65\x2c\x20\x6c\x61\x64\x64\x72\x3d\x5b\x5d\x3a\x48\x72\x61\x67\x73\x3d\x33\x32\x2c\x20\x6c\x61\x64\x64\x72\x3d\x5b\x5d\x3a\x57\x4f\x50\x00\x32\x2c\x20\x6c\x61\x64\x64\x72\x3d\x5b\x5d\x3a\x57\x4f\x50\x00\x00
转成文本得部分乱码

事实上,这就是wireshark中解析出来的ntp的报文(灰底部分)

对照着ntp协议的格式

第一个字节是16,转换成二进制就是00010110,根据上图,第0、1比特代表的是LI(Leap Indicator),当这个值为11的时候是告警状态,代表时间同步出现问题,其他则不处理,这里是00;随后第2、3、4比特是010,代表的是版本,之后的5、6、7比特110代表的是Mode,这里也就是6,代表着mrulist特性处理,而这次漏洞,确实就是由于mrulist导致的。

Cve-2016-7434一把梭相关推荐

  1. 敲代码就是一把梭_2020必看!开发五年的大佬日常工作中所使用的java代码技巧...

    前言 罗列工作中实际使用的一些代码技巧或者叫工具类;知识无大小,希望大家都有收获 实用技巧 rpc服务出参统一化 什么,出参统一化有什么好说的????? 我不知道你们有没有遇到过多少五花八门的外部服务 ...

  2. RPC 技术及其框架 Sekiro 在爬虫逆向中的应用,加密数据一把梭

    文章目录 什么是 RPC JSRPC Sekiro 优缺点 什么是 RPC RPC,英文 RangPaCong,中文让爬虫,旨在为爬虫开路,秒杀一切,让爬虫畅通无阻! 开个玩笑,实际上 RPC 为远程 ...

  3. Oracle中一把梭获取对象DDL创建语句

    文章目录 1.DBMS_METADATA.GET_DDL包详解以及使用案例 1.1.官方文档参考 1.2.常用获取ddl信息案例 1.2.1.查看表以及对应索引创建语句 1.2.2.获取用户下所有对象 ...

  4. Elasticsearch是一把梭,用起来再说?!

    Elasticsearch 最少必要知识实战教程直播回放 0.题记 Elastic中文社区和各种Elastic爱好者交流群中会遇到形形色色的问题. 来自运维球友讨论的真实线上吐槽问题总结: 问题1:开 ...

  5. 【python逆向一把梭】pyinstaller打包的exe逆向一把梭

    前言 终于给我一把梭了. 步骤 https://github.com/saucer-man/exe2py 先下载个反编译工具,然后手工给解出来的pyc加上magic头,需要与版本对应 比如python ...

  6. Vue,React,微信小程序,快应用,TS 和 Koa 一把梭

    前言 前端生态越来越繁华,随着资本寒冬的来临,对前端招聘要求也变高了: 本文将从项目出发由浅入深做一个Vue,React,微信小程序,快应用,TS和 Koa的知识大串联: 相当于一篇文章搞定前端目前主 ...

  7. “一把梭:REST API 全用 POST”

    写这篇文章的原因主要还是因为V2EX上的这个贴子,这个贴子中说-- "对接同事的接口,他定义的所有接口都是 post 请求,理由是 https 用 post 更安全,之前习惯使用 restf ...

  8. [re]符号执行一把梭:2020网鼎杯青龙组re_signal_wp

    [re]符号执行一把梭:2020网鼎杯青龙组re_signal_wp 这道题是2020网鼎杯青龙组的一道逆向提signal,一道虚拟机逆向题目,题目本身不难,可以直接分析也可以符号执行秒掉. 题目分析 ...

  9. java图片加水印上传工具类_基于Spring Boot实现图片上传/加水印一把梭操作

    文章共537字,阅读大约需要 2分钟 ! 概述 很多网站的图片为了版权考虑都加有水印,尤其是那些图片类网站.自己正好最近和图片打交道比较多,因此就探索了一番基于 Spring Boot这把利器来实现从 ...

  10. java ts流封装工具_从 Java 到 TS,阿里妈妈的接口管理一把梭

    这两天看到知乎上的:后端开发完接口才给出接口文档,合理吗?引起了不少的讨论,说起来这是前后端分离普及之后带来的一个新问题,阿里妈妈前端团队比较早在业务中全面使用单页应用,对接口管理有过一些探索和积累, ...

最新文章

  1. Nature:环境vs基因,谁对肠道菌群影响更大?
  2. nik collection滤镜
  3. mysql取n条不重复_MySQL重复数据中限定操作n条
  4. Android开发之Retrofit小试牛刀
  5. c语言 将url图片存到本地_python爬虫:爬取男生喜欢的图片
  6. Linux 打印简单日志(一)
  7. 函数的返回竟然能作为左值
  8. Spark修炼之道——Spark学习路线、课程大纲
  9. Linux之Firewall防火墙、iptables、firewalld
  10. 怎样用sql语句复制表table1到表table2的同时复制主键
  11. HDU4757 Tree(可持久化Trie)
  12. 通信技术基础知识回顾
  13. 6条开会清单,教你组织一场高效会议!
  14. html 的scor属性,[HTML] 通过 scrollWidth 属性滚动内容
  15. Unit nginx.service entered failed state(nginx启动失败)
  16. 面试之路(6)-BAT面试之操作系统内存详解
  17. POWER+模块化UPS与传统UPS的比较
  18. 文本挖掘 - 文档模型
  19. iconfont symbol引入使用有彩色,通过class引入没有彩色
  20. 通告,消息,提醒,设计

热门文章

  1. 10激活网页被劫持_新手学习SEO需掌握的10大SEO技能
  2. 我的世界服务器的启动器在哪个文件夹,原神启动器在哪 启动器位置文件介绍...
  3. C: integer overflow,隐式类型转换/整数加法溢出 解决方法示例;check_add_overflow;__builtin_add_overflow
  4. 不同分发平台的区别和特点
  5. idea的java项目怎么连数据库_idea 使用Java连接SQL Server数据库教程
  6. PowerShell脚本免杀/bypass/绕过杀毒软件
  7. 每天新老用户,日活,周活,月活的hive计算
  8. 金科科技学院计算机系统,金陵科技学院教务管理系统登录入口二本公办院校
  9. 关于位运算符号的辨识及运用示例
  10. 百度资源(站长)平台怎么提交收录?