




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生成绩系统设计及攻击方法探讨DiscussionontheDesignofStudentScoreSystemandAttackMethod摘要学生成绩系统是各级学校常用的OA办公系统,具有公布学生成绩、管理学生等功能,目前学生成绩系统大多数以WEB站点的形式存在,容易受到SQL注入、XSS、越权等攻击。本文以学生成绩系统作为OA办公系统的代表,通过对学生成绩系统的设计与实现,了解开发系统所使用的技术与系统构成,研究此类办公系统中易受攻击的威胁点。使用常见的WEB攻击方法,尝试在实现的学生成绩系统上复现攻击,寻找可行的攻击方案,并修复系统中存在的漏洞,达到提升学生成绩系统安全性能的效果。关键词:WEB攻击;办公系统;Java开发
AbstractThestudentperformancesystemisanOAofficesystemcommonlyusedatalllevelsofschools.Ithasthefunctionsofpublishingstudentresultsandmanagingstudents.MostofthecurrentstudentperformancesystemsexistintheformofWEBsitesandarevulnerabletoattackssuchasSQLinjection,XSS,andunauthorizedaccess.ThisarticletakesthestudentperformancesystemastherepresentativeoftheOAofficesystem,throughthedesignandimplementationofthestudentperformancesystem,understandthetechnologyandsystemcompositionusedinthedevelopmentsystem,andstudythevulnerablethreatpointsinsuchofficesystems.UsingcommonWEBattackmethods,trytoreproducetheattackontherealizedstudentscoresystem,findafeasibleattackplan,andrepairtheloopholesinthesystemtoachievetheeffectofimprovingthesafetyperformanceofthestudentscoresystem.Keywords:WEBattack;Officesystem;Javadevelopment
目录第一章绪论 绪论课题背景与意义在互联网飞速发展和对办公效率要求提升的前提之下,越来越多的行业采用了互联网办公的方式,互联网办公大都选择使用了OA办公系统。OA办公系统包含了工作流程、信息、管理等涉及一个组织各方各面的信息,其重要性不言而喻,而正是因为OA办公系统的重要性,许多不法份子将目光盯紧OA办公系统,企图通过黑客技术攻击系统从而获得非法利益,使得网站经营者合法利益受到损害。在这样的背景下,本文选取教育行业普遍使用的OA办公系统[1],也即是学生成绩系统为例,通过学生成绩系统的搭建[2],对系统的安全性进行考察,探讨针对学生成绩系统这类OA办公系统的可用攻击手段,发现可用的攻击手段并进行反馈,达到提升学生成绩登记系统的安全性能的目的。网络安全与网站现状网络安全的发展与现状以及分类网络,改变时代的发明。自20世纪50年代起发展至今,已深入人们的衣食住行,覆盖了国家安全,经济发展等方方面面。但网络是一把双刃剑,我们在网络上享受这便利的同时也给我们带来了许多看不见的威胁[3],我们的各种信息[4]暴露在网络环境中。一些别有用心的人利用网络技术能轻而易举地获取到我们的隐私信息从而侵犯我们的合法权益,我们时刻都在面对着威胁。因此,我们需要网络安全技术保护我们自己,使我们享受网络带来的便利的同时避免不法份子的侵害!在网络安全愈加受到重视的前提下,有越来越多的人加入了这个行业,随着发现的网络威胁的增多,从事网络安全行业的前辈们对已经发现的网络安全漏洞进行区分,以漏洞对网络安全类型进行划分,发展至今网络安全已经被大致分为了WEB安全、主机安全、数据库安全、网络安全等几类。本文研究的是其中的WEB安全类。WEB安全是基于WEB环境的互联网应用发展所带来的一个安全方向,随着社交网络等一系列互联网产品的出现,接踵而来的是WEB安全威胁的凸显,大量的不法份子利用自己的技术非法获取着网站的数据,使得网站经营者和网站访问者收到侵害。OA办公系统的发展与现状在没有网站的时代,人们想要获取公共信息只能通过人与人之间口口相传或者通过布告栏,但是在有了网站之后,这些都改变了,人们只需要在家里通过网站就可以发布自己想要共享给别人的信息,也可以通过网站获取别人公开出来的信息或享受由别人带来的服务。这个在20世纪以前无法想象的神奇事物,于1991年的8月6号诞生,于1993年4月30号对所有人公开使用。随着现代社会的发展,网站的功能也越加丰富,比如由以前只能展现静态页面到了如今的具有丰富的动态效果,而网站的使用者也越来越多,从以前的少部分人到现在,几乎所有的政府,组织,公司,甚至是个人都有了自己的网站。OA办公系统是现代化的办公中的一种计算机应用,颠覆了传统的办公方式,是一种非常灵活且应用广泛的优秀办公方式。总的来说,OA办公系统使用计算机技术以及信息化技术实现办公自动化,优化了对组织的结构管理以及体制的管理,极大节省办公过程中的人力物力,达到对信息等资源的高效利用的效果,有效提高工作效率以及达到辅助决策等的目的,是各行各业都广泛使用的计算机应用。随着WEB平台的发展,越来越多的计算机应用移植到网站上,OA办公系统也顺应时代发展逐渐迁移至WEB平台。因此,目前社会上的OA办公系统大都以网站的形式面向使用者。OA办公系统的安全现状OA办公系统的流行给各企业单位带来便利的同时,也吸引着黑客的注意。由于办公系统对通讯信息、文档管理等办公程序的自动化,在连接网络的同时也将这些信息暴露于黑客的视野之中。网络黑客[5]通过对OA办公系统的通讯节点进行侦听、投放木马[6]等手段窃取OA系统中的有效数据[7],更可能导致系统的运行错误,文件损坏,系统硬件等出现问题等,一旦系统存在缺陷就会遭受黑客攻击而损失惨重。随着OA办公系统向网站平台的迁移,更是使得风险大幅度提升,大量不法份子利用黑客技术对WEB服务器进行攻击,从而获取网站用户的隐私信息牟取不法利益,这也使得OA办公系统WEB业务平台更容易遭受攻击[8]。使用OA办公系统的目的是为了简化工作流程从而提高工作效率,如果因为网络不安全而遭受损失则得不偿失,因此对OA办公系统来说必须重视网络安全,成为受益者,而不是受害者。章节安排本文一共分为五个章节,每个章节的主要内容如下:第一章首先介绍了本课题的大概背景和相关意义,其中包含了网络安全和OA办公系统的发展及现状,并说明了网络安全对OA办公系统所产生的影响和网络安全对OA办公系统的意义所在,在最后给出了本文的结构。第二章介绍了OA办公系统使用的相关工具以及所采用的技术。第三章详细介绍相关攻击技术以及对应的漏洞挖掘并给出相应实例。第四章是学生成绩系统设计的结构以及相关分析,在最后给出系统实例。第五章是实验过程与结果分析:通过OA办公系统的编写与搭建并对其进行攻击,探讨攻击的可行性,并由攻击方向反馈OA办公系统编写过程中需要注意的细节,达到提升OA办公系统安全性能的效果。第五章则是总结与展望,对本文研究和论述的内容进行总结,针对存在的问题,提出接下来的目标以及实现计划。
系统开发相关知识工具与结构Eclipse与TomcatEclipse是开发者常用的集成开发环境,主要是用于Java语言开发,其功能丰富,使用简单,具备较高的灵活性,通过Eclipse可以完成包括JSP、数据库等各项设计任务,适用于本次对于学生成绩系统的开发。Tomcat是著名的基于Java的轻量级应用服务器,是完全免费开源的Servlet容器,既提供了对Servlet以及JavaServerPage等的支持,也支持html和JavaScript等静态资源的处理,是个人开发者常用的轻量级WEB服务器。在本次开发中使用Tomcat可以对WEB端的请求进行相应处理,达到用户与数据交互的效果。B/S结构B/S结构也即是浏览器/服务器结构,是互联网发展后兴起的一种结构。这种结构将系统功能集中在服务器上,使得系统的开发、维护以及使用更加简单[9]。随着互联网的不断发展,越来越多的计算机有着接入网络的需求,B/S架构在接入网络方面对比C/S架构具有一定的优势,用户只需要一个浏览器就可以对多个系统进行访问,节约了开发成本,这也使得B/S架构被大量使用。由于本次学生成绩系统有着多用户接入网络的场景,使用B/S架构显然是较为合理的。技术知识JavaJava[10]当今互联网广泛应用的一种计算机编程语言,有着面向对象、跨平台等特性,在WEB应用开发方面被广泛应用着。由于Java有着功能强大并且容易使用的特点,本次学生成绩系统选择使用Java语言进行开发。JavaBeanJavaBean是一种可重用的Java组件,有着属性、方法、事件等特性,通过set和get方法获取。在本次学生成绩系统开发中,以使用JavaBean定义可重用的各类组件为基础,通过对定义的属性执行增删改查等操作实现对学生成绩管理的功能。ServletJavaServlet是用于服务器端与客户端交互的小程序,在本次开发中使用Servlet处理来自客户端的请求并响应处理结果给客户端,是学生成绩系统的控制中枢。JSP+JDBCJSP是一种动态网页开发技术,使用JSP标签将Java与HTML页面融合,适用于可重用的组件的开发,有着清晰的网页逻辑,方便web应用设计。将JSP标签与HTML结合,能将网站由静态变为动态,增强网站使用者的交互体验。用户使用浏览器访问服务器上的资源,服务器对相关业务进行处理后通过JSP动态解析成网页展现给用户浏览。JSP标签有着强大的功能,可以记录信息,访问各种组件,以及在不同的网页中传递控制信息和共享信息等。JDBC是在Java技术在WEB业务中的应用,主要是为数据库与应用程序提供链接,具有多种操作数据的方法,使得用户可以通过WEB服务与数据交互,是一种规范的程序接口。JavaScript与JQueryJavaScript是一种解释型语言,提供了有关文本操控、日期、数组以及正则表达式等语法,用于对网页事件的响应,提升用户的交互体验等。JQuery是一个轻量级的JavaScript框架,它集成了常用的动态页面代码,极大简化了JavaScript编程,容易使用,具备简便的设计方式,能够为页面提供良好的事件处理等功能。H-UI与EASYUIH-UI前端框架系统是基于HTML、CSS、JAVASCRIPT开发的轻量级web前端框架、它集成了常用的JQuery插件、包含了丰富的web组件,使得网站开发更加简单。EASYUI提供了许多UI控件的使用,本文将使用EASYUI设计学生成绩系统的前端页面。关系型数据库与MYSQL关系型数据库是指采用关系模型组织数据的数据库。关系型数据库由一系列的行和列组成表,多个表组成数据库,有着清晰的存储思维,方便应用于多次读取和查询的场景。MYSQL是轻量级的关系型数据库,有着低成本、体积小、速度快的特点,能满足大部分应用的需求,是个人开发者常用一种数据库。同时,由于关系型数据库可以使用结构化查询语言对数据库进行增删改查等操作,适用于本次学生成绩系统的开发。DAO模式DAO(DataAccessobject)是指对业务逻辑和持久化数据之间实现对持久化数据的访问,一般仅对外提供相应的接口,对内将操作封装起来。一个典型的DAO模式包含了DAO接口、接口的实现类、实体类、数据库连接和关闭工具类。使用DAO模式的优势在于实现了隔离,将数据访问代码和业务逻辑代码分隔[11],降低了耦合性。本章小结本章重点对学生成绩系统开发过程中使用的工具及技术进行阐述,其中开发工具包含Eclipse和Tomcat,开发技术包括Java、JavaBean、Servlet、B/S结构、JSP和JDBC、JQuery、H-UI、EASYUI以及MYSQL和DAO模式等。
WEB常见攻击方法SQL注入简介SQL即是结构化查询语言,主要是用于关系数据库操作。总的来说,SQL是一门数据库查询语言,开发者通过SQL语句可以实现对数据库的增删改查,而攻击者也是通过构造恶意的SQL语句实现对后台数据的注入攻击[13]实现数据库注入攻击需要两个前提:1.用户能确认自己的输入会被执行数据库操作、2.用户输入的内容可以被拼接到将被执行的SQL语句中。注入类型从数据类型来说,SQL注入有多种划分方式,从数据类型上划分,SQL注入可以分为字符型、数字型以及搜索型;按照返回结果进行区分,数据库注入又可以划分为显错注入、盲注入等。最常见的注入类型是数字型注入以及显错注入[14]。显错注入出现的原因大都是代码的报错信息显示在页面上,因此通过修改数据不断提交到服务器,用查看错误信息的形式就可以判断网站的大部分信息。漏洞挖掘实现SQL注入的前提是找到注入点,找到注入点后可以使用SQL注入工具例如SQLMAP对注入点进行注入,或者手工进行注入,手工注入需要对常见数据库有所了解以便做出判断。图3-1-1SQL注入漏洞挖掘流程实例根据本文使用的MYSQL,以MYSQL注入为例。判断注入点如图3-1-2所示,在疑似注入点的参数加上and1=1,如果注入点存在,那么网页会正常返回,因为1=1在SQL语句中结果为永真,因此使用and1=1不影响其他条件的结果,不影响正常使用。同理,加上and1=2,如果注入点存在,那么SQL语句中条件为永假,那么网页不能正常返回。图3-1-2注入点判断判断字段数如图3-1-3所示,在注入点链接加上orderbyN判断字段数,如果网页能正常返回,说明测试的字段数是存在的,如果网页不能正常放回,那么说明测试的数字超出了字段数,由此判断数据库的最大字段数。图3-1-3判断字段数判断回显如图3-1-4所示,使用上一步骤查询出来的最大字段数,在注入点参数拼上and1=2unionselect1,2,3,…,max。这里使用了MYSQL的联合查询union关键字,and1=2是使得原本SQL语句查询的内容为空,而unionselect1,…,max使得原本查询的字段被1,…,max替代,网页上出现哪个数字,就说明原本查询的字段的地址在哪个位置,方便下一步的判断。图3-1-4判断回显查看数据库信息如图3-1-5所示,在SQL中database()是查询当前数据库名称,在上一步骤判断回显的位置使用这个关键词可以使这个站点当前使用的数据库名称回显在原本正常显示的位置上。接着可以查询MYSQL中所有数据库的信息。图3-1-5当前数据库信息如图3-1-6所示,这里查询的SCHEMA_NAME列是在数据库information_schema的表SCHEMATA中,这一列存放的是当前数据库系统中的数据库名字以及其它信息[15]。通过limit关键字限定查询范围,使得在有限的回显空间查询出我们需要的内容。图3-1-6所有数据库信息查询数据库表名如图3-1-7所示,通过上一步骤查询到的数据库名称在这里查询库中的表名称,使用information_schema默认存放表明的列关键字TABLE_NAME,通过回显的方式查询,同理,通过limit关键字可以查询所有的表名。图3-1-7数据库表查询字段名如图3-1-8所示,通过已查询到的数据库名和表名,使用默认存放字段名的列关键字COLUMN_NAME进行查询,同上,limit关键字限定范围。图3-1-8查询字段名在查询出字段名接下来就可以对数据库信息查询了。越权简介越权漏洞属于OWASP(OpenWebApplicationSecurityProject)组织公布的失效的身份验证和会话管理漏洞[16],在该组织近几年公布的漏洞排行上一直是高居第二位,原因在于黑客只需要通过越权漏洞拿到一个管理员账户就可以对一个系统造成毁灭性的打击,其影响不言而喻。漏洞一般是通过破译账户密码或开发者留下的缺陷实施。越权类型水平越权水平越权指的是拥有同等权限的账号在访问数据时没有判断数据[17]所属人而导致的越权数据访问漏洞。垂直越权垂直越权指后台应用没有进行权限控制,导致恶意用户只需要猜测敏感的参数信息就可以访问其他角色拥有的数据和页面[18]。漏洞挖掘越权一般需要以一个账号为基础,然后寻找目标账号,获取目标账号的权限,可以利用弱口令或爆破的方式获取账号密码。除此之外还可以通过账号的未授权访问寻找漏洞,如果开发者粗心没有对用户请求做二次验证,可以通过修改敏感访问信息获取其他用户的权限。实例以一个未验证短信的密码重置为例。假设重置密码存在没有对手机号以及验证码进行匹配,仅通过判断验证码的正确性,那么可能存在漏洞。如图3-2-1所示,使用自己的手机号接收一个验证码。图3-2-1发送验证如图3-2-2所示,接收到验证码后更换要重置的手机号,完成重置另一手机号密码,达成漏洞利用。图3-2-2更换手机号XSS简介跨站脚本攻击,即是XSS(Cross-siteScriping)是目前互联网最常见的网络安全漏洞之一,在各类论坛,贴吧,博客,基本上有输入框等让用户自由输入的接口都有可能存在XSS漏洞,而导致这类漏洞泛滥的原因在于网站有着允许用户自由输入并且用户输入的内容会以某种形式呈现给其他用户的功能,当用户输入在呈现出来的时候没有经过有效安全的处理,那么就会使得黑客精心构造的内容被浏览器解析执行。XSS分类反射型反射型XSS是最常见的XSS漏洞,这类漏洞通过将用户输入直接地或者没有经过完善的过滤机制就在浏览器中输出实现,黑客一般通过构造恶意的URL链接并诱骗用户点击来实施攻击。存储型存储型XSS相比其他两种类型的XSS漏洞危险性更高,因为这类漏洞会将黑客构造的恶意信息保存到网站的数据库,在其他用户正常使用网站的时候执行,是一种威胁到整个WEB站点的漏洞。DOM型DOM型XSS主要是通过修改页面的DOM节点实现攻击,和其他两种XSS不同,通过DOM实现的攻击需要针对具体的JavaScriptDOM代码具体分析,实施难度较大,所以比较少见。漏洞挖掘XSS漏洞实施的根本就在于用户可控输入,所以漏洞挖掘针对于网站中的所有可以自由输入的点,最简单的方式就是构造简单的JS语句,例如<script>alert(1)</script>,在可控输入处尝试插入。实例以未经过任何过滤的输出语句为例。反射型XSS如图3-3-1所示,在有输入的地方尝试输入简单的JavaScript弹窗语句,如果有弹窗则说明漏洞存在。图3-3-1JavaScript测试如图3-3-2所示,出现弹窗,说明漏洞存在。图3-3-2漏洞存在存储型XSS同反射型XSS,如图3-3-3所示,插入测试语句图3-3-3JavaScript测试如图3-3-4所示,提交语句后出现弹窗,刷新页面后依然触发弹窗,则说明存在存储型XSS漏洞。图3-3-4漏洞存在本章小结本章介绍了常见的三种WEB漏洞,包括SQL注入、越权漏洞以及XSS跨站脚本攻击,对常见漏洞进行了简单的介绍以及分类,并在每一种的最后给出简单的漏洞实例。
系统分析与实现需求分析学生成绩系统使用对象包括学生、教师以及系统管理员,管理的内容包括学生的成绩,课程等,学生需要区分班级等。由于本次系统开发是以安全研究为目的,所以按照系统权限进行区分使用对象,首先是系统管理员,管理员拥有系统的最高权限,可以对学生、老师、班级、课程等等内容进行增删查改等操作,然后是老师,老师拥有学生成绩系统的部分权限,可以给自己所教的课程的学生设置成绩、以及查看学生的信息和成绩,还可以对学生的成绩进行统计,最后是学生,学生拥有的权限最低,只可以查看成绩以及修改自己的部分信息。结构分析系统管理员系统管理员为学生设置年级、班级、课程、每门课程设置有且仅有一名老师、每个年级都有多门课程、每个老师有多门课程。教师教师可以查看其他教师的相关信息,也可以查看所教学生的信息和学生的成绩,教师可以上传学生的成绩。学生学生只可以查看自己的成绩。系统设计程序功能根据系统需求所设计的程序功能图,如图4-1-1所示。图4-1-1系统功能图技术实现根据使用的技术做出技术结构图,技术在学生成绩系统中的应用如图4-1-2所示,由WEB页面向Servlet发送请求,由Servlet选择调用服务,Service中是已经写好的功能,通过调用DAO接口实现,功能操作的对象是JavaBean,通过JavaBean对数据库增删改查,调用服务处理结果通过JSP展现到WEBPage。图4-1-2技术结构图设计实现实现出来的学生成绩系统如下图所示。登录页面登录页面可以选择老师、学生或管理员登录,需要输入用户名、密码和验证码。图4-2-1登录框用户登录需要先查询验证码,验证码通过再验证用户名与密码,验证通过即可登录,成功登录会将用户名保存到session中[18],核心代码如图4-2-2所示。图4-2-2登录验证代码学生端学生端仅有查看成绩、班级通讯录以及个人信息设置功能。查看成绩如图4-2-3所示。图4-2-3查看成绩查看成绩功能的实现由Servlet调度,调用相应学生的成绩服务,核心代码如图4-2-4和图4-2-5所示。图4-2-4Servlet调用代码图4-2-5Service功能代码班级通讯录如图4-2-6所示。图4-2-6班级通讯录班级通讯录的实现需要获取年级ID和班级ID查询,核心代码如图4-2-7和图4-2-8所示。图4-2-7Servlet代码图4-2-8Service代码个人信息如图4-2-9所示。图4-2-9个人信息个人信息仅需要通过账号即可查询。图4-2-10Servlet代码图4-2-11Service代码教师端教师端和学生端功能类似,不同的是可以登记成绩。成绩管理如图4-2-12所示。图4-2-12成绩管理教师端的成绩管理对比学生端增加了添加功能,仅需增加按钮,调用相关服务即可。添加功能核心代码如图4-2-13和图4-2-14所示。图4-2-13Servlet代码图4-2-14Service代码教师通讯录和个人信息如图4-2-15和图4-2-16所示,两种功能的实现和学生端类似,这里就不再赘述了。图4-2-15教师通讯录图4-2-16个人信息管理员端管理员端功能最多,能管理学生和教师,对各种信息可以查看管理等。管理员端的考试列表类似学生端的成绩查看,相比学生端增加了添加和查看的功能,与上文描述的查看功能类似,通过Servlet调用相应Service即可实现,不同的功能需要不同的SQL语句,实现原理是一样的,都是对数据库的增删改查操作,由于本文是对学生成绩系统安全方面的研究,这里就不做更多说明。管理员端功能如图4-2-17至图4-2-23所示。图4-2-17考试管理图4-2-18学生信息管理图4-2-19教师信息管理图4-2-20年级列表图4-2-21班级列表图4-2-22课程列表图4-2-23系统管理本章小结本章重点是对系统设计进行分析,包括了需求分析以及结构分析,最后给出系统功能图、技术结构图,并通过设计好的功能图以及采用的技术结构实现了学生成绩系统并对系统部分功能做出说明。
学生成绩系统的攻击方法探讨学生端系统分析学生是学生成绩系统的主要使用者,因此学生端的使用人数最多,系统权限最低,账号获取难度较低,最容易从学生端对系统发起攻击,近几年来在学生端对学生成绩系统发动攻击的案例屡见不鲜,因此,学生端的安全是最需要我们关注的,本次对学生成绩系统的攻击方法探讨也是集中在学生端,对学生端的安全性做详细研究,对教师端与管理端做简要说明。登录页分析登录页是进入系统的第一道关卡,通常也是黑客的第一个攻击点。在登录页面的攻击方式一般是在用户名或者密码插入恶意构造的代码,导致SQL注入漏洞的出现,或者是绕过数据库,直接登录系统,除了恶意构造的SQL语句对系统进行攻击的方式以外,还可以对用户账号进行暴力破解。图5-1-1学生成绩系统登录页登录页注入在上文讲解SQL注入部分介绍过,注入漏洞的出现大都是因为没有对输入的数据进行处理就直接执行SQL语句,通过输入值与SQL语句拼接完成注入攻击。由于一开始我没有对登录框输入的用户名和密码做过滤处理,处于可注入状态。如图5-1-2所示,我在这里构造一条简单的SQL语句就能登录任意账号。图5-1-2SQL注入绕过登录这里我没有对输入过滤,导致SQL被恶意拼接,输入的密码被直接查询,从而只要知道用户名就可以登录。注入原理如图5-1-3所示,两条语句有着同样的效果。图5-1-3注入原理登录框输入防注入针对注入漏洞产生的原因,在登录框处对输入的数据进行处理,以达到防注入的效果。如图5-1-4和图5-1-5所示,在这里我使用的方式是对数据进行预处理操作,预处理是常用的SQL防注入方法,原理是经过预处理的一段输入会被数据库当成一个字段的属性值执行而不会作为SQL指令处理。图5-1-4预处理代码1图5-1-5预处理代码2如图5-1-6所示,修改完代码后再次使用注入语句尝试登录,此时是无法登录的,说明预处理是可以防止SQL注入的。图5-1-6登录错误登录页账号暴力破解除却SQL注入之外,不得不讲的就是账号与密码被暴力破解,暴力破解产生的原因在于网站登录没有进行安全判断,导致不限次数的尝试任意账号密码登录,有的甚至使用暴力破解工具,加入密码字典,不断猜测用户名和密码,导致账号被恶意登录,从而造成损失。防止暴力破解常用的方案是增加验证码功能,每次登录必须输入正确的验证码,每次需要一定的时间才能获取验证码,采用登录尝试次数限制的方式,一旦有人暴力破解,锁定账户以保护用户账号安全。系统内分析在学生端系统内部考虑的威胁是XSS、越权、或是SQL注入。XSS分析由上文介绍的XSS漏洞形成原因出发,在系统内容寻找可能的XSS攻击点。如图5-1-7所示,在个人信息管理中有控制输入点。图5-1-7可控制输入点如图5-1-8所示,在个人信息管理中的输入在班级通讯录有输出。图5-1-8输出由于在个人信息处学生可以自由输入自己的电话、QQ等信息,如果没有对输入做限制或对输入进行处理,那么自由输入的信息将会在班级通讯录展出。如果输出的时候依然没有进行处理,那么将会形成XSS漏洞,而且由于个人信息输入的内容将会存储数据,所以会变形成存储型XSS漏洞,并且通讯录对班级所有人开放,也就是说,这个存储型的XSS漏洞将会辐射到班级的每一个人,影响非常大。如图5-1-9所示,尝试插入JavaScript语句图5-1-9插入测试如图5-1-10所示,和预估的结果一样,任何一个访问到由我们插入的JavaScript语句的人都会出现弹窗,存储型XSS证实存在。图5-1-10测试结果XSS预防从漏洞原理角度出发,对输入输出做限制,因为学生成绩系统中主动输入的内容有限,可以仅对输入内容做简单的控制。比如学号、年级、班级是设置为不可输入,对学生姓名字段限定长度,如果长度有限那么将无法插入有效的JavaScript语句,电话与QQ固定类型。这种对输入限制仅需要在前端和数据库做设置就可以实现,简单而有效。如图5-1-11所示,设置name属性的长度为20,则无法插入有效的JavaScript语句。图5-1-11数据库设置如图5-1-12所示,在前端代码中对输入限制,有一定的防XSS攻击效果。图5-1-12JavaScript限制越权分析越权漏洞在本系统中影响较大为垂直越权,因为在学生端有学生通讯录,其它学生的信息在这里设计为公开信息,水平越权没有特别大的影响。垂直越权在这里体现为登录学生账号既可以获取教师端的权限甚至管理员端的权限。越权漏洞存在的原因是没有对某个请求做详细的验证,在本系统中各项功能均不会接触到与其它权限账号的请求,但是在链接处没有做二次验证,在知道其它权限链接的情况下可以仅登录学生账号使用其它权限。图5-1-13系统链接如图5-1-14所示,仅修改为管理员链接就可以使用管理员功能,此时依然是学生账号登录状态。图5-1-14管理员功能如图5-1-15所示,系统仅在登录时做一次验证,如果账号密码正确就可以通过链接进入系统,在系统内部没有再次验证。图5-1-15登录验证如图5-1-16所示,系统内部没有二次验证,仅需要通过链接就可以获取高权限功能。图5-1-16链接跳转越权修复如上文所示,这个漏洞存在的原因是访问URL的时候没有二次验证,那么增加一次验证就可以修复漏洞了。如图5-1-17和图5-1-18所示,在session中增加一个值,并在servlet中增加对session新增加的值的判断,即可达到防越权的作用。图5-1-17增加值图5-1-18比较SQL注入分析在系统内部注入与在登录页注入大同小异,有一点差异的就是系统内部注入存在回显,也即是学生端的通讯录页,在没有对输入与输出处理的情况下可以与第三章案例中的SQL注入一样注入出数据库各项信息,由于在上面有演示,这里就不再赘述。学生端系统分析小结经过分析大致得出在学生成绩系统学生端中易受攻击的威胁点以及漏洞,并给出相对应的修复方法。总结漏洞存在规律,大多数漏洞存在是开发时逻辑不够严谨,没有对一些逻辑判断做出限制导致的。教师端与管理端系统分析教师端分析教师端属于较高权限账号,在本学生成绩系统中,其功能与学生端功能大同小异,在漏洞防护方面与学生端类似,针对上文讲述的威胁点做相应处理即可。值得注意的是,教师端这类权限较高的账号对比学生端这类低权限账号更需要做好账号隐私保护,否则账号泄露也会带来不小的影响。管理端分析管理员是整个系统权限最高的账号,其重要性不言而喻,一旦管理员账号密码泄露,或是被获取到权限,那就代表着整个站点隐私的泄露,因此管理员账号的管理是重中之重。在漏洞利用方面,需要注意的是防止越权,相关防护已经在上文提及,这里不做赘述,另一方面是XSS,这是假设在权限已经被获取情况下,防止影响进一步扩大。在本系统中,XSS攻击点只有在系统设置的通知栏中。与上文提及的容易对输入限制的攻击点不同,通知栏对输入长度与输入内容并不能做限制,因此通知栏是最常见的XSS注入点。更重要的是,管理员端的通知栏面向全校师生,一旦遭受攻击将影响到全校。如图5-2-1所示,管理员端系统管理页存在通知栏输入。图5-2-1通知栏漏洞处理:这类漏洞的防护思路是过滤脚本字符,可以基于黑名单思想,将可能的脚本关键字过滤或可能JavaScript事件标签过滤,比如上文构造使用的<script>或onclick等等,还可以对数据进行HTMLEncode处理,将输入数据转换为HTML编码再处理。如图5-2-2所示,对通知栏进行JavaScript插入测试,发现弹窗,即判断漏洞存在。图5-2-2XSS存在如图5-2-3和图5-2-4所示,在本系统中增加对输入的通知栏内容进行HTML编码,这样即使插入JavaScript脚本也会将脚本内容转换成HTML实体,在浏览器上打印出来,而不是执行脚本内容。需要说明的是,这种方法对网页上的任何输入都适用。图5-2-3HTMLEncode方法图5-2-4语句直接打印出来本章小结本章使用上文介绍的WEB攻击技术在搭建的学生成绩系统上做了验证攻击,说明了在学生成绩系统这样的OA办公系统上存在着SQL注入、XSS、越权等常见漏洞,同时可以通过介绍的修复方法修复漏洞,提升系统安全性。
总结与展望从2019年11月开始,我开始了毕业设计的工作,至今四月有余,从对毕业设计的懵懵懂懂,到现在完成整个项目并按照学校要求完成论文的写作。在本次对学生成绩系统的设计与攻击方法的探讨中,我了解到学生成绩系统此类OA系统的大致架构以及系统中易受攻击的危险点,同时我还了解到对此类系统常见的攻击手法并尝试在我设计的系统上复现。通过我对学生成绩系统的设计,结合对系统的攻击分析,我对这类技术有了更深的了解,明白了在开发过程中需要重点关注的地方以及如何提升开发产品的安全性能。在对学生成绩系统的设计中,我学习到多种技术,包括Java、JSP等等,明白怎么使用学习到的技术结合起来去开发一个项目,明白技术在项目中应该使用在什么位置。在学生成绩系统的开发中,WEB静态页面的构成主要是由HTML和CSS元素,除了静态页面以外,还可以使用JavaScript技术处理部分的页面响应,例如按钮事件等,增强用户的交互体验,在JavaScript的基础上,可以扩展到jQuery,这是一个轻量级的框架,有着许多已经集成好的方便我们使用的方法。通过以上几种技术就可以构成了一个简单的WEB页面,这样的页面需要使用大量时间调试CSS美化,为了开发简便可以引入前端框架,例如H-UI。处理完了前端页面,根据前端的需求实现方法。前端的请求部分在页面就可以完成,但是主要的还是要与服务器交互,需要与后端交互的请求都需要通过Servlet,由Servlet判断请求从而调用相应的DAO接口完成响应。这里的DAO是一种将数据访问与业务逻辑分割开的模式,起着降低耦合度的作用,前端对服务器请求都需要通过DAO的接口。以上是我对本次学生成绩系统开发做的总结。在本次毕业设计的工作中,另一重点是WEB攻击技术的研究,在这次实践中,我了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公电脑出租合同范本
- 大量汽车购买合同范本
- 村委环卫合同范本
- 混凝土桩基施工合同范本
- 学生桌椅定制合同范本
- 石材装饰工程合同范本
- 诊所药房聘用合同范本
- 2025版企业劳动合同模板示例
- 2025国际航空货物运输的合同范本
- 2025年土地租赁合同范本示例
- 新生儿败血症(共22张课件)
- 颂钵疗愈师培训
- DB5116T23-2024建设工程项目海绵城市专项设计规程
- 律师事务所律师事务所风险管理手册
- 2023中华护理学会团体标准-注射相关感染预防与控制
- 幼儿园小班班本课程果然有趣
- 专题01-比喻修辞(解析版)-中考语文现代文阅读考点+答题技巧模板之记叙文
- 子宫肌瘤课件教学课件
- 中班美术课件《好心的长颈鹿》
- 赛码网行测题题库2024
- 8.3.1棱柱棱锥棱台的表面积和体积课件高一下学期数学人教A版2
评论
0/150
提交评论