【重要通知】知了堂禁卫实验室全新上线!!
这里有安全体系的学习资源、
最前沿的原创文章、最新的漏洞挖掘原创!!

本期是“二进制安全之堆溢出”系列第一期,主要介绍CTF环境配置安装pwntools

  • sudo apt install python-pip python3-pip
  • sudo pip install pwntools
    • 提示安装python-dev可以使用aptitude安装
    • 这一步建议挂代理
  • python

>>> import pwn >>> pwn.asm("xor eax,eax") '1xc0' #安装成功安装pwndgb

  • git clone https://github.com/pwndbg/pwndbg
  • cd pwndbg
  • ./setup.sh

安装gef

  • wget -q https://github.com/hugsy/gef/raw/master/gef.py
  • echo "source ~/gef/gef.py" >> ~/.gdbinit

安装peda

  • git clone https://github.com/longld/peda.git ~/peda
  • echo "source ~/peda/peda.py" >> ~/.gdbinitfile

安装ROPgadget

  • 用来构建rop链
  • git clone https://github.com/JonathanSalwan/ROPgadget.git
  • pip install capstone
  • cd ROPgadget
  • python setup.py install
  • ROPgadget

安装one_gadget

  • 寻找libc文件中的一些shell地址
  • gem install one_gadget

gdb切换脚本
#!/bin/bash function Mode_change { name=$1 gdbinitfile=/root/.gdbinit #这个路径按照你的实际情况修改 peda="source ~/peda/peda.py" #这个路径按照你的实际情况修改 gef="source ~/gef/gef.py" #这个路径按照你的实际情况修改 pwndbg="source /root/pwndbg/gdbinit.py" #这个路径按照你的实际情况修改 sign=$(cat $gdbinitfile | grep -n "#this place is controled by user's shell") #此处上面的查找内容要和你自己的保持一致 pattern=":£this place is controled by user's shell" number=${sign%$pattern} location=$[number+2] parameter_add=${location}i parameter_del=${location}d message="TEST" if [ $name -eq "1" ];then sed -i "$parameter_del" $gdbinitfile sed -i "$parameter_add $peda" $gdbinitfile echo -e "Please enjoy the peda!n" elif [ $name -eq "2" ];then sed -i "$parameter_del" $gdbinitfile sed -i "$parameter_add $gef" $gdbinitfile echo -e "Please enjoy the gef!n" else sed -i "$parameter_del" $gdbinitfile sed -i "$parameter_add $pwndbg" $gdbinitfile echo -e "Please enjoy the pwndbg!n" fi } echo -e "Please choose one mode of GDB?n1.peda 2.gef 3.pwndbg" read -p "Input your choice:" num if [ $num -eq "1" ];then Mode_change $num elif [ $num -eq "2" ];then Mode_change $num elif [ $num -eq "3" ];then Mode_change $num else echo -e "Error!nPleasse input right number!" fi gdb $1 $2 $3 $4 $5 $6 $7 $8 $9安装zsh

  • apt-get install zsh
  • git clone https://github.com/robbyrussell/oh-my-zsh.git
  • cd oh-my-zsh/tools
  • ./install.sh
  • 下载安装 zsh-autosuggestions (自动补全可能路径)
    • git clone git://http://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
  • 下载 autojump (快速跳转)
    • git clone https://github.com/joelthelion/autojump.git
    • cd autojump
    • ./install.py
    • 将[[ -s ~/.autojump/etc/profile.d/autojump.sh ]] && . ~/.autojump/etc/profile.d/autojump.sh添加到zshrc文件尾 下载安装 zsh-syntax-highlighting (终端输入高亮 正确路径下划线)
    • git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  • vi ~/.zshrc
  • plugins=(git autojump zsh-autosuggestions zsh-syntax-highlighting)
  • source .zshrc
  • 改变默认shell
    • chsh -s /bin/zsh

辅助命令查看libc版本

  • find / -name libc.so.6
  • ll /lib/x86_64-linux-gnu/libc.so.6 lrwxrwxrwx 1 root root 12 4月 15 06:11 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.23.so
  • sudo ldd --version

ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27 Copyright (C) 2018 自由软件基金会。开启ssh

  • apt-get install openssh-server
  • vi /etc/ssh/sshd_config
  • vi /etc/ssh/ssh_config

添加:PermitRootLogin yes
以上就是本期全部内容啦!!【下期预告】二进制安全之堆溢出——堆基础 & 结构

c++算术溢出_二进制安全之堆溢出(系列)——CTF环境配置相关推荐

  1. malloc 结构体_二进制安全之堆溢出(系列)——堆基础 amp; 结构(二)

    哈喽啊 这里是二进制安全之堆溢出(系列)第二期"堆基础 & 结构"第二节!! 话不多说,直接上干货! 微观结构 函数执行流程 void *malloc (size_t by ...

  2. 内存溢出_容易造成单片机内存溢出的几个陷阱

    [小宅按] 关于程序变量和内存分配,都是需要我们时刻关注的问题.我相信有不少人在这块犯过很多的错误,也可能说明我们基础不够扎实,编写程序的习惯也不够好. 总结一下关于程序的变量和内存方面的概念,虽然是 ...

  3. 内存溢出_关于PermGen Space内存溢出解决方案

    内存溢出分为Heap Space和PermGen Space两种异常.正巧的是我这次就碰到了PermGen space异常,为了解决这个异常花了我 半天的时间,所以今天写这个方案就是做一种笔记. 刚开 ...

  4. python 堆栈溢出_内存 - 如何发生“堆栈溢出”,如何防止它?

    堆 在此上下文中,堆栈是在程序运行时放置数据的最后进先出缓冲区. 最后一次出来(LIFO)意味着你输入的最后一件事总是你要退回的第一件事 - 如果你在堆叠上推2个项目,'A'然后'B',那么你首先要弹 ...

  5. 导致溢出_邯郸一司机,溢出的“5毫克”导致A2被降级,老司机自吞“苦酒”

    酒后驾车宛如 "定时炸弹" 但就是有人偏要以身试法 下面这位司机 就为自己的行为付出了代价 案情回顾 1月6日晚上8时许,当民警巡查至大名府路与贵乡街路段处时,发现自东向西驶来的一 ...

  6. python识别文字免安装_免安装方式的Python之VSCode环境配置

    概述 本文旨在介绍免安装方式,在VSCode中搭建Python(3.73)的配置环境.至于Python是什么.它能做些什么,诸如此类的介绍均不在此文中介绍,相信能看此文的人,多多少少都会有些了解. V ...

  7. 段错误、内存泄漏、内存溢出、堆溢出、栈溢出

    参考:内存泄漏.内存溢出.段错误.堆溢出.栈溢出 作者:焦木白 发布时间:2019-10-22 网址:https://blog.csdn.net/jiaomubai/article/details/1 ...

  8. 处理Java堆溢出的简单思路

    处理Java堆溢出的简单思路 java堆溢出 Java堆内存的OOM异常是实际应用中常见的内存溢出异常情况.当出现Java堆内存溢出时,异常堆栈信息"Java.lang.OutOfMemor ...

  9. 什么是栈溢出和堆溢出

    栈溢出是由于C语言系列没有内置检查机制来确保复制到缓冲区的数据不得大于缓冲区的大小,因此当这个数据足够大的时候,将会溢出缓冲区的范围. 堆溢出的产生是由于过多的函数调用,导致调用堆栈无法容纳这些调用的 ...

最新文章

  1. wince6.0 编译报错:error C2220: warning treated as error - no 'object' file generated的解决办法
  2. 计算机应用基础专科,2016电子科技大学计算机应用基础(专科)在线作业2
  3. bInitiallyDisabled
  4. matlab怎么调整子图间距,matplotlib调整子图间距,调整整体空白的方法
  5. gwt-ext_GWT,GWT-Ext(SmartGWT),GXT(Ext GWT)常见任务
  6. mysql-bin.index找不到_MySQL不能启动 mysql-bin.index' not found (Errcode: 13)
  7. python抓取html中特定的数据库,Python抓取网页中内容,正则分析后存入mysql数据库...
  8. u盘启动pxe安装linux,U盘启动安装centos5.5+centos6.3+PXE网络安装CentOS
  9. 对象序列化Java中的序列化
  10. 解释stateless worker
  11. 在Zephyr上使用malloc/new
  12. java cryptojs_CryptoJS用法
  13. 【线性代数】6-5:正定矩阵(Positive Definite Matrices)
  14. <C++>运算符重载进阶之左移运算符,输出成员属性一步到位
  15. 【jq练习】层次选择器
  16. 关于单片机程序设计的几点
  17. thinkphp6如何部署在虚拟主机上?
  18. 软件开发学习的5大技巧,你知道吗?
  19. 绩效管理工具OKR与GRAD
  20. 上午小博(java小知识)

热门文章

  1. 击败李世石后,人工智能转战医疗:用大数据诊断眼科疾病
  2. Spring 5 新特性:函数式Web框架
  3. MyBatis知多少(6)表现层与业务逻辑层
  4. 大学毕业出路利弊浅谈
  5. W3C api 抓取
  6. 1-Dimensional Heightfield Visibility Query
  7. Linux命令之du命令df命令
  8. java junit Assert断言用法示例: Assert.assertEquals(期望的结果,运算的结果)
  9. win docker运行MySQL
  10. linux bash中的引号:单双引号、反撇号