orw进阶技巧
flag文件名未知
getdents
getdents
是 Linux 系统调用,用于读取目录的内容。与常用的高级文件操作函数(如 readdir
)相比,getdents
提供了更底层的访问方式,它直接返回目录项的信息。这通常用于在需要更高性能或对系统调用进行更精细控制的场景中。
题目只能使用read open write close
函数,和以下函数:
gendents
:用于目录遍历,可以用于绕过flag文件名未知情况。mprotect
:修改权限,用来绕过NX保护exit_group
:Linux独有的系统调用,调用后会使得进程的所有线程都退出。
使用
- 打开存有flag文件的目录:
open("/home/ctf", 0)
,返回文件描述符为3 - 遍历目录:
getdents(3, buf, 0x1000)
遍历3描述符中的内容,将文件名存在buf中,长度最大为0x1000字节。
- 打印所有文件名:使用
write(1, buf, 0x1000)
,找到可能是flag的文件
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Ya0rk の Blog!