XSS攻击
XSS攻击使用Javascript脚本注入进行攻击
例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie远程发送给黑客服务器端。
<script>alert('sss')</script>
<script>window.location.href='http://www.itmayiedu.com';</script>
对应html源代码: <script>alert('sss')</script>
最好使用火狐浏览器演示效果
将脚本特殊字符,转换成html源代码进行展示。
汉子编码http://www.mytju.com/classcode/tools/encode_gb2312.asp
步骤:编写过滤器拦截所有getParameter参数,重写httpservletwrapp方法
将参数特殊字符转换成html源代码保存.
SpringBoot启动加上@ServletComponentScan
SQL注入攻击
SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的
造成SQL注入的原因是因为程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致原始的查询逻辑被改变,额外的执行了攻击者精心构造的恶意代码
不要使用拼接SQL语句方式、最好使用预编译方式,在mybatis编写sql语句的时候,最好使用?传参数方式,不要使用#传参数,因为#传参数方式,可能会受到sql语句攻击。
演示案例:
http://127.0.0.1:8080/login?userName='liusi'&password='123'
http://127.0.0.1:8080/login?userName='liusi'&password='123' or 1=1
#{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符,可以防止SQL注入问题。
${}: 仅仅为一个纯碎的 string 替换,在动态 SQL 解析阶段将会进行变量替换。
Http请求防盗链
比如A网站有一张图片,被B网站直接通过img标签属性引入,直接盗用A网站图片展示。
判断http请求头Referer域中的记录来源的值,如果和当前访问的域名不一致的情况下,说明该图片可能被其他服务器盗用。
使用过滤器判断请求头Referer记录请求来源
注意测试的时候,最好开启两个不同的浏览器测试,避免图片缓存的原因
CSRF攻击
(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式,它在 2007 年曾被列为互联网 20 大安全隐患之一,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用也就是人们所知道的钓鱼网站。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,并且攻击方式几乎相左。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。
使用图形验证码防止机器模拟接口请求攻击,在调用核心业务接口时,比如支付、下单、等接口,最好使用手机短信验证验证或者是人脸识别,防止其他用户使用Token伪造请求。
忘记密码漏洞
黑客使用抓包工具分析Http请求,在忘记密码找回时,需要发送一套短信验证码,如果验证码数字比较短的话,很容易使用暴力破解方式攻击破。
防御手段:
忘记密码验证码最好在6-8位。
一旦频繁调用接口验证时,应该使用图形验证码拦截,防止机器模拟。
使用黑名单和白名单机制,防御攻击。
上传文件漏洞
上传漏洞这个顾名思义,就是攻击者通过上传木马文件,直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。
导致该漏洞的原因在于代码作者没有对访客提交的数据进行检验或者过滤不严,可以直接提交修改过的数据绕过扩展名的检验。
1)可以得到WEBSHELL
2)上传木马文件,可以导致系统瘫痪
Tomcat虚拟地址:
F:\tomcat_web
Maven依赖
Index.jsp
UploadServlet
脚本文件
创建一个a.jsp
1)对文件格式限制,只允许某些格式上传
2)对文件格式进行校验,前端跟服务器都要进行校验(前端校验扩展名,服务器校验扩展名、Content_Type等)
3)将上传目录防止到项目工程目录之外,当做静态资源文件路径,并且对文件的权限进行设定,禁止文件下的执行权限。
判断文件流是否为图片格式
其他攻击和漏洞
直接异常信息,会给攻击者以提示。 可以使用mvc中的工具,把错误码异常等进行封装
HTML注释, 会暴露功能,方便攻击。 上线时去除注释
文件上传, 如果本身功能就是上传文件去执行,那么就有可能执行非常危险的命令。 解决方式是,设置文件白名单,限制文件类型,另外还可以重新命名文件,改名为不可执行的
路径遍历, 使用相对路径来遍历未开放的目录。 方式是将JS,CSS部署在独立的服务器,使用独立域名。 其他文件不使用静态URL访问,动态参数不包含文件路径信息。
网站安全漏洞扫描
原文链接:https://blog.csdn.net/wota5037/article/details/110381779
原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/18385