老司机说的p站是什么?萌新带你开车上p站

访客3年前黑客工具943

0x01前言:

这一系列文章为pwnable.krToddlr’s Bottle的全部题解,其中有三道题目相对而言稍难或者说比较经典,单独成篇,其他题目的题解放在一起发出来。

0x02fd

Ssh连接

萌新带你开车上p站(一)

 

看一下目录

萌新带你开车上p站(一)

 

我们需要执行flag,或者查看flag的内容

看题目的提示就知道这题和文件描述符有关

萌新带你开车上p站(一)

 

 

看看源码

萌新带你开车上p站(一)

 

 

在代码中我们可以看到要通过strcmp()比较后会输出

查看strcmp的用法

萌新带你开车上p站(一)

 

萌新带你开车上p站(一)

 

 

可知,strcmp()中,若参数s1和s2字符串相同则返回0,s1大于s2则返回大于0的值,s1小于s2则返回小于0的值。

代码中要cat flag执行的话if语句应满足strcmp返回0,即buf的内容应为LETMEWIN

那么buf的值哪来的呢

man read可知

萌新带你开车上p站(一)

 

 

buffer的值由read控制,从fd读入count个字节内容

fd在代码中的值为atoi(argv[1])-0x1234

atoi()用于把字符串转换为整数

由linux下文件描述符可知(源码在/usr/include/unistd.h)

萌新带你开车上p站(一)

 

 

即文件描述符0表示标准输入,也就是我们可以从命令行中控制的。

Atoi接收的参数我们可以控制,只要令argv[1]为0x1234(argv[0]为程序名称,argv[1]为输入参数),0x1234十进制为4660,经过运算最后赋值给fd的就是0,然后再传入read(),由于fd为0,所以我们在命令行中输入什么,则在buffer中写入的就是什么,只要输入LETMEWIN就可以了

分析完毕,接下来测试一下

萌新带你开车上p站(一)

 

 

通过,logout关闭ssh连接

萌新带你开车上p站(一)

 

 

0x02collision

萌新带你开车上p站(一)

 

 

看题目描述应和哈希碰撞相关

 

萌新带你开车上p站(一)

 

看看源代码

萌新带你开车上p站(一)

 

在main()中看到传入的argv[1]需要满足条件:

长度为20字节,传给check_password后的返回值为硬编码的0x21dd09ec

那么我们需要来看一下check_password的逻辑

可以看到传参为char型指针,在逻辑中被强制类型转换为int型指针

从大小的角度来看即1字节转换为4字节,一共20字节,20/4=5,刚好对应for循环里的5次,for循环是做了个累加的操作,即累加和等于0x21DD09EC即可

emmm简单理解,就是说输入20字节,每4字节一组,共5组,5组相加后等于0x21dd09ec即可。

这就很简单了

我设16个字节为0x1,那么另外的4字节应为差值0x1dd905e8,又因为小端序,所以写的时候倒过来写即可,如下所示

萌新带你开车上p站(一)

 

 

0x03bof

根据题目描述这是一道缓冲区溢出的题目

 

萌新带你开车上p站(一)

 

下载bof及其代码

萌新带你开车上p站(一)

 

看看源码

萌新带你开车上p站(一)

 

看到main中调用了func,传参为0xdeadbeef

而func()中可以看到需要传参为0xcafebabe才可以getshell

我们注意到func中我们可以通过gets控制输入,gets像本题的这种用法是非常危险的,容易造成缓冲区溢出攻击,这次我们就来pwn掉它

我们尝试输入写字符看看

萌新带你开车上p站(一)

 

那么基本的思路有了,就是找到确定的偏移,然后使用0xcafebabe覆盖0xdeadbeef。

偏移是多少呢

配合gdb来看看

萌新带你开车上p站(一)

 

 

在main下断点

输入r启动

萌新带你开车上p站(一)

 

 

在断点处停下了

我们反汇编func看看比较key和0xcafebabe指令在哪儿

萌新带你开车上p站(一)

 

 

看到上图的红框中的cmp指令了,这就是关键

可以看到地址是0x56555654

在这里下个断点

萌新带你开车上p站(一)

 

 

按c继续执行

萌新带你开车上p站(一)

 

 

命中第二个断点后,我们来看看栈的布局

萌新带你开车上p站(一)

 

可以看到0xdeadbeef在0xffffd330,而我们输入的A是从0xffffd2fc开始

emmm,数一下,从最开始的0x41到0xdeadbeef之前查了13*4=52个字节,在53-56处写入0xcafebabe覆盖掉原有的0xdeadbeef即可

编写pwntools脚本

萌新带你开车上p站(一)

 

 

测试如图,打回了一个shell

萌新带你开车上p站(一)

标签: 带你司机

相关文章

竖条连衣裙配什么包(带你走进条纹连衣裙的世

竖条连衣裙配什么包(带你走进条纹连衣裙的世

条纹,一直是时尚路上永远不会下线的元素,他给人的第一印象永远是那么清爽干练,带点法式的chic,时尚圈的人都懂这一点,所以每个季节都不会放过他。而条纹的连衣裙,更是夏季衣橱里的一件百搭单品,不信你来看...

软座和硬座有什么区别(带你了解软座硬座的区

软座和硬座有什么区别(带你了解软座硬座的区

在中国的铁路运输线路上有各种各样的交通工具,高铁动车,红皮快车,绿皮慢车。其中呢,绿皮火车是存在历史最悠久的,它伴随了80后,90后,00后这三代最具争议和最具有个性的人群。 还记得逗逗五岁的时...

蛇怕什么东西(蛇为什么怕雄黄,带你了解)

蛇怕什么东西(蛇为什么怕雄黄,带你了解)

作为五毒之一的蛇,是不少人的“噩梦”!有的人怕蛇的形状、有的人怕蛇的毒性。吃货其实也怕蛇——怕蛇不新鲜,吃着没味道。那么,既然很多人都怕蛇,怎么做才能防蛇于未然呢?哎,估计很多人都想到了,尤其是刚过完...

汽车配件生意怎么做(带你了解汽配生意内幕)

汽车配件生意怎么做(带你了解汽配生意内幕)

我从事汽配行业有些年头今天给大家分享一些汽配行业不为人知的秘密! 汽车已成为生活中的不可分割的一部分.对于小康家庭来说买一辆车需要考虑性价比.油耗.外观.后期保养维修费用。3年10万公里以内咱不用去...

电视机hdmi接口有什么用(带你深入了解)

电视机hdmi接口有什么用(带你深入了解)

自液晶电视诞生以来,各类接口也开始越来越丰富,以前在CRT电视机上不常见的VGA接口、USB接口、网线接口、HDMI接口等等,在平板电视上都出现了,而且都各有各的用途,可接驳各种外置电子设备。今天小编...

投资公司是做什么的?小编带你涨涨知识

投资公司是做什么的?小编带你涨涨知识

这段时间近200家P2P机构集体爆雷,让很多投资者一夜之间回到解放前,损失惨重。从根本上来讲,都是因为不真正了解P2P,被其高额回报吸引而忽略了重大风险。我朋友在两家类似P2P的公司上过班,他跟我...