其他
本文约1800字,阅读约需5分钟。随着攻防演练愈演愈烈,弱小的我也不得不加入攻防大军的队伍里,而本篇文章就记录了某次攻防演练中的getshell历程。在这次攻防演练中,初步利用工具批量打点无果,作为团队里卑微的撕口子工具人,只能选择一个站一个站硬啃。1开始又是熟悉的“开局一个后台”系列,初期重点选择没有验证码机制的后台去进行爆破:这里目录与账号密码同时进行爆破,然而不出意外,没有任何结果:既然爆破无果,只能再试试其他的思路。一般URI中带#的js多为webpack模块打包。于是决定再次从前台webpack打包的js接口入手:利用浏览器功能美化js文件,通过搜索path关键字,查找后台路由:通过构造路径进入后台,发现大部分接口存在二次验证。直接跳转至登录页,对path路径进行多次尝试,找到个人头像上传点。测试直接上传jpg成功后,抓包尝试修改后缀上传webshell。但发现服务端直接对上传的文件进行了重命名,此条线索终止。随后,找到导入excel处尝试XXE:下载模板,解压后修改其中xml文件的内容,加入payload:上传后发现所添加的ceye平台出现了请求:其中有http请求,说明可以下载文件:修改payload为访问外部实体的语句:在vps上预先放置外部实体:开启http服务等待下载:之后上传文件,会触发服务器请求vps下载dtd外部实体的命令,进而读取内容。另外开启ftp服务以实现文件内容外带,尝试读取/etc/passwd中的内容。这里直接在网上寻找的脚本:“https://github.com/ONsec-Lab/scripts/blob/master/xxe-ftp-server.rb”尝试读取ssh