struts 跨站点脚本漏洞
来源:互联网 发布:钉钉阿里云code机器人 编辑:程序博客网 时间:2024/06/05 19:46
public class Test02 {
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.opensymphony.webwork.ServletActionContext;import com.opensymphony.xwork.ActionInvocation;import com.opensymphony.xwork.interceptor.Interceptor;public class XssInterceptor implements Interceptor { /** * */ private static final long serialVersionUID = -6732277495928277831L; @Override public void destroy() { // TODO Auto-generated method stub } @Override public void init() { // TODO Auto-generated method stub } @Override public String intercept(ActionInvocation invocation) throws Exception { HttpServletRequest req = ServletActionContext.getRequest(); HttpServletResponse resp = ServletActionContext.getResponse(); String url = req.getRequestURI(); Map parameterMap = req.getParameterMap(); if (!url.contains("/manage/") && !url.contains("/port/") && !url.contains("/wap") && !url.contains("/pay/") && !url.contains("/jhpay/")) { Enumeration<?> e = req.getParameterNames(); while (e.hasMoreElements()) { String name = (String) e.nextElement(); String value = req.getParameter(name); value = htmlEncode(value); // System.out.println(HtmlUtils.htmlEscape(value)); // System.out.println("截取到的value值是:name:"+name+" - value:"+value); if (null != value && // !req.getRequestDispatcher("").toString().contains("/manage/")&& (value.contains("<") || value.contains(">") || value.contains("\"") || value.contains("alert") || value.contains("script") || value.contains("eval") || value.contains("\\u003E") || value.contains("\\u003C") || value.contains("'") || value.contains("redirect") || value.contains("iframe"))) { // 跳转到登陆页面 index.jsp在webRoot根目录下 resp.sendRedirect("http://www.nxzhly.com/index.htm"); return null; } } Iterator entries = parameterMap.entrySet().iterator(); while (entries.hasNext()) { Map.Entry entry = (Map.Entry) entries.next(); String value = ((String[])entry.getValue())[0]; if ((value.contains("redirect:")) || (value.contains("redirectAction:")) || (value.contains("action:")) || (value.contains("<")) || value.contains("<") || value.contains(">") || value.contains("\"") || value.contains("alert") || value.contains("script") || value.contains("eval") || value.contains("\\u003E") || value.contains("\\u003C") || value.contains("'") || value.contains("redirect") || value.contains("iframe")) { HttpServletResponse res = (HttpServletResponse) resp; res.sendRedirect("http://www.nxzhly.com/index.htm"); return null; } } } return invocation.invoke(); } public static String htmlEncode(String str) { if (str == null || str.trim().equals("")) return str; StringBuilder encodeStrBuilder = new StringBuilder(); for (int i = 0, len = str.length(); i < len; i++) { encodeStrBuilder.append(htmlEncode(str.charAt(i))); } return encodeStrBuilder.toString(); } private static String htmlEncode(char c) { switch (c) { case '&': return "&"; case '<': return "<"; case '>': return ">"; case '"': return """; case ' ': return " "; default: return c + ""; } }}
}
阅读全文
0 0
- struts 跨站点脚本漏洞
- struts 跨站点脚本漏洞2
- 测试Web应用程序是否存在跨站点脚本漏洞
- 测试Web应用程序是否存在跨站点脚本漏洞
- 测试Web应用程序是否存在跨站点脚本漏洞
- 测试Web应用程序是否存在跨站点脚本漏洞
- IBM Security Appscan漏洞--存储的跨站点脚本编制
- 跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞
- 跨站点请求伪造 跨站点脚本编制 通过框架钓鱼漏洞
- Java Servlet 包含有交叉站点的脚本漏洞
- 跨站点脚本攻击
- 跨站点脚本编制
- 跨站点脚本
- 跨站点脚本编制
- 跨站点脚本攻击
- 跨站点脚本解决方案
- AppScan 测出 跨站点请求伪造 漏洞
- struts漏洞
- GDB、DDD-linux下程序调试
- SDNU:1040 导弹拦截 第二问关于“最大上升序列”做法的思考
- 仿QQ分组折叠菜单ExpandableListView
- 机器学习基石-10-2-Logistic Regression Error
- Node+vue实现视频中的人脸识别
- struts 跨站点脚本漏洞
- dlib实现人脸识别-python
- 35 个 Java 代码性能优化总结
- 如何在Ubuntu下为SI安装Fixedsys字体
- grok在python 中的使用
- Altium Designer 9 / 10 / 15 系列 不能正常启动的解决办法。
- SQL 事务隔离级别
- Unity Shader 学习笔记(11) 渲染队列、透明效果
- C++ Primer Plus第五版 第10章 编程练习答案