当前位置: 首页 > news >正文

建立个人网站代码园林绿化东莞网站建设

建立个人网站代码,园林绿化东莞网站建设,广州软件开发培训机构,邢台有什么网站查看这个cms系统后台管理员 添加用户的页面 点击添加管理员 这个模块只有管理员拥有#xff0c;普通用户没有这个模块。 打开源码分析是否存在越权漏洞。 ------------------------------------------------------------------------------------------------------------ …查看这个cms系统后台管理员 添加用户的页面 点击添加管理员 这个模块只有管理员拥有普通用户没有这个模块。 打开源码分析是否存在越权漏洞。 ------------------------------------------------------------------------------------------------------------ 表单代码 form nameadminForm idadminForminput typehidden nameitem value${item} /table border0 cellpadding0 cellspacing0 classtable_c1trtd classlabel_c width15%labelfmt:message keyusername bundle${messagesBundle}//label/tdtd width85%c:if test${itemnull}input typetext value${admin.username} nameusername idusername classwid_80//c:ifc:if test${item!null}input typetext readonly value${admin.username} nameusername idusername classwid_80//c:if/td /tr trtd classlabel_clabel姓名/label/tdtdinput typetext value${admin.adminName} namename idname classwid_80//td /tr trtd classlabel_clabelfmt:message keysex bundle${messagesBundle}//label/tdtdselect namesex idsexoption value--请选择--/optionoption value男男/optionoption value女女/option/select/td /trtrtd classlabel_clabelfmt:message keyrole bundle${messagesBundle}//label/tdtdselect namerole idroleoption value--请选择--/optionc:forEach items${roleList} varrole varStatusstatusoption value${role.id }${role.name}/option/c:forEach/select/td /trtrtd classlabel_clabelfmt:message keyqq bundle${messagesBundle}//label/tdtdinput typetext nameqq idqq value${admin.qq} classwid_80//td /tr/table/form!--表单悬浮层提交 --div classright_bottom_btnlistulliinput typesubmit valuefmt:message keysubmit bundle${messagesBundle}/ classbutton-2 vcenter onclickadd()//li/ul /div 查看触发post请求的js代码 scriptfunction add(){var usernamerequree_name(username) requree_length(username,6,20);var namerequree_name(name) requree_length(name,2,20);var roledocument.getElementById(role).value; //requree_name函数可能用于验证username字段是否符合指定规则而requree_length函数可能用于验证username字段的长度是否在指定范围内if(!username){layer.alert(用户名为必填项限制6~20位);}else if(!name){layer.alert(请输入姓名限制2~20位);}else if(role||rolenull){layer.alert(请设置所属角色);}else{var params $(#adminForm).serialize();$.ajax({url:%basePath%admin/addAdmin, //后台处理程序type:post, //数据发送方式dataType:json,data:params, //要传递的数据success:function(data){alert(data.tip);parent.window.location.reload();}}); }}document.getElementById(role).value${admin.role};document.getElementById(sex).value${admin.adminSex};var height $(window).height();$(.middle_cnt_c2).height(height-80);$(window).resize(function () { //当浏览器大小变化时var height $(window).height();$(.middle_cnt_c2).height(height-80);}); /script 根据提交的接口定位到%basePath%admin/addAdmin 后端源码 WebServlet(displayName 添加管理员,name AddAdmin,urlPatterns {/admin/addAdmin} ) /*这是一个Java Servlet的注解Annotation用于将Java类声明为一个Web应用程序的Servlet。该注解中包含了多个参数displayNameServlet的显示名称可以在Web应用程序管理界面中使用nameServlet的名称必须是唯一标识符在Web应用程序中引用时会用到urlPatternsServlet映射的URL模式可以是一个字符串数组每个字符串对应一个URL模式。 在这个例子中该Servlet被映射到了URL模式/admin/addAdmin也就是说当用户请求这个URL时容器会将该请求交给AddAdmin Servlet来处理*/ public class AddAdmin extends HttpServlet {public AddAdmin() {}public void destroy() {super.destroy();}public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType(text/html;charsetUTF-8);PrintWriter out response.getWriter();AdminService as new AdminService(); //AdminService 是一个自定义的类controller它可能是用于处理与管理员相关的业务逻辑或提供相应的服务。通过创建 AdminService 对象我们可以使用该对象中的方法来执行特定的操作例如管理管理员账户、处理管理员权限等。HttpSession session request.getSession(true);Object user session.getAttribute(user); /*这段代码用于获取当前请求所关联的HTTP Session并从中获取属性名为user的属性值。首先request.getSession(true)方法用于获取当前请求所对应的Session对象。如果Session对象不存在则会创建一个新的Session对象并返回。如果传入的参数为false则表示只会查找已经存在的Session对象如果不存在则返回null。然后session.getAttribute(user)方法用于获取当前Session中名称为user的属性值。如果该属性不存在则返回null。注意Session是一种保存在服务器端的数据对象在Session中保存的数据在整个会话期间都可以被访问和修改。*/String json ;String id request.getParameter(item);//String admin_username request.getParameter(username);String admin_passbak 123456;String admin_pass Md5Util.getMD5Str(admin_passbak);String admin_name request.getParameter(name);String admin_sex request.getParameter(sex);String admin_role request.getParameter(role);String qq request.getParameter(qq);Locale loc new Locale(zh, CN);ResourceBundle rb ResourceBundle.getBundle(messages, loc);String adminTip rb.getString(adminTip);String flag ;if (user null) {RequestDispatcher rd request.getRequestDispatcher(/WEB-INF/login.jsp);request.setAttribute(tip, adminTip);rd.forward(request, response);} else {boolean f false;if (id ! null !id.equals() !id.equals(undefined)) {if (!admin_username.trim().equals()) {flag as.updateAdmin(id, admin_role, admin_name, admin_sex, qq); //控制器controller执行了updateAdmin 其中id 可控 可能为唯一键值 造成了越权漏洞if (flag.equals(ok)) {json {\tip\:\ rb.getString(modify) rb.getString(success) \};} else {json {\tip\:\ rb.getString(modify) rb.getString(failure) \};}} else {json {\tip\:\ rb.getString(name) rb.getString(not) rb.getString(empty) \};}} else if (!admin_username.trim().equals()) {try {f as.geyUser(admin_username);} catch (SQLException var22) {var22.printStackTrace();}if (f) {flag as.saveAdmin(admin_username, admin_pass, admin_passbak, admin_role, admin_name, admin_sex, qq);if (flag.equals(ok)) {json {\tip\:\ rb.getString(add) rb.getString(success) rb.getString(default) rb.getString(password) :123456\};} else {json {\tip\:\ rb.getString(add) rb.getString(failure) \};}} else {json {\tip\:\ rb.getString(username) rb.getString(already) rb.getString(there) \};}} else {json {\tip\:\ rb.getString(name) rb.getString(not) rb.getString(empty) \};}out.print(json);}}public void init() throws ServletException {} } urlPatternsServlet映射的URL模式URL模式/admin/addAdmin映射到了此Servlet类。 AdminService 是一个自定义的类controller它可能是用于处理与管理员相关的业务逻辑或提供相应的服务。通过创建 AdminService 对象我们可以使用该对象中的方法来执行特定的操作例如管理管理员账户、处理管理员权限等。 控制器controller执行了updateAdmin 其中id 可控 可能为唯一键值 造成了越权漏洞。 执行updateAdmin 没有对用户的身份权限信息(管理员)做任何验证处理。只要当前session存在user即使是普通账户也可以执行updateAdmin而传入的参数都为我们用户可控由此引发越权漏洞。 利用方式         伪造这个接口的http请求头将cookie信息设置成我们普通用户的cookie输入我们想要的请求体(增加新的管理员信息)发送。 总结         无论是纵向越权还是横向越权我们都需要对用户信息做再次的验证对于一些敏感信息像id这种唯一键值尽量不要存放在前端............
http://www.dnsts.com.cn/news/134039.html

相关文章:

  • 一站式外贸综合服务平台win2012 iis 部署网站
  • 爱心捐赠网站怎么做学生个人网页制作主题
  • 橱柜衣柜做网站网站建设的常见问题
  • seo外贸网站建设设计师服务平台鱼巴士有哪些网站
  • 网站建设项目售后服务承诺百度seo排名优化公司推荐
  • 婚恋网站开发平台代理招商做网站高校视频
  • 卖产品怎么做网站电影资源采集网站咋做
  • 电子商务网站开发设计案例—易趣网电子商务网站台州关键词优化价格
  • 微信微网站 留言板长沙网站建设软件
  • 12306网站 制作赛盈分销平台
  • 什么网站做简历最好找别人做网站都需要注意啥
  • 进入百度搜索网站电商哪个平台销量最好
  • 南京做网站公司哪家好成都装修全包价格表
  • 河北建设厅注册中心网站首页wordpress当前没有可用的导入工具
  • 大足专业建站公司互联网商城建设
  • 域名怎么卖出去烟台seo做的好的网站
  • 宁波网站建设企业怎么删除网站的死链
  • 安徽省住房建设工程信息网站当面付 wordpress
  • 什么网站做热能表好sem和seo的工作
  • 档案信息网站建设的意义渠道推广代理
  • 有什么比较好的画册设计网站阜宁网站制作具体报价
  • 做家教去什么网站做企业网站需要哪些材料
  • 麻花星空影视传媒制作公司网站上海网站制作科技公司
  • 珠海网站建设推广方案莱州网站建设案例
  • 一家只做特卖的网站室内设计自学网站
  • 注册服务器网站哪个好网站建设与维护书籍推荐
  • 加强网站建设和信息公开网站开发侵权
  • 重庆建网站优化织梦网站图标更换
  • 宁波市环境建设保护局网站常德论坛市民留言板
  • 做神马网站优化排win2008安装wordpress