pwn-进阶-forgot
1.checksec先检查,开启的保护以及程序情况。
开启了NX(地址随机化保护) , 就意味着程序块的地址随机分布在虚拟内存空间( virtual memory )不懂得去看《程序员的修养》(最火的那本)。
32位小段序,输入的变量数据在地址中的存放位置(按照小段序存放)。
2.静态调试(静态查看,静态分析)
将文件拖入到 ida 32位,然后确定。
shift+F12看到程序出现的字符串,发现下面。
有./flag cat %s , 双击字符串并且看到了在.rodata 的存放位置,后面还有一个函数。
双击此函数,查看函数全部信息。
这样就看到了函数全貌。之后按F5(笔记本电脑键盘FN+F5),查看程序伪代码。
看到伪代码如下:
snprintf()函数。
【函数原型】
int snprintf(char *str, size_t size, const char *format, …);
【函数参数】
str:目标字符串;size:拷贝字节数(Bytes); format:源字符串; …格式
【函数功能】
最多从源字符串format中拷贝size字节的内容(含字符串结尾标志’\0’)到目标字符串
实现获得flag{xxxxxx}
怎么能执行int sub_80486CC()函数呢?
哦对,接着分析main()主函数,一切都要从主函数开刀。
ida分析F5伪代码。
注意到有这么个输入函数:
isoc99_scanf()利用此函数进行注入payload,由于isoc99_scanf()函数没有字节限制,可以往这里面打入payload。
在伪代码的最后,看到这个函数指针,我不会,看上去一脸懵,现在会了就是要让这个函数指针跳转到v3变量的所在地址。
解释一下:
&就是取地址 *(&v3)就是间接访问v3指向的函数 而后面那个()是用来存放参数的 这里没有参数。
理想情况要这样 ( (&v3+0)) 也就是 –v14=0,v14=1,这就意味着swtich(1)里面的函数要挨个运行,所以要构造一个符合条件的并且执行到((&v3 + --v14))();
方法一:第一种payload,入手点V12_return_addrss。
条件:
switch(v14) # (v14=1)
让函数的payload通过switch(v14){的10个规则},并且这时候v14=10,确保了switch里面的C语句不报错。
payload=1234567@qq.com #这个邮箱就通过switch(v14){的10个规则}检查。
那就后面继续加123,这样也通过了检查。
#> 1234567@qq.com123
pwn-进阶-forgot相关推荐
- 攻防世界 pwn进阶区----No.012 babyfengshui 解题思路
攻防世界 pwn进阶区----No.012 babyfengshui 解题思路 1.本题解题思路 1.先期工作 1.运行程序查看基本逻辑 创建用户 展示用户 更新用户 删除用户 到这里就可以猜测这题有 ...
- 攻防世界 Pwn 进阶 第二页
00 这文章更重要的是对这些题进行一个总结,说一些值得注意的地方,写一些自己的理解. 为了形成一个体系,想将前面学过的一些东西都拉来放在一起总结总结,方便学习,方便记忆. 攻防世界 Pwn 新手 攻防 ...
- 攻防世界 Pwn 进阶 第一页
00 要把它跟之前新手区的放在一起总结,先稍稍回顾一下新手区. 攻防世界 Pwn 新手 1.栈溢出,从简单到难,开始有后门函数,到需要自己写函数参数,到最后的ret2libc. 常见漏洞点有read( ...
- 攻防世界(PWN)forgot
感觉有些wp写的不是特别详细,当时我看的时候有的地方也是看不太懂... 先拖进ida中看一下: 找到溢出点,因为我们分配给了v2 32byte的内存,但是scanf不限制长度,所以这里可以溢出. 第8 ...
- (攻防世界)(pwn)forgot
这题我也是想了好久啊,实在是没找到什么办法,后来还是把题目给摸透了根据经验一个个试出来的方法!!! 拿到题目下载附件查看保护: 只开了NX,嗯... 进入IDA,----惊了,这个是啥子意思??? 一 ...
- realloc函数UAF利用|攻防世界pwn进阶区supermarket
文章目录 思路 0x00.tar解压 0x01.查看保护 0x02.查看程序并调试 0x03.漏洞分析 realloc函数详解 0x04.利用思路 利用过程 exp-1 解法二 函数须知 0x00.查 ...
- pwn刷题num15----格式化字符串漏洞
攻防世界pwn进阶区实时数据监测 首先查保护–>看链接类型–>赋予程序可执行权限–>试运行 64位,小端序开启部分RELRO---got表仍可写未开启canary保护---存在栈溢出 ...
- 分析自动化测试收益_分析自动化测试结果
分析自动化测试收益 So, you've set up a sweet automated test framework. You're running it in your CI/CD pipeli ...
- 攻防世界高手进阶区 ——forgot
攻防世界高手进阶区 --forgot 看了半天,啥也没看懂,做出来了才发现啥也不是. 一,分析文件 checksec 还好,只开启了堆栈不可执行. 运行一下 翻译了一下,应该是判断邮箱是否合乎规矩. ...
- [攻防世界 pwn]——forgot
[攻防世界 pwn]--forgot 题目地址: https://adworld.xctf.org.cn/ 题目: 在checksec看下保护 在IDA中, 竟然有后面函数, 找到sub_80486C ...
最新文章
- 云米冰箱能控制扫地机器人_用冰箱就能掌控全屋家电?云米21Face 428L确实可以...
- 大数据技术基础_【基础】大数据技术栈介绍
- Hinton's Dark Knowledge
- linux mvn m2目录,Maven C盘用户文件下没有.m2
- VMware vCenter升级杂谈
- 无线通信技术协议-Zigbee 3.0
- mysql newid函数_sql随机函数newID()和RAND()详解
- 5 年 Java 面试大厂遭淘汰,面试官:连这个源码都不懂
- Mate7微信指纹支付来了 比Touch ID整合微信早一点
- 中国哪里的地铁最拥挤
- 基于混沌系统的文本加密算法研究(一)——混沌及混沌加密的基础知识
- 张一鸣宣布卸任字节跳动CEO!
- ORA-01830: date format picture ends before converting entire input string
- python爬虫---拉勾网与前程无忧网招聘数据获取(多线程,数据库,反爬虫应对)
- 自旋电子器件 —— 概念
- 两个地理坐标距离计算
- DWR服务器推 教程
- LintCode 木材加工
- 使用标准C++ 生成一个循环输出数字格式化前面补零的简单demo
- 手把手教你使用 Tabris.js 搭建的日记客户端 TuerApp
热门文章
- 江苏省计算机高一考试试题,江苏省计算机等级考试试题参考
- matlab abc dq,关于matlab及pscad中abc2dq模块的使用.doc
- Fvxadvvcssxcvhbnbsaqwerhnvdcnmklllppppppppoooooootretyhgftjhhhfrttyhrxz
- iOS 官方文档翻译
- 虚拟机网络连接方式 主机连接WLAN(wifi)时
- SAP物料凭证中的凭证类型交易/事件
- 什么是软件模块化,为什么要模块化?
- 你知道这些关于大数据与数据分析的学习网站吗?
- Java实现 LeetCode 502 IPO(LeetCode:我疯起来连自己都卖)
- iOS打包pod spec