欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Pwnable.kr WP

程序员文章站 2022-03-04 19:45:52
...

近期,开始将以前做的CTF的题目,全部整理一遍,写个WP,也是为了督促自己,还需要学的东西还有很多。

Pwnable.kr fd 

我们首先看到这道题的C源码:

Pwnable.kr WP

需要得到flag,则需要执行

system("/bin/cat flag");

则 必须 buf = "LETMEWIN"。

read(fd, buf, 32)函数中的三个参数中:

fd == 0时:则表示标准输入;

fd == 1时:则表示 标准输出;

fd == 2时,则表示标准输出错误。

buf 表示读入的缓冲区;

32表示读入32字节;

所以我们 只需要 使 fd == 0 ,则我们就能自己输入 LETMEWIN 到 buf中。这样最终得到flag。

那么我们就要令

argv[1] = 0x1234

即 argv[1] = 4660

Pwnable.kr WP


Pwnable.kr Collision

Pwnable.kr WP

这道题主要是 我们输入的 20个 字符串 转换为 int 型之后,相加之后 要等于  0x21DD09EC。

我们先来了解一下 char 型 强制转换为 int 型 的方法:

如果我们输入的字符串是: 12345678, 则转换为 ASCLL码之后。每4位转为一个 int 型。 之所以 顺序改变是 因为 小端序的原因。

Pwnable.kr WP

所以 我们 输入的 20个 字符串, 最终会 转换为 5个 int 型 数组, 刚好够加5次。

我们只需要 输入 5组 数,使其相加 为 0x21DD09EC 即可。

那么 我们 前4组数 使其 都为 0x02020202, 最后一组数 为 0xE401D519(此处因为小端序的原因会改变存储的顺序).

Pwnable.kr WP


Pwnable.kr mistake

Pwnable.kr WP

根据题目和提示,我们可以发现这道题的漏洞在与 运算符的优先性问题。我们可以看到如下代码:

if(fd=open("/home/mistake/password",O_RDONLY,0400) < 0)

这段代码中,由于  比较运算符 优先级中 <  的优先级 高于  =  的优先级。也就是上述代码的执行顺序变为如下:

if( fd= (open("/home/mistake/password",O_RDONLY,0400) < 0 ))

而我们知道 open() 函数 打开一个文件成功之后,就会返回一个非零数值,那么 永远比 0大,所以比较之后,将会返回 false 也就是 0。 所以 最终 fd = 0;  而当 fd = 0 之后,我们以下的代码:

len=read(fd,pw_buf,PW_LEN)

此代码将会变为 stdin, 也即是读取用户输入,我们可以输入任意的数值。 所以我们可以如下输入:

pw_buf = 1111111111

pw_buf2 = 0000000000;

因为 pw_buf2 ^ 1111111111 = 1111111111;

Pwnable.kr WP


Pwnable.kr shellshock

这道题,可以先对 shellshock有一定的了解:

https://blog.csdn.net/pygain/article/details/53969081

然后按照漏洞去执行 bash -c cat flag的命令即可

Pwnable.kr WP

 


Pwnable.kr uaf

此题需要用到虚函数和堆的知识,博主对堆不太了解,只对虚函数有一定的了解,看了别人的WP,也只是了解一点,等以后有更深的知识了,再来补吧,下面放两篇我觉得写的挺详细的WP,供参考:

https://bbs.pediy.com/thread-224651.htm

https://blog.csdn.net/qq_20307987/article/details/51511230


Pwnable.kr cmd2

 

Pwnable.kr WP

 

我们可以看到 这道题对我们输入的 grgv[1] 的进行了过滤,过滤掉了 / 、 ‘ 、 flag 等,那么我们要输入的参数原本为:

/bin/cat flag 就要进行绕过。

那么 flag 可以用适配符代替, 但是  /  怎么办呢?

pwd  命令是输出当前目录名的, 如果我们当前目录在根目录下,那么我输出的不就是 /  吗?

所以我们可以先进入到根目录,随后如下操作:

./home/cmd2/cmd2  '""$(pwd)bin$(pwd)cat $(pwd)home$(pwd)cmd2$(pwd)fl*""'

Pwnable.kr WP

相关标签: CTF