安全街
一步步,我们的信息安全时代

某天正开着我的扫描器充当“网络医生”,看能不能找到一些有价值的站提交到cnvd,那样就又能发财了。
用我写好的脚本提取出对应时间段内的扫描结果,看看都有什么收获。
其中发现了一个本市的国企,由于工作性质的缘故,发现本市企业要在不破坏原网站的基础上进行深度测试并提交到单位,于是我准备试着Getshell。

平淡无奇的注入

由于是SqlMap扫出来的当然要先尝试注入,在这里之所以是“尝试”,是因为SqlMap扫出来的结果仅仅是证明存在注入的风险,并不一定能成功注入。
error-based类型的注入点是有很大几率跑出数据的,并且还会很快(个人觉得这个能排第二,联查类型的跑数据应该是最快的了)。因为对于本市企业的无危害渗透测试都是在允许范围内的,所以这里我很容易的跑出了后台管理员用户名和密码

注:未经授权跑数据是违法的,根据经验,证明SQL注入,Access数据库直接使用SqlMap跑出的信息证明即可,非Access数据库跑出数据库名即可

到cmd5查询密码密文对应的铭文,显示查到了,但是居然要收费才能显示!已经吃土了的我留了个心眼,先把后台找出来再说。页面上并没有管理员入口,于是我使用了御剑,还是没有扫出来!想起某次渗透测试中后台被开在另外一个ip2015端口上,我知道可能这次也得不到后台地址了。幸好没花钱查,不然非气吐血不可。

开放的WebDev

只能从别的地方下手了,sqlmap的os-shell并不能写入一个shell。我得知这个网站用的是WinServer2003,并且使用了IIS6.0,于是抱着试试看的心态,使用METHOD请求发送了一个包,万万没想到,这个WebDev居然是开放的!从返回的方法中,我看到了PUTMove方法。
理所当然的,我拿出了工具包中的IIS6.0 WebDev利用工具。使用PUT方法可以上传任意文件到服务器上,但是一般禁止上传脚本文件。所以正确的利用姿势是:

  • 使用PUT方法上传一个写了菜刀一句话shell的txt文件到指定目录中
  • 使用MOVE方法将上传的txt文件重命名为以脚本文件名(.asp|.aspx|.jsp|.php)结尾的文件,就可以正常执行利用了

使用PUT上传成功,但使用MOVE重命名的时候,居然猝不及防被Forbidden了。这下麻烦了,不改成以.asp结尾的文件根本利用不了。难道就这样束手无策了吗?

峰回路转,任意文件下载漏洞

任意文件下载漏洞是由于过滤不严、权限控制失误、下载文件区隔离不当、下载路径暴露在攻击者面前造成的。一般的漏洞url长这样www.target.com/xxx/download.asp?path=../files/target.doc。而path后面的值我们可以随意操控,只要我们知道我们想要下载的文件的位置,就能够下载任意文件。我们可以把带有脚本原始代码的asp文件下载到本地,然后我们可以做代码审计,通过白盒测试发现漏洞。
随意下载了一个页面list.asp,查看代码,其中,我发现此页面include了一个conn.inc.inc文件是asp下的被包含文件,里面也是asp代码,若被复用次数较多,即可单独作为.inc文件,在使用的地方插入即可。这里的conn.inc是连接数据库的脚本,在每一个用到数据库的页面里都被include了。
由于.inc文件里的asp语句可以被直接执行,我突发奇想,下载了conn.inc,在里面插入了asp一句话shell,保存,并通过上面WebDev漏洞的PUT方法上传到服务器上,覆盖原来的conn.inc。经过测试,PUT方法并被阻止.inc文件的上传。至此,一句话shell插入成功!
虽然我并被上传自己的asp文件,但数据库连接文件已经被插入了脚本。现在,我们只需随便打开一个用到数据库的页面,就可以利用了。
随便打开了一个公司新闻的页面,用菜刀连接,成功!紧接着就是穿大马提权一系列套路。

结语

日站的套路并不固定,可能入侵成功需要好几个漏洞综合使用。平时应该多注意积累,在实战的情况下,不知道那个漏洞就可能克敌制胜。虽然WinServer2003IIS6.0已经是十几年前的东西了,但这并不说明所有的站都会升级。老掉牙的洞也有利用的价值,现在人们普遍安全意识还是脆弱的,依照实际经验来看,凡不是使用成熟cms或框架的,有一半的网站用户的密码都是以明文储存的。这难道还不能说明问题吗?
另外,到现在也使用率极高的WinServer2008不也是快10年前的东西了吗,笑。

*本文为原创,作者T1dDl3R,首发于本博客。转载请注明

这篇文章还没有人发言,快抢第一!

发表评论