CTF实战29 Linux缓冲区溢出

重要声明

该培训中提及的技术只适用于合法CTF比赛和有合法授权的渗透测试,请勿用于其他非法用途,如用作其他非法用途与本文作者无关

今天我们来说一下关于Linux缓冲区溢出的东西

Linux缓冲区溢出

攻击方法还是很多,我们这里举两个例子

1. 环境变量攻击

在Linux中,程序在内存中的分布和Windows的差不多

但是也有自己的特色

命令行参数和环境变量都是存储在高地址上

只要我们通过溢出能操纵这些数据

就可以干很多事

2. 格式化字符串函数攻击

这个写过C语言的都懂我就不介绍太多了

格式化输出的函数有

  • printf()
  • fprintf()
  • sprintf()
  • snprintf()

等等

格式符号

  • %d 十进制数
  • %s 字符串值
  • %x 十六进制值

等等

通过输出长度过长的数据来覆盖内存地址中的数据

光说不练假把式,明天我们用两个PWN类型的题目练练看~~~

原文发布于微信公众号 - 玄魂工作室(xuanhun521)

原文发表时间:2018-08-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏决胜机器学习

PHP面向对象核心(三)——反射、异常处理

PHP面向对象核心(三) (原创内容,转载请注明来源,谢谢) 五、反射 1、反射即PHP运行过程中,提取出关于类、方法、属性、参数等信息,包括 注释信息。动态获...

33812
来自专栏从零开始学自动化测试

python笔记20-获取当前运行函数名

写完代码之后,一般为了方便查看日志,可以在日志输出中加入当前运行的函数名称或类和方法名称,以便于代码报错的时候能快速找到报错的是哪个函数或方法。 那么如何获取当...

1241
来自专栏小樱的经验随笔

【批处理学习笔记】第二十三课:用户变量和变量引用

用户变量     编写批处理程序时,用户根据需要自己定义的变量称之为用户变量。用户变量类似于C语言里面的变量,仅仅在定义该变量的程序中有效。     用户变量由...

2854
来自专栏Felix的技术分享

理解对C++裸指针释放后重用的问题

2349
来自专栏微信公众号:Java团长

什么是线程安全,你真的了解吗?

我们整天说线程安全,但是你对什么是线程安全真的了解嘛?说真的,我之前真的是了解甚微,那么我们今天就来聊聊这个问题。

1553
来自专栏H2Cloud

C++中消息自动派发之二 About IDL解析器

  前一篇blog中讲了如何在C++中实现消息的自动派发,而关键点在于如何实现通过IDL文件自动生成msg_dispatcher模板类。有几个网友提醒我idl解...

4029
来自专栏JavaQ

Java多线程编程笔记之Condition

本篇内容基于JDK7,涉及Condition常用方法。 1.概述 Condition接口位于java.util.concurrent.locks包下,实现类有 ...

2755
来自专栏java一日一条

JAVA 动态代理

为了使代理类和被代理类对第三方有相同的函数,代理类和被代理类一般实现一个公共的interface,该interface定义如下

983
来自专栏Java编程技术

Dubbo剖析-增强SPI的实现

在Duboo剖析-整体架构分析中介绍了dubbo中除了Service 和 Config 层为 API外,其他各层均为SPI,为SPI意味着下面各层都是组件化可以...

1381
来自专栏微信公众号:Java团长

《深入理解Java虚拟机》笔记

也就是说,我们完全可以做一个工具,从一个文件中读入指令,然后将这些指令运行起来。上面代码中“编好的机器指令”当然指的是能在CPU上运行的,如果这里我还实现了一个...

601

扫码关注云+社区

领取腾讯云代金券