Web安全攻防之常见漏洞及防御方式

1 SSRF

SSRF漏洞的产生原因:服务器提供了从其他服务器获取数据的功能,并且没有对地址和协议进行过滤和限制。比如:2020年10月ByteCTF的easy_scrapy。

这种漏洞在CTF中也很常见,可以用来攻击内网中的应用,如:Redis、discuz7、fastcgi、memcache、webdav、struts、jboss、axis2等应用。

防御方式:

  • 限制请求的端口只能是Web端口
  • 限制不能访问内网的IP(IPTable)
  • 屏蔽返回的内容

参考文章:

  1. 浅析SSRF原理及利用方式:https://www.anquanke.com/post/id/145519

2 文件上传

文件上传漏洞产生原因:文件上传的路径和文件类型没有进行限制,导致上传后的文件可以被当作代码执行。

文件上传的绕过方式:

  1. JS检测绕过
  2. 文件后缀绕过
  3. 文件类型绕过(HTTP包的Conten-Type)
  4. 竞争条件(在删除文件前另外创建一个文件)

防御方式

  • 白名单判断文件后缀是否合法(黑名单容易过滤不全)
  • 对上传后的文件进行重命名。

3 暴力破解

暴力破解产生的原因:服务器没有做访问限制,攻击者可以进行逐个测试(弱密码)。

常见的暴力破解方式:

  • 用户名和密码错误次数都无限制(可以随便暴力破解)
  • 单时间段内用户的密码错误次数限制(例如:锁QQ。只限制了单个用户的密码次数,可以考虑更换用户名再进行暴力破解,只需要用一个用户列表即可)
  • 单时间段内IP登陆错误次数限制(IP池绕过)

暴力破解的关键在于字典,如果想要提升暴力破解的成功率,就需要缩小破解范围(例如:获取学号的列表范围,然后使用默认密码爆破,如果密码是生日,那字典的生成最好符合日期的范围)。

防御方法:

  • 使用较高级别的验证码
  • 使用多因素验证
  • 用户登陆次数超过设置的阀值,则锁定账号。
  • 单个IP登陆次数超过设置的阀值,则锁定IP。

4 命令执行

命令执行的原因:类似SQL注入、XSS漏洞,都是将文本当作代码进行执行。

防御方法:

  • 尽量不要使用直接命令执行的函数,可以考虑找封装后的包来用。
  • 执行函数前进行过滤。

5 XXE漏洞

XXE漏洞的原因:类似SQL注入、XSS漏洞、命令执行,都是将文本当作代码进行执行(为什么能代码执行呢?XML文件被导入时能引入外部实体)。

XXE漏洞的危害有很多,比如可以文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等。

防御方法

  • 禁止引用外部实体
  • 过滤XML中的数据

猜你喜欢

转载自blog.csdn.net/qq_43085611/article/details/113250780
今日推荐