博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【pwnable.kr】fd
阅读量:4206 次
发布时间:2019-05-26

本文共 1020 字,大约阅读时间需要 3 分钟。

最近准备整理一下之前的pwn writeup。有考虑过整理发表在新博客上,但是最近发现csdn的编辑器用的越来越顺手了,于是先写在这上面吧。

 

题目地址 http://pwnable.kr/play.php

下载程序

scp -P 2222 -p fd@pwnable.kr:/home/fd/* ./

题目逻辑

程序调用read函数从fd = atoi(argv[1]) - 4660读,之后和”LETMEWIN\n”按照字节比10次。 
如果想进入system流程,let v6 == 1 and v5 == 0.因此,从fd读取的字符串和”LETMEWIN\n”相等即可。 
PS: 对比源码,strcmp参数之一是静态字符串,所以可能做了编译优化,变成了按字节比较。

IDA反编译结果(pseudocode)

 

if ( argc > 1 )  {    v4 = atoi(argv[1]);    read(v4 - 4660, &buf, 0x20u);    v7 = 10;    v8 = "LETMEWIN\n";    v9 = &buf;    do    {      if ( !v7 )        break;      v5 = (const unsigned __int8)*v8 < *v9;      v6 = *v8++ == *v9++;      --v7;    }    while ( v6 );    if ( (!v5 && !v6) == v5 )                   // v6 == 1, v5 == 0    {      puts("good job :)");      system("/bin/cat flag");      exit(0);    }    puts("learn about Linux file IO");    result = 0;  }  else  {    puts("pass argv[1] a number");    result = 0;  }

exploit

fd@ubuntu:~$ echo "LETMEWIN" | ./fd 4660good job :)mommy! I think I know what a file descriptor is!!
本关源码和writeup均放在:。欢迎STAR。
你可能感兴趣的文章
微信小程序多端框架 kbone 开源
查看>>
视频质量评估算法 DVQA 正式开源
查看>>
在中国提供了60亿次服务的疫情模块向世界开源 腾讯抗疫科技输出海外
查看>>
在中国提供了60亿次服务的疫情模块向世界开源
查看>>
世界卫生组织与腾讯加深合作 新冠肺炎AI自查助手全球开源
查看>>
Hibernate 中get, load 区别
查看>>
java反射详解
查看>>
JPA 注解
查看>>
JQuery 简介
查看>>
Java创建对象的方法
查看>>
Extjs自定义组件
查看>>
TreeGrid 异步加载节点
查看>>
Struts2 标签库讲解
查看>>
Google Web工具包 GWT
查看>>
材料与工程学科相关软件
查看>>
MPI的人怎么用仪器
查看>>
windows 下AdNDP 安装使用
查看>>
Project 2013项目管理教程(1):项目管理概述及预备
查看>>
ssh客户端后台运行
查看>>
哥去求职,才说了一句话考官就让我出去
查看>>