连载二: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 。
四、命令注入