Web安全加固

实验目的

了解SQL注入的概念和基本原理。

了解XSS跨站的概念和基本原理。

了解上传漏洞的概念和基本原理。

掌握避免SQL注入攻击的基本方法。

掌握避免XSS跨站进行攻击的基本方法。

掌握避免上传漏洞进行攻击的基本方法。

实验准备及注意事项

1.硬件:装有Windows操作系统的计算机1台。

2.软件:myeclipse、sqlserver、blog项目。  

3.严格按照实验步骤进行实验,实验结果以截图的形式进行保留。

实验任务1 SQL注入防范

1、运行项目,在用户登录界面用户名处输入万能密码admin' or 1=1 --',密码处输入任意字符,点击登录,不能绕过后台登录系统。

 

原因:项目使用PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。

2、在项目中找到用户登录模块所使用的关键SQL语句。

3、修改登录模块的SQL查询相关语句如下所示:

 

4、再次运行项目,使用万能密码admin' or 1=1 --'进行登录,观察到能够成功登录,登录的是稻草人的账号,默认登陆数据库中第一个。

 

实验任务2 XSS跨站防范

1、运行项目,在网站中寻找能够提交信息的文本框。

2、提交JS代码:<script>alert("xxx")</script>,观察代码是否生效。

3、在项目中编写代码,在用户提交留言和评论信息时将<和>分别替换为&gt;和&lt;。

 

原因:在HTML中,某些字符是预留的。例如小于号 < 和大于号 > ,浏览器在解析他们时会误认为它们是标签。如果希望正确地显示预留字符,我们必须在HTML源代码中使用字符实体(character entities)。

常见字符的实体转换表

显示结果

描述

实体名称

实体编号

 

空格

&nbsp;

&#160;

<

小于号

&lt;

&#60;

>

大于号

&gt;

&#62;

&

和号

&amp;

&#38;

"

引号

&quot;

&#34;

'

撇号

&apos; (IE不支持)

&#39;

4、再次在留言板和文章评论中提交JS代码:<script>alert("xxx")</script>,提交的代码能够正常显示。

 

 

实验任务3 上传攻击防范

  1. 运行项目,在网站中寻找能够上传文件的位置,尝试上传菜刀马。发现不能成功上传。

     

    2、分析项目源代码,找到项目在对上传文件类型做了类型的限制。

  2.  

     

    3、将菜刀马的文件后缀修改为图片类型,则能够上传。

    5、注释掉文件上传限制,上传jsp后缀的菜刀马,能够正常使用,因为缺少了限制条件,所以什么格式的文件均可以上传。

    实验总结

    1. 如何防范SQL注入?代码层防止sql注入攻击的最佳方案就是sql预编译;确认每种数据的类型,比如是数字,数据库则必须使用int类型来存储规定数据长度,能在一定程度上防止sql注入严格限制数据库权限,能最大程度减少sql注入的危害避免直接响应一些sql异常信息,sql发生异常后,自定义异常进行响应过滤参数中含有的一些数据库关键词。

         2 .如何防范上传攻击? 文件上传的目录设置为不可执行,判断文件类型,使用随机数改写文件名和文件路径,单独设置文件服务器的域名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值