[BJDCTF 2nd]test

ssh [email protected] -p <port>

在这里插入图片描述
查看test.c源码,
在这里插入图片描述
这里过滤了'nepbushiflag|/$-<>.'这些字符,如果绕过直接调用system(user_input)

当前用户ctf属于ctf组
在这里插入图片描述
这里要注意test设置了特殊权限位g位,而且flag文件与test同属于同一个用户组ctf_pwn,设置了g位,当test程序运行的时候,它的有效用户组(egid)就会变成文件的所属用户组即ctf_pwn

对于flag文件,它所在用户组的的成员是具备读的权限的,所以只要我们通过test能拿到shell,就一定可以读取到flag(以有效用户组ctf_pwn的身份)
在这里插入图片描述
现在目标就转变为绕过这么多字符拿到一个shell
在这里插入图片描述

ls /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games | grep -v -E "n|e|p|u|s|h|i|f|l|a|g"

在这里插入图片描述
x86_64是一个指向setarch的链接
在这里插入图片描述
在这里插入图片描述
在拿到shell后,egid即有效用户组就是ctf_pwn,也验证了我们前面说的理论。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章