pwn-ORW
pwn知识-ORW
在CTF赛事中,越来越多的题目启用了沙箱,会禁用掉execve
函数,从而达到让我们构造不出来system('/bin/sh\x00')
来getshell
的效果,这个时候我们就可以利用orw来解题。
原理
见名知意,ORW
与三个函数有关:open
、read
、write
,他们的作用分别是:1
2
3open打开想要读取的文件
read将打开的文件内容读取
write将读取到的内容输出
攻击方式
在知晓大概的流程之后,就得设置寄存器的参数,我们需要知道函数对应参数代表的含义:open(file,oflag)
,read(fd,buf,n_bytes)
,write(fd,buf,n_bytes)
。
openfile
就是我们要读取的文件名,oflag
指的是我们以何种方式打开文件,如只读,只写,可读可写。一般我们设置oflag=0
,默认打开,只读即可。
read,write,这两个大同小异。fd
是文件描述符,通过设置它来决定函数的操作,通常设置为0
,表示标准输入,但是在ORW
中,我们需要设置read
的fd
参数为3
,表示从文件中读取,则buf
中存放的就是读入文件内容的地址,n_bytes
就是能够存入多少字节的数据。write
的fd
设置为1
,输出到终端。
评论