目录
web漏洞
WEB漏洞通常是指网站程序上的漏洞,可能是由于代码编写者在编写代码时考虑不周全等原因而造成的漏洞。如果网站存在WEB漏洞被人利用,其可以轻易控制整个网站,并可进一步提权获取网站服务器权限,控制整个服务器。常见的漏洞利用有密码登录绕过,命令注入,跨站请求伪造,文件上传,SQL注入,跨站反击等。
web安全加固
在了解到漏洞之后我们可以对我们的网站进行安全加固
SQL注入防范
手下我们可以部署一个blog项目。同上面一样,输入万能密码,构造一个永真的语句,绕过后台登录系统,发现不可以登录成功。
原因是项目使用了PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。
String sql="select * from tb_user where user_name= ? and user_pswd= ? "
要想绕过,直接登录,我们可以找到SQL语句,对其进行做如下修改
String sql="select * from tb_user where user_name='"+params[0]+"' and user_pswd='"+params[1]+"'";
所以我们在写登录语句时为了提高安全性,可以按照修改之前的来进行
命令注入防范
在博客的留言板或者评论区中,我们可以输入一下语句
<script>alert("xxx")</script>
发现出现了XXX的提示框
在HTML中,某些字符是预留的。例如“<”和“>”,浏览器在解析它们时会误认为它们时标签。如果希望正确的显示预留字符,我们必须在HTML源代码中使用字符实体。可以在系统的留言板和评论区的代码位置编写如下代码
content=content.replace("<", "<");
content=content.replace(">", ">");
当我们再次在留言板或者评论区输入同样的语句时,就不会再弹出框了
上传文件防范
我们可以重复之前的上传文件的步骤,在项目中找到能够上传文件的地方,然后上传一句话木马。但是我们发现不能够上传。
这说明在后台对上传文件的类型做了限制。
如果我们将文件改成jpg等格式,发现虽然能够上传,但是菜刀上面不能进入目录
我们再改变一下将文件的编码都改成utf-8,发现仍然会出现错误,注释掉限制语句,会发现仍然会出现错误,不能进入正确目录