[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,也驗證了我們前面說的理論。
在這裏插入圖片描述

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