SQL注入
漏洞复现:
登陆后台,点击页面删除按钮,抓包:
rid参数存在sql注入,放入sqlmap检测成功:
代码分析:
Ctrl+Shift+F检索路由:
定位具体代码,为删除功能:
发现deleteByIds调用了传参rid,跟进:
发现进入Dao层,此处依旧调用的deleteByIds,于是找ICommonDao接口实现类:
定位到该类,发现以ids参数接受原先用户传入的rid参数,并在new一个sql对象后,直接将ids参数进行拼接,并通过原生jdbc执行返回结果。
【—-帮助网安学习,以下所有学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】
① 网安学习成长路径思维导图
② 60+网安经典常用工具包
③ 100+SRC漏洞分析报告
④ 150+网安攻防实战技术电子书
⑤ 最权威CISSP 认证考试指南+题库
⑥ 超1800页CTF实战技巧手册
⑦ 最新网安大厂面试题合集(含答案)
⑧ APP客户端安全检测指南(安卓+IOS)
模板注入
内容管理-文件管理-themes-flatweb-about.html,选择编辑,插入payload:
<#assignvalue="freemarker.template.utility.Execute"?new()>${value(“calc.exe”)}
访问首页,点击关与我们:
执行命令,弹出计算机:
代码分析:
配置文件存在freemark
文件上传
漏洞复现:
这个CMS感觉上传文件路径不是很好找,所以上传时先找个合适的目录再点击上传文件。
文件管理处点击admin进入目录:
再点击文件上传:
通过上传jsp马,不过需要以jspx或者jspf后缀绕过上传。
代码分析:
上传时抓包,根据路由全局搜索:
定位到具体代码段:
用filePath参数接受path参数与file参数拼接,再从filePth参数中取出文件名赋值给fname参数。
跟进getSuffix:
发现只是以简单点来获取后缀。
检测是否为jsp文件后,如果不为则进入为空判断,并以FileOutputStream与write直接上传写入。
任意文件删除
漏洞复现:
上传jsp马后,点击右方删除文件,抓包。
将下方数据包改为admin上级目录,删除我先前上传但没找到路径的test.jspx文件,删除成功:
代码分析:
根据数据包在IDEA全局搜索,定位到delete代码段:
该方法接收三个参数:path、name 和 data,这些参数通过 @RequestParam注解从请求中提取,并进行简单拼接,赋值给file对象,此时file对象代表实际的文件名称。
跟进delete方法:
发现对传入的path参数进行了检查,继续跟进:
发现仅仅采用java自带的类java.security.AccessController下的checkPermission(Permissionperm)静态方法校验权限。
如果权限满足便直接通过fs.delete()方法删除,造成任意文件删除漏洞。
更多网安技能的在线实操练习,请点击这里>>
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容