AppScan已解密的登陆请求 用RSA加密之后 问题没有解决

wangdengzhe_1 2016-08-17 07:11:44
下面是登陆页面 和 登陆action (用的是9.0.3.1版本扫描)
function doSubmit(){
if(userLogin()) {
var password = $('#password').val();
var randCode = $('#randCode').val();
var usercode = $('#usercode').val();
var modulus = '${modulus}';
var exponent = '${exponent}';
var key = RSAUtils.getKeyPair(exponent, '', modulus);
var tPassword = RSAUtils.encryptedString(key, password);
var uname = RSAUtils.encryptedString(key, usercode);
$('#password').val(tPassword);
$('#kpassword').val(tPassword);
$('#username').val(uname);

document.forms[0].submit();
}
}
function closeMarquee(x){
$(x).parent().hide();
}
</script>

</head>
<body onload="loadRandCode()">
<marquee direction="left" onMouseOut="this.start()" onMouseOver="this.stop()" style="color:red;font-size:18px;">
<label style="cursor: pointer;" onclick="closeMarquee(this)" title="点击关闭">x</label>  
注意:本系统支持谷歌浏览器以及IE9.0以上版本的浏览器,请您下载对应的浏览器版本操作系统。    
<a href="http://dl-sh-ctc-2.pchome.net/02/kx/IE10-Windows6.1-x64-zh-cn.rar" title="点击下载">
点击下载IE-10.0
</a>
    
<a href="http://172.172.88.88/sw-search-sp/soft/9d/14744/ChromeStandalone_46.0.2490.86_Setup.1447296650.exe" title="点击下载">
点击下载谷歌
</a>
</marquee>


<form id="login" name="login" action='${path }/Login_login.do' method="post" style="width: 100%; height: 100%;">
<input type="hidden" name="sessionid" id="sessionid" value="${sessionid }" />
<input type=hidden id="ssid" name="ssid" value="<%=request.getSession().getId()%>">
<input type=hidden id="kpassword" name="kpassword">
<input type=hidden id="username" name="username">
<%--<input type="hidden" name="<%=Token.TOKEN_STRING_NAME %>" value="<%=Token.getTokenString(session) %>"> --%>
<div class="gFrame">
<div class="loginDiv">
<table style="line-height: 40PX; margin: auto;">
<tr>
<td colspan="2">
<font color="#ff0000"><span id="error"> ${error}</span> </font>
<br />
</td>
</tr>
<tr>
<td nowrap="nowrap">
<label class="loginLable">用户名:</label>
</td>
<td>
<s:textfield id="usercode" cssClass="ipt" tabindex="1"></s:textfield>
</td>
</tr>
<tr>
<td nowrap="nowrap">
<label class="loginLable">密   码:</label>
</td>
<td>
<%--
<s:password name="password" id="password" cssClass="ipt" tabindex="2" autocomplete="off"></s:password>
--%>
<input type="password" id="password" class="ipt" tabindex="2" autocomplete="off" />
</td>
</tr>
<tr>
<td nowrap="nowrap">
<label class="loginLable">验证码:</label>
</td>
<td align="left">
<input type="text" name="randCode" id="randCode" class="ipt" tabindex="3" maxlength="4" value="" />
<img id="randCodeImg" style="vertical-align: middle;" onclick="changeValidateCode(this)" />
</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;">
<input type="button" onclick="doSubmit();" class="btn" name="smt" id="ips" value="" />
<input type="button" onclick="doReset();" class="btn" name="smt" id="ipr" value="" />
</td>
</tr>
</table>
</div>
</div>
</form>




下面是登陆方法
/**
* 用户登录
*
* @return
*/
public String login() {
// if(Token.isTokenStringValid(request.getParameter(Token.TOKEN_STRING_NAME), request.getSession())){
usercode = username;
password = kpassword;
try {
//跨站点请求伪造
if (request.getHeader("Referer") != null && request.getHeader("Referer").indexOf(request.getHeader("Host")) == -1) {
return ERROR;
}
if (session.get("loginUser") != null) {
TSysUser tSysUser = (TSysUser) session.get("loginUser");
initLoginUserInfo(tSysUser);
/*if (request.getHeader("Referer") == null) {
return ERROR;
}*/
if (request.getHeader("Referer") != null && request.getHeader("Referer").indexOf(request.getHeader("Host")) == -1) {
return ERROR;
}

//RSA加密,获得公钥
RSAPublicKey publicKey = RSAUtils.getDefaultPublicKey();
request.setAttribute("modulus",new String(Hex.encodeHex(publicKey.getModulus().toByteArray())));
request.setAttribute("exponent", new String(Hex.encodeHex(publicKey.getPublicExponent().toByteArray())));

request.setAttribute("menuflag", "busiProcess");
//request.setAttribute("mailCount", getMailCount(tSysUser));
return SUCCESS;
/*
* request.setAttribute("mailCount", getMailCount((TSysUser) session.get("loginUser")));
* return SUCCESS;
*/
}

// 如果用户名或者密码为空返回到登录页面
if (!TypeFormat.isNotEmptyorNull(this.usercode) || !TypeFormat.isNotEmptyorNull(this.password)
//|| !TypeFormat.isNotEmptyorNull(this.randCode)
){
request.setAttribute("error", "请输入用户名、密码和验证码!");
return INPUT;
}
if(!randCode.equalsIgnoreCase((String)session.get("randCode"))){
request.setAttribute("error", "验证码输入错误!");
return INPUT;
}

// 封装用户登录信息
TSysUser tSysUser = new TSysUser();

tSysUser.setUsercode(RSAUtils.decryptStringByJs(usercode));
//tSysUser.setPassword(password);

tSysUser.setPassword(RSAUtils.decryptStringByJs(kpassword));

//tSysUser.setPassword(password);
tSysUser.setLoginip(request.getRemoteHost());
// 调用登录业务逻辑 防止多次登录 5次以上锁住十分钟
tSysUser = this.useTSysUserService.login(tSysUser);
// 用户登录验证成功
if (tSysUser != null) {
logger.info("用户" + tSysUser.getUsercode() + "于" + TypeFormat.getDateFormat(new Date()) + "在主机" + request.getRemoteHost() + "成功登陆");
// 把用户的主要信息存入Session会话
session.put("loginUser", tSysUser);
// 初始化用户登录信息
initLoginUserInfo(tSysUser);
// 查询用户邮件信息
//request.setAttribute("mailCount", getMailCount(tSysUser));

//RSA加密,获得公钥
RSAPublicKey publicKey = RSAUtils.getDefaultPublicKey();
request.setAttribute("modulus",new String(Hex.encodeHex(publicKey.getModulus().toByteArray())));
request.setAttribute("exponent", new String(Hex.encodeHex(publicKey.getPublicExponent().toByteArray())));

request.setAttribute("menuflag", "busiProcess");
return SUCCESS;
}
} catch (LoginException le) {
switch (le.getErrorCode()) {
case LoginException.UN_PWD_ERROR: {
logger.info("用户名或者密码错误");
request.setAttribute("error", "用户名或者密码错误!");
break;
}
case LoginException.DISABALE: {
logger.info("用户已被禁用");
request.setAttribute("error", "用户已被禁用,请与管理员联系!");
break;
}
}
} catch (Exception e) {
e.printStackTrace();
return ERROR;

}
return INPUT;
// }else{
// return ERROR;
// }
}
...全文
500 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本研究聚焦于大功率690V虚拟同步发电机(VSG)的惯量与阻尼并网控制策略,旨在提升其在电力系统中的动态响应能力及对电网稳定的支撑作用。通过Matlab/Simulink平台构建完整的VSG并网控制系统仿真模型,深入分析虚拟惯量和虚拟阻尼的关键控制参数对系统频率、电压稳定性的影响机制。研究涵盖VSG的基本工作原理、数学建模、控制结构设计(包括有功-频率与无功-电压控制环)、并网特性分析以及在弱电网条件下的适应性验证。通过设置负载突变、电网波动等典型工况进行仿真测试,系统性地评估了所提出控制策略的有效性与鲁棒性,为高比例新能源接入背景下的电网稳定运行提供了理论依据和技术支持。; 适合人群:具备电力电子、自动控制、新能源并网等相关专业知识背景,从事电力系统仿真、微网控制或电力电子变换器研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解虚拟同步发电机模拟同步机惯性和阻尼特性的核心控制机理;②掌握在Simulink中搭建和调试复杂电力电子并网系统模型的方法;③为解决新能源并网带来的系统惯量下降、频率稳定性变差等问题,开发和验证新型构网型控制策略提供参考; 阅读建议:建议读者结合Matlab/Simulink环境动手复现文中的仿真模型,重点探究惯量、阻尼系数等关键参数对系统暂态响应(如超调量、调节时间)的影响规律,并可通过改变短路比(SCR)模拟不同强度的电网,开展对比实验,从而深刻理解VSG在强/弱电网下的动态行为差异。
内容概要:本文以【硕士论文复现】为主题,聚焦于可再生能源发电与电动汽车的协同调度策略研究,并提供了完整的Matlab代码实现。文中系统探讨了在高渗透率可再生能源与大规模电动汽车接入背景下,配电网承载能力的评估与优化问题,重点构建了多维评价指标体系,并采用熵权法与模糊综合评价相结合的双层模型进行量化分析。研究涵盖了电动汽车充放电行为、分布式光伏出力、静止无功补偿装置(SVC)等多源协同建模,通过算例仿真验证不同渗透率下系统运行特性的变化规律及指标灵敏度,为电网规划与运行提供科学决策依据和技术支持。; 适合人群:具备电力系统、自动化或相关专业背景,熟悉Matlab/Simulink仿真工具,从事新能源、智能电网、电动汽车等领域研究的研发人员与高校研究生。; 使用场景及目标:①复现硕士论文中的协同调度与承载能力评估模型;②学习如何构建多指标综合评价体系并应用熵权法与模糊评判方法;③掌握电动汽车与可再生能源协同对电网影响的仿真分析技术; 阅读建议:建议读者结合提供的完整资源包,按照文档目录顺序逐步学习,重点关注模型构建逻辑、仿真设置与结果分析部分,并动手运行代码以加深理解,同时可参考文中列出的其他相关研究扩展知识体系。

61,119

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧