今天以前公司的项目问了一个关于会话的问题,觉得比较有意思,记录一下。
关于servlet的会话机制原理,这里就不啰嗦了,网络上一大把。主要说明下问的这个问题:
用浏览器访问servlet服务,servlet容器一般会返回一个标示当前会话的cookie,一般servlet容器默认的都是JSESSIONID,这样就会有个问题,每次我用一个浏览器登录后,我使用其他浏览器或者http访问工具如httpclient伪造一个刚浏览器登录的会话的cookie,那是不是就可以访问需要身份认证后的资源?
写个测试页面jsp:
<%
Cookie [] cookies = request.getCookies();
//cookie可能为null
out.append("cookie is null :");
out.append(cookies==null ? "true<br>" : "false<br>");
if(cookies != null)
for(int i=0; i<cookies.length; i++){
out.append(cookies[i].getName()+":"+cookies[i].getValue());
out.append("<br>");
}
out.print(request.getSession().getId());
%>
使用浏览器访问这个jsp,查看JSESSIONID的cookie信息,然后用httpclient伪造一个cookie进行访问:
HttpClient client = new HttpClient();
HttpMethod get = new GetMethod("http://localhost:8080/test/test.jsp");
Cookie cookie = new Cookie();
cookie.setName("JSESSIONID");
//设置域名
cookie.setDomain("localhost");
//设置path
cookie.setPath("/test/");
cookie.setValue("0000MDDSdWQ0_C2HDRFpurjIt91");
HttpState state = client.getState();
state.addCookie(cookie);
client.setState(state);
client.executeMethod(get);
System.out.println(get.getResponseBodyAsString());
测试发现,浏览器访问返回的和httpclient返回的一样,说明cookie机制的会话是可以伪造的。
可见,伪造会话是可行的,如果默认使用容器的会话,可能会泄露安全数据,当然这是需要你的网络信息被侦听,获取到了你的会话cookie或者其他安全相关的cookie。使用高安全的https,或者做请求验证,在默认的会话机制上增加相关安全机制都可有安全保障
java程序依赖的lib放在附件了,要测试的话可以下载
分享到:
相关推荐
一个利用蜜罐和伪造会话的主动入侵响应架构,李锐光,彭新光,对要求在运行期间确保安全的网络系统,一检测到入侵就马上采取措施,这一点很重要。这些措施包括实时的分析侵入情况,得到入侵者
易语言伪造网页访问ip地址 结合HTTP扩展请求头 X-Forwarded-For 可以对客户端IP进行伪造 X-Forwarded-For 是一个 HTTP 扩展头部,用来表示HTTP请求端真实 IP,HTTP/1.1 协议并没有对它的定义,但现如今X-Forwarded-...
伪造邮件发送装置 伪造邮件发送装置 伪造邮件发送装置
本软件是由邮箱资料站旗下邮箱反垃圾邮件过滤产品技术部独家研制开发,...可伪造任意的邮箱发送邮件,对市面上的所有的邮箱都有显著的效果,当然也会有个别的邮箱的拦截系统比较完善,不可避免的可能会进入到垃圾箱里。
【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的重量...
vc 伪造cookie 写cookie ,通过代码来改写你想要的cookie,可以伪造本地保存cookie 记录。
用协议头欺骗服务器,来造成伪造IP地址的效果!
如何伪造IP 发送HTTP请求request.zip
1. 【伪造硬币问题】给你一个装有n个硬币的袋子。n个硬币中有一个是伪造的。你的任务是找出这个伪造的硬币。为了帮助你完成这一任务,将提供一台可用来比较两组硬币重量的仪器,利用这台仪器,可以知道两组硬币的...
图像伪造检测使用深度学习 使用卷积神经网络进行图像处理以检测图像中的篡改 项目描述 该项目结合了不同的深度学习技术和图像处理技术,以检测不同图像格式(有损或无损格式)的图像篡改“复制移动和拼接”伪造。...
伪造公司印章罪辩护词精选.doc
PHP 伪造IP 发送HTTP请求.zip
伪造HTTP头VB 编写 源码实例 自己编写 亲测
人脸图片伪造和鉴伪技术研究.docx
Tomcat怎样防止跨站请求伪造(CSRF) 1
限性。针对本领域的综述工作还比较缺乏,只有针对早期图像篡改工作的一些总结[4][5],亟需对现有工作进 行系统的整理和科学... 本文首先在第1 节中介绍深度伪造的各种相关技术,在第2 节中列举了当下深度伪造研究的数据
DELPHI7伪造ip头 仅供学习之用 很好的一个例子
Urgent Pointers是紧急指针,16位,只有URG标志位被设置时该字段才有意义,表示紧急数据相对序Python伪造TCP数据包 - 马克飞象 - 专为
利用VC编程伪造显卡故障场景