背景
几天前,某公众号发布了一篇文章,介绍了面试北京某厂红队岗位的三个靶机题目。这让我想起两年前我面试该厂同样也是这三个靶机,笔者通过5个小时的时间,成功获取了所有的Shell权限。接下来就对这三个靶机的攻击思路逐一讲解。
靶机介绍
三个靶机分别为:tomexam考试系统、银行系统、jspxcms,都是java开发的系统,均存在大量SQL注入、越权未授权、XSS、弱口令等问题,此处只关注能够GetShell的问题。
jspcms
该系统通过弱口令登陆后台,然后利用公开nday GetShell,这里不做过多阐述
在文件管理处可通过上传zip文件配合解压GetShell
tomexam考试系统
该系统为jsp开发的一套考试管理程序,网上没有公开漏洞,笔者通过弱口令进入后台后,对其文件上传功能点进行测试,根据上传的响应信息发现仅允许图片文件
后续笔者通过百度其logo等指纹信息找到了该程序2.7版本源码,对其进行代码审计。
下载链接:http://down.chinaz.com/soft/28082.htm
下载到源码后,首先定位upload文件,在其源码文件incupload下存在postfile.jsp文件
根据代码得知,通过自定义的JspFileUpload对象来处理上传的逻辑,然后将JSP内置对象request和上传文件路径upath传递给JspFileUpload对象,并调用对象的process方法来处理上传逻辑。
在获取了上传后的文件信息后,进入if判断,如果上传的文件后缀是jpg、png则输出上传文件路径并提示上传成功
否则提示"只允许上传图片文件",诱导攻击者文件并未上传,其实后端已经将文件上传。
已知上传文件名为时间戳,只需要通过重发、并发等方法,在一秒内 上传一个jpg和jsp的文件 看效果:
通过burp爆破 设置”jpg”为变量,”jsp”为字典
效果(拿到shell后截的图,方便理解查看):
可以看到 3091.jpg 与 3184.jsp 这是百分比可以通过fuzz来确定我们上传的jsp文件的。
fuzz:
将时间戳后三位设置为爆破的变量
成功将通过爆破上传的jsp文件fuzz出来
银行系统
这套系统的getshell方式比较简单,通过任意文件下载漏洞,下载tomcat的配置文件,然后登陆tomcat部署war包即可。
原文始发于微信公众号(亿人安全):某厂的红队实战靶机面试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论