CTF网络安全比赛之SSH提权拿FLAG

         这时候,我们就需要提升权限,在提升权限之前,我们需要查看一下,哪些文件具有root的权限,这里,我们就使用到一个命令find,然后从根目录开始,一直逐层向下来查看,具有执行权限的这样一个文件,这里是表示具有执行权限,而这里,是我们需要值得注意的,它是避免错误输出的这样一个命令。实际上如果不加这里,可能我们在查看的时候,会出现意外的错误,所以说我们必须要加上这样一条命令,我们下面在kali当中来执行一下这条命令。

outputo-20220314-102605-678-opky.png

接下来,我们执行一个避免错误操作的这样一条回车,我们会发现,我们具有这么多文件,是具有root权限的,我们往下看,我们会发现 road message是跟我们跟目录下的read message,c文件是类似的,那我们下面就来查看一下,这根目录下的这个 read the,message的文件内容。

这时候我们仔细逐行来查看,首先,这是标准的头文件,接下来会发现两行注释,柳暗花明,又发现了一个桃花源。我们仔细看flag是这里,我们很幸运找到了,接下来我们就仔细阅读,进行一个代码审计,来挖掘内部的信息。首先定一个数组,这是我们的 message,这个的目录是我们可具有操作的这样一个目录。

接下来是一个缓冲区,数组之后又是一个认证的数组。首先principle what's your name?是询问语句,然后输入buff,也就是把输入给赋值给buff这个数组,接下来出现一个判断,判断这里条件,是否这个认证的这个数字和这个我们输入的这个数组的前5个字符是否不相等,加了反斜杠就表示是否相等,相等的情况下我们就输出message,也就是我们输入的内容,然后来执行,我们输入的 message的这个程序,然后点击not else,然后是表示他没有匹配上,那么就执行一个退出操作。

通过这里,我们会发现在我们错误的时候,我们会执行这个 Message,message是具有这个 root权限的这样一个目录,那我们下面就来执行一下message,read message这个程序,我们输入一个姓名,他会发现我们的错误了,那我们下面执行一下正确的操作,message回车,我们这时候就输入ceomo,AAA回车,会发现我们进来了这个目录,会发现他给我们一些提示,输出了很多信息,这时候我们就想到,如果我们把它溢出,它会不会执行我们溢出之后的结果?

分享: