pwntools学习】的更多相关文章

目录 [pwn基础]Pwntools学习 Pwntools介绍 Pwntools安装 Pwntools常用模块和函数 pwnlib.tubes模块学习 tubes.process pwnlib.context(运行环境) pwnlib.elf(ELF文件操作) pwnlib.asm(汇编模块) pwnlib.shellcraft(Shellcode生成器) pwnlib.util(小工具) pwnlib.rop PWN菜鸡小分队 [pwn基础]Pwntools学习 Pwntools介绍 Pwnt…
0x00 数据处理 主要是对整数进行打包,就是转换成二进制的形式,比如转换成地址.p是打包,u是解包 32位:p32,u32 64位:p64,u64 0x01 汇编与反汇编 1.asm 进行汇编,使用参数来指定cpu类型以及操作系统 32位linux: asm("mov eax, SYS_select", arch = 'i386', os = 'linux') '\xb8]\x00\x00\x00' 64位linux: asm("mov eax, SYS_select&qu…
之前主要是使用zio库,对pwntools的了解仅限于DynELF,以为zio就可以取代pwntools.后来发现pwntools有很多的高级用法都不曾听说过,这次学习一下用法,希望可以在以后的exp编写中能提供效率. PwnTools的官网如下:http://pwntools.com/ 安装方法是使用pip命令,pip install pwn.这样就可以安装上pwn库了.使用时用from pwn import *来进行调用. 连接 本地process().远程remote().对于remote…
0x00 序 ​ 之前学了蒸米大佬的ropx86,本次学习 ropx64 0x01 Leak Memory & Dynelf ​ 蒸米大佬使用pwntools的Dynelf模块来获取函数地址,Dynelf模块的原理是,定义的leak函数至少可以泄漏出一个字节的数据,并且这个函数可以执行无数次(每次执行完 都会返回到函数起始继续执行 )然后经过Dynelf调用N次,pwntools经过对泄漏的数据进行求特征值这样一个操作,比较之后得到system函数地址. ​ 使用方法: 定义leak函数 def…
0x00 简介 入职之后,公司发布任务主搞pwn和re方向,re之前还有一定的了解,pwn我可真是个弟弟,百度了一番找到了蒸米大佬的帖子,现在开始学习. 0x01 保护方式 NX (DEP):堆栈不可执行 ASLR:内存地址随机化,在linux和pie相结合,aslr是系统是否开启,有0.1.2三个等级,而pie是程序自身是否开启,两者共同作用有不同的效果,如下图. Canary(GS):栈保护,栈被溢出时,会触发异常 RELRO:GOT不可更改 0x02 栈溢出 额外说一句,gcc如何对各种保…
刚刚开始学习pwn,记录一下自己学习的过程. 今天get了第二道pwn题目的解答,做的题目是2017年TSCTF的easy fsb,通过这道题了解了一种漏洞和使用该漏洞获取shell的方法:即格式化字符串漏洞,通过找到printf的got表改为system的got表,从而让执行printf函数变成执行system函数再传入/bin/sh参数,从而让程序执行system('/bin/sh')获取shell. 打开ida查看: 程序逻辑就是执行getname()函数. 进入getname()函数:…
知识杂项 strncpy(char s1,const char s2,int n); 其中有三个参数分别表示目标字符串s1,源字符串s2,拷贝长度.意思是将s2指向的字符串的前n个长度的字符放到s1指向的字符串中,并将s1原有的前n个字符覆盖. sys_execve() 在真正的开始执行系统调用函数之前,系统调用服务程序已经将一些系统调用的函数的参数传递给了相应的寄存器,比如这里的ebx,ecx,edx都分别保存了系统调用的参数,ebx保存的是第一个参数,依次类推(当然最多传递的参数个数不能大于…
知识杂项 int mprotect(const void *start, size_t len, int prot); mprotect()函数把自start开始的.长度为len的内存区的保护属性修改为prot指定的值. int fflush(FILE *stream) fflush():会强迫将缓冲区内的数据写回参数stream 指定的文件中. 如果参数stream 为NULL,fflush()会将所有打开的文件数据更新. DEP:可帮助防止数据页当作代码执行,从而有效分离数据与代码.通常情况…
本文由“合天智汇”公众号首发 作者:hope 引言 之前遇到没开启NX保护的时候,都是直接用pwtools库里的shellcode一把梭,也不太懂shellcode代码具体做了些什么,遇到了几道不能一把梭的题目,简单学习一下shellcode的编写. 前置知识 NX(堆栈不可执行)保护 shellcode(一段16进制的数据,转化为字符串则为汇编代码) pwnable之start 保护检测 可以看到这道题目什么保护都没有开     ida分析 题目只有start函数,可以知道该题是用汇编语言写的…
MIPS Pwn writeup Mplogin 静态分析   mips pwn入门题. mips pwn查找gadget使用IDA mipsrop这个插件,兼容IDA 6.x和IDA 7.x,在IDA 7.5中解决方案可以参考这个链接:https://bbs.pediy.com/thread-266102.htm 程序流程比较简单,输入用户名和密码进行登录操作. 漏洞存在在vuln函数中,buf只有20字节的空间,但是read函数填充了36字节的数据,覆盖了栈内变量length,将length…