规则:

这次的规则比较蛋疼,不能连网,不能使用自己的电脑,提供的工具如下:

看到这些工具,还以为会有二进制,然而二进制选手只能呵呵哒,坐着打一天酱油了。

AWD:

本次AWD只有一个WEB,用的是THINKPHP 3.2.3写的DNS WEB程序;

上来SSH连接后,写了好久的PHP WAF,但发现压根不能用,因为权限做的比较死,网站根目录下只有.key和.backdoor.php两个文件可以修改,其他文件都修改不了。

发现了几个漏洞如下:

  1. 控制器search中存在SQL注入漏洞,本想直接写shell,发现压根写不了,然后放弃了。

  1. download.html中提供了几个下载文件的链接,存在两个关键参数filename和token

查看download.php

从这里可以看到,是可以读取/flag文件的,但是难点就在如果获取/flag对应的token(所有队伍的.key文件是一样的,所以将.key内容修改后,就可以修复该漏洞),所以现在就是需要写出加密函数,找到/flag对应的密文,对应的加密函数如下

所以构造/dns-web/download.php?filename=/flag&token=ksvRmpjGmpaUkZPF

就可以直接读取/flag内容

  1. 如果通过写加密函数,就太复杂了,花费了很多时间,并且很多队伍第一时间就将.key文件修改了,压根无法获取到/flag。所以最简单的方法就是通过.backdoor.php,这是个后门文件,内容是:

直接通过var_dump,最终的格式是:<?php @${_GET}_GET; ?>

利用方式

靶场

靶场是每个队伍都是都有属于自己的环境,别人攻击不了,只能自己去攻击自己的服务器,找到flag

外网服务器:两台:10.1.10.1、10.1.10.2

内网服务器:三台,通过获取外网服务器的权限后,才能访问内网。

10.1.10.1

开放了80和一个tomcat控制台,但tomcat控制台没爆破成功,所以就放弃了。

80端口使用的MetInfo 5.3.1,利用update注入重置了后台管理员密码

(1).登录后,页面上就一个大大的flag

(2).后台getshell,然后从服务器上找了flag

10.1.10.2

扫描了端口,发现存在80和88两个端口

(1).80端口使用的IIS6.0,直接存在目录浏览漏洞,根目录下所有文件可见,但是只有图片文件(记住,这很重要)

(2).88端口使用的WeCenter 3.1.9,直接在robots.txt中找到一个flag(这里吐槽一下,这个flag在比赛刚开始时一直不对,到后面才可以)

本来以为要找wecenter的漏洞,但是然后并没有找到。

(3).80端口存在IIS PUT漏洞,直接PUT了asp,asp;.jpg等文件,然而并没有卵用。

(4).这里队友脑洞大开,意识到80端口中的图片其实是88端口里面的图片,上传到80端口的文件,在88端口也能访问。然后上传了一个php文件,不解析;接着上传php3文件,OK了,成功getshell。

(5).接着找flag,根目录下好像有一个,然后通过配置文件,连接到mysql,数据库中也有一个。

(6).最坑的提权过程了,先用UDF提权,创建了函数,并可以执行命令。因为只有“暗组工具包”,所以把工具包中的工具挨个试一便;这里面坑来了,使用工具添加了账号,开了3389,但死活登录不进去,最后将网站的账户httpd添加进管理员后,可以登录了。

(7).在administrator的桌面找到文件flag.zip,打开时,提示需要密码。发现使用了伪加密,拿到kali里面打开,直接得到flag

10.1.10.3,10.1.10.4

拿到10.1.10.2的权限后,扫描到内网存在10.1.10.3和10.1.10.4两台服务器,但是时间有限,没继续做下去了。

源链接

Hacking more

...