安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

  前面大致讲解了下客户端的安全漏洞,现在来讲解下服务端的安全漏洞。

  1、SQL注入(SQL Injection),是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。

这里举个例子:

下面这个是一个正常的登录,密码为MD5加密,用户在界面输入用户名和密码后,通过post请求将值传入到后台服务器,最终通过拼接好的sql进行查询,查询返回正确则登录成功。

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

那么sql注入是怎么做的呢?由下图我们知道,我们用户名输入的是admin' -- ,而密码却无任何输入,“--”为注释的意思,当传入这个后,登录查询的sql就跟图中一致,导致不用输入密码也可登陆成功。

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

SQL注入必备条件:

  • 可以控制输入的数据
  • 服务器要执行的代码拼接了控制的数据

 SQL注入的本质:

  • 数据和代码未分离,即数据当做了代码来执行

   2、命令注入

  • 命令注入解析:

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

  • 命令注入的过程:

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

案例:

后台代码如下:

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

访问页面结果如下:

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

命令(在url后写 " & dir "./)注入后:

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

   3.文件操作

常见文件操作:

  • 文件上传(上传头像、上传附件) ->上传Webshell、上传木马(漏洞上传操作)
  • 文件下载(下载应用、下载附件) -> 下载系统任意文件、下载程序代码(漏洞下载操作)

常见文件操作漏洞:

  • 文件上传漏洞
  • 任意文件下载
  • 文件包含漏洞

  3.1  文件上传漏洞讲解:

  上传“恶意构造文件”,此文件可执行,上传后打开上传文件的地址,查看文件是否被执行,执行存在安全漏洞。

开发设计上传文件时未考虑如下两点就会造成上传漏洞:

安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

  3.2  任意文件下载漏洞讲解:

  下载系统文件,复制文件地址后在浏览器中打开,修改地址后面的参数,看是否能拿到其他更多的信息,如果可以,存在安全漏洞。

  安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

  开发设计下载时未考虑如下两点就会造成下载漏洞:

  安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

  

  3.3  文件包含漏洞讲解:

文件包含分为:

  • 本地文件包含(包含的是本地服务器的一个文件)
  • 远程文件包含(通过各种协议引用的远程文件)