课堂笔记
实训6 Web安全加固
实训目的
了解SQL注入的概念和基本原理。
了解XSS跨站的概念和基本原理。
了解上传漏洞的概念和基本原理。
掌握避免SQL注入攻击的基本方法。
掌握避免XSS跨站进行攻击的基本方法。
掌握避免上传漏洞进行攻击的基本方法。
实训准备及注意事项
1.硬件:装有Windows操作系统的计算机1台。
2.软件:myeclipse、sqlserver、blog项目。
3.严格按照实验步骤进行实验,实验结果以截图的形式进行保留。
实训任务1 SQL注入防范
- 部署并运行Blog项目,在用户登录界面用户名处输入万能密码admin’ or 1=1 --',密码处输入任意字符,点击登录。
原因:项目使用PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。
-
在项目中找到用户登录模块所使用的关键SQL语句。
-
修改登录模块的SQL查询相关语句如下所示:
-
再次运行项目,使用万能密码admin’ or 1=1 --'进行登录。
实训任务2 XSS跨站防范
- 运行项目,在网站中寻找能够提交信息的文本框。提交JS代码:
<script>alert("xxx")</script>
,观察代码是否生效。 - 在项目中编写代码,在用户提交留言和评论信息时将<和>分别替换为>和<。
content=content.replace("<","<");
content=content.replace(">",">");
原因:在HTML中,某些字符是预留的。例如小于号 < 和大于号 > ,浏览器在解析他们时会误认为它们是标签。如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。
3. 再次在留言板和文章评论中提交JS代码:<script>alert("xxx")</script>
,观察提交的代码是否能够正常显示。
实训任务3 上传攻击防范
1、运行项目,在网站中寻找能够上传文件的位置,尝试上传菜刀马。
2、分析项目源代码,找到项目在哪里对上传文件类型做了何种限制。
3、将菜刀马的文件后缀修改为图片类型,观察是否能够上传。
4、尝试获取图片地址,并使用中国菜刀进行连接,观察是否能够正常使用。
5、注释掉文件上传限制,上传jsp后缀的菜刀马,观察是否能够正常使用。