君莫笑系列视频学习(1)

今天看四个视频好了,全部看完有点难。。。

pwn入门系列0,1,2和逆向基础速成

pwn入门系列-1-pwn基础知识

https://www.bilibili.com/video/av14821631/?spm_id_from=333.788.videocard.2

第一讲,开!

Linux环境下常见漏洞利用技术是君莫笑的资料,之前下载资料太多。。已经乱了

ida里面查看地址

1.在view里面找到对应的,然后空格键过去

2.Options-General-Line perfixes

ida的伪码里面有些变量定义是ida自己的,所以引入defs.h就可以编译运行了

shift+F12 查找字符串

p64

以后讲p64打包的时候,可以这样演示一下,但是它打包的结果,我有点迷。。。

context.binary设置上下文,在当前的环境下,设置一些常见的变量。

例如,是32位的程序,就可以设置当前的上下文为32位

主要用在asm功能

asm

shell就是可以进行远程命令交互

一般context.binary=一个路径,就可以自动设置

context. log level= ' debug'

设置好后,以十六进制显示每次交互信息(因为有些字符不可见)

send就是发送一些数据

sendline就是发送完数据后还跟着一个换行符

recv就是受到一些数据

recvuntil就是一直接收数据知道受到括号后面的数据

asm可以把一段汇编代码编译成一段机器语言

disasm可以反汇编

先转成了机器语言,又转回了汇编语言

使用前要安装:Binutils

ELF是pwntools提供的一个模块,你存进去一个路径,可以生成一个ELF对象,对象可以方便的查看他的一些信息

cyclic在命令行里就可以用,生成100个字符,是32位的,生成的字符中,任意找一个都是独一无二的

这样拿它来覆盖的时候,报错,即可找到从哪一位开始覆盖这个返回地址

如果要在64的话,需要-context指定成64位的

pwn template可以生成一个exp的模板

if那块就是如果带了参数I,就启用debug模式,以此类推。。。。

步入是汇编步入

源码单步是C语言等步入

x/20wx 0x4005fe(x/查看的数量 方式 地址)

b一个字节一个

w四个字节一个

g八个字节一个

x指代十六进制

hexdump也可以查看内存,后面有可以见字符串

如果(0xe80040084abfffff)还是一个值,它可以自动兼用

rop帮助我们利用程序的一段代码

一小段程序中已经存在的汇编代码

一般需要程序静态链接(statically linked),才直接生成rop链

ROPgadget --binary pwn2 --ropchain

自动生成一连串的链

自动生成后,只要把返回地址,覆盖到第一个地址(0x0806ed0a),它就可以直接获取到shell

查看本地文件的库版本:ldd 文件名

查看服务器上的库版本:libcdb.com或者Libc-database

可以查看程序的各个表,有偏移地址,有符号名

第1讲done!

发布了7 篇原创文章 · 获赞 2 · 访问量 349

猜你喜欢

转载自blog.csdn.net/qq_43935969/article/details/104069125