连载二:easy_cloudantivirus 靶机渗透


重要声明本系列的所有文章均来自本人的学习笔记,转载需注明出处。请勿用文章内所涉及的相关技术从事非法活动,如因此产生的一切不良后果,与文章作者无关。


一、靶机介绍

背景:

云杀毒扫描器!服务器上运行着一种基于云的防病毒扫描服务。

目前,它处于测试模式。

任务:

您被要求测试设置并查找漏洞并升级权限。

难度:

简单(思路和技巧)。

涉及技术:

  • 端口扫描
  • Web应用攻击
  • SQL注入
  • 命令注入
  • 密码爆破
  • 代码分析
  • 本地提权

环境介绍:

靶  机  IP:192.168.0.102

渗透机 IP:192.168.0.105

靶机下载地址:

https : //download.vulnhub.com/boredhackerblog/easy_cloudantivirus.ova


二、端口扫描

常规套路,nmap 扫描下端口。

nmap 192.168.0.102 -p- -sV -sC

可以看到,靶机一共开放了两个端口,分别是 22端口(SSH服务)、8080 端口(HTTP服务)。NMAP 显示靶机运行的 HTTP 服务是基于 python 语言的一个 WEB 框架,这个框架以 werkzeug 为基础开发的。werkzeug 是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库。


三、WEB 应用攻击

既然靶机开放了 HTTP 服务,那我们就可以访问 WEB 应用,进行侦查。

靶机的 Web 首页面提供了一个在线云病毒扫描服务,但是这个服务想要正常使用需要输入邀请码。现在尝试在邀请码的框内手工输入一些弱口令密码和特殊字符:

当笔者将双引号提交时,服务器给我们返回了一个 sqlite3.OperationalError 的报错页面,可以看到报错页面中包含着 SQL 查询语句。这是因为我们输入的邀请码,是被服务器拿去到数据库中匹配的,如果匹配的结果返回正确,则可以使用云病毒扫描服务。现在上图这个报错信息,说明我们提交的内容被拼接到 SQL 查询语句中,导致服务器端执行 SQL 查询语句出现错误,进而返回报错页面。换句话说,这边存在一个 SQL 注入漏洞。我在这边构造一个绕过邀请码检测的语句:

1’" or 1=1 -- 

现在已经顺利进入云病毒扫描服务界面。其实突破邀请码这一步,还有一种方法。

由于服务器对客户端邀请码请求的次数未做一定的限制,这边也就可以采用暴力破解的方式,去破解邀请码。破解的结果是 password 。


四、命令注入