记一次奇葩的渗透测试


前言:这次的渗透测试,常规漏洞不存在或者不好利用,却由于一个打包程序,导致网站沦陷。


0x00 信息搜集

前期使用御剑扫描,得到的信息非常有限,nmap扫描端口也未发现敏感服务,然后访问robots.txt,发现如下信息:

可以发现,其中有admin后台,访问如图:

对于后台我一般会做如下尝试:

  • 弱口令走一波
  • 在用户名处填写注入语句,一般使用’来测试
  • 若无验证码,可以尝试暴力破解;若有验证码,也可以尝试暴力破解

做完尝试之后发现此处并没有注入,但后台能够进行暴力破解,验证码不会失效。然后拿出一堆几十年前的字典狂爆一波,最后GG。。。。

0x01 尝试可能的漏洞

前面没发现太多有用的东西,还是看看站点本身。按照习惯,去放问了网站新闻等内容,通常类似php?id=的url有可能有注入等漏洞,兴高采烈的去各种尝试,后来发现页面不会有任何改变,这里猜测后台应该使用了intval等函数强制转换过。
注入看来是没戏了,然后又发现了一个msg.php,打开一看,果然是留言板,插入xss恶意代码盲打一波。结果到最后,没有任何收获,无解啊。
到目前为止,我们只有一个暴力破解可以使用,奈何字典不够强大,我们怎么继续下去呢?

  • 旁注?醒醒吧,就这一个站!
  • C段?挺花时间的要不继续看看?

0x02 再次收集信息

这次我祭出了更强大的御剑,不对,是更强大的字典,终于皇天不负有心人,在强大的字典面前,一个叫zip.php进入了我的视线,打开如下图:

这是一个打包程序,我们能不能把源码打包直接下载下来,这样我们不就有可能获得管理员的账号密码了嘛?然而看到这里需要输入密码,可能我们又会去爆破,但是这里有更有价值的信息,我们访问图中的url,下载这套代码,第一行代码吸引了我:

尝试失败,说明管理员修改了密码。怎么办呢?我们能不能绕过登陆直接打包呢?
我们可以来审一下代码:

可以看到,当$_REQUEST["myaction"])没有传到后台时,则显示密码框,需要用户登陆,若$_REQUEST["myaction"]) == 'dolist'时,需要验证密码,我们跳过这段,看看后面是否还有else if这类代码,结果发现有如下代码:

也就是说,当$_REQUEST["myaction"]) == 'dozip'时,程序就会执行打包函数,无需登录即可完成打包,只要找到需要打包的参数的代码就OK了。

可以发现,value这里的值改为对应目录,就可以执行打包了
结果打包下来,只有一个sql文件(然而压缩文件1.1G,解压就一个400多k的sql文件??)
从sql里面发现了管理员账号密码,后续的上传shell也非常简单,这里就不多说了。

0x03 总结

信息搜集才是王道,只有搜集到足够多有用的信息,思路也自然会打开。然后就请各位大佬,多多指教咯。

|