如何解决用LD_PRELOAD覆盖getuid不能直接工作,但可以在gdb中工作
我正在解决星云漏洞利用演习(https://exploit-exercises.lains.space/nebula/level13/)带来的挑战。由于已编译的二进制文件是动态链接的,因此我想到编写自定义getuid()以返回1000并设置LD_PRELOAD = custom_getuid。当我直接执行二进制文件时,这似乎不起作用,但是我可以通过在gdb,ltrace,strace中执行来绕过检查。 gdb可以加载我的自定义getuid。任何人都可以解释这种行为吗?谢谢!
find the output of two approaches here
解决方法
我发现了问题,LD_PRELOAD不会影响suid二进制文件。所以我的二进制文件将suid设置为flag13用户。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。