CTF_SecondDay_Morning

Pwn从未知的简单out文件中获取flag

    最为简单的是:知道原c文件,然后运行下行命令获得out文件,并运行

gcc ./test.c

 

 

就能知道当输入“abcd”时,就能获得flag,当输入“dcba”时,就能获得服务器端的命令行

     

 

    其次:如果我们已知的只有out文件,那么就需要利用ida进行反编译,获得c文件,虽然并不太清晰,但有利于我们获知其执行逻辑

     ida的使用:

     打开ida64.exe文件,运行该程序后,将我们需要反编译的out文件拖入主面板;

     双击左侧面板的main函数,并按F5按钮,跳转至Pseudocode-A页面,我们就能获知具体的伪代码;

     双击函数变量,我们还能在IDA VIEW-A获知其具体的内容;

  

   问题2:如果需要我们输入的是“abcd\xff”那么就需要py文件进行输入,因为考虑到\xff的特殊性,我们无法直接在终端上输入。这里我们有两种方式向a.out文件输入

                一种方式是新建立input.py文件

 

             在终端执行该py文件,获得input.txt文件;

python input.py

             随后执行下一行命令,就能成功向a.out程序输入“abcd\xff”

./a.out < input.txt

最终获得flag

 

 

方法二是直接运行python文件,间接运行a.out文件,并将输入也转发至out文件中

新建立solution.py文件如下:

 

 

在终端运行该文件

python solution.py

最终获得flag

 

 

 

 

 

 

               

 

posted @ 2021-01-20 14:24  净身  阅读(98)  评论(0)    收藏  举报