Web安全加固

1 SQL注入防范

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

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

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

825db14767e61f141073a0b5fea39c54.jpg

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

825db14767e61f141073a0b5fea39c54.jpg

4、再次运行项目,使用万能密码admin' or 1=1 --'进行登录,成功登录。

2 XSS跨站防范

1、运行项目,在网站中寻找能够提交信息的文本框。提交JS代码:<script>alert("xxx")</script>,发现出现提示框。

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

5a852a19b3ded53b41b50627fe0237c1.jpg

 


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

6ad86f51d4f5464f0a28af5fd089b769.jpg

 

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

常见字符的实体转换表

显示结果

描述

实体名称

实体编号

 

空格

&nbsp;

&#160;

<

小于号

&lt;

&#60;

>

大于号

&gt;

&#62;

&

和号

&amp;

&#38;

"

引号

&quot;

&#34;

'

撇号

&apos; (IE不支持)

&#39;

3 上传攻击防范

1、运行项目,在网站中寻找能够上传文件的位置,上传菜刀马。一开始是长传不成功的,因为有格式限制===》查看源代码

966708a2158fce14a6d870aed99a311b.jpg

发现对文件类型有限制,而菜刀马文件是jsp文件。

 

2、将菜刀马的文件后缀修改为图片类型.jpg,上传。

a8e61c84f8cfc3e1d8b646cc0ad8b246.jpg

3、接下来我们要改变源代码,注释掉文件上传限制,使jsp文件也能上传

52e2fdb3ddab6816609c625f26de8e85.jpg

记得把jsp文件的格式改成utf-8,上传

b3e0239e598d81be1016e609049363d2.jpg

 

4、上传jsp后缀的菜刀马后,复制图片的链接,使用中国菜刀进行连接使用。

32c2176a1ff9e8c74fdeb6970d7827dc.jpg

5.进来了

53e14e8adcf61768c962beacbb443afa.jpg

 

 

 


版权声明:本文为weixin_57881605原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。