Eclipse中JSP文件脚本元素遭篡改的原因排查请求
原代码示例:
<%System.out.println("Java command on JSP file running");%> <%/* List<OrganizerVO> allList = (List<OrganizerVO>) session.getAttribute("saAttribute"); */%>
篡改特征:仅JSP脚本元素的首尾字符被截断替换为空格及字母't'或'p',核心代码内容保持完整,HTML标签无异常。
检查服务器文件系统权限
先看被篡改JSP所在目录的权限是不是给得太松——比如允许匿名用户或者非运维/开发的无关账号修改文件,这会给攻击者留直接改文件的机会。另外查查服务器上有没有近期新增的、权限过高的陌生账号,这类账号很可能是攻击者留的后门。排查应用部署流程的漏洞
确认部署过程有没有问题:比如用了不安全的FTP/SFTP传输部署包,中途被劫持篡改;或者CI/CD流水线被入侵,导致部署到服务器的JSP本身就是被改好的。另外看看有没有自动更新、热部署的脚本被篡改,会不会每次启动或更新时自动替换JSP内容。扫描Web应用的漏洞
针对当前Web应用做全面漏洞扫描,重点盯文件上传漏洞、代码执行漏洞(比如Struts2、Spring MVC这类框架的历史高危漏洞),攻击者常通过这些漏洞直接修改服务器上的JSP文件。也别漏了JSP注入漏洞,虽然这次是文件本身被改,但也要确认有没有攻击者通过注入篡改了文件内容。分析服务器进程与日志
翻服务器的系统日志(Linux看/var/log/auth.log、/var/log/syslog,Windows看事件查看器),找近期的异常登录、陌生进程启动记录。同时查Web服务器的访问日志,有没有带特殊参数、访问敏感JSP的可疑请求。还可以用进程监控工具(Linux用ps、top,Windows用任务管理器)看看有没有未知的可疑进程在跑,尤其是能访问文件系统的进程。排查恶意软件与定时任务
给服务器做全盘查杀,检查有没有木马、后门程序——有些恶意软件会潜伏在服务器里,定期篡改指定文件。另外查系统的定时任务(Linux看crontab,Windows看任务计划),有没有未知的任务在执行修改JSP文件的操作。回溯版本控制系统记录
如果这些JSP文件在Git、SVN等版本库里,回溯提交记录,看看是不是内部人员误操作,或者有非授权人员的异常提交。同时对比仓库里的原始文件和服务器上的篡改文件,确认篡改的固定模式,方便后续针对性防御。
内容的提问来源于stack exchange,提问作者HYHrondo

