zoukankan      html  css  js  c++  java
  • 安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)

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

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

    这里举个例子:

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

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

    SQL注入必备条件:

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

     SQL注入的本质:

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

       2、命令注入

    • 命令注入解析:

    • 命令注入的过程:

    案例:

    后台代码如下:

    访问页面结果如下:

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

       3.文件操作

    常见文件操作:

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

    常见文件操作漏洞:

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

      3.1  文件上传漏洞讲解:

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

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

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

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

      

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

      

      

      3.3  文件包含漏洞讲解:

    文件包含分为:

    • 本地文件包含(包含的是本地服务器的一个文件)
    • 远程文件包含(通过各种协议引用的远程文件)
  • 相关阅读:
    【观点】停止编程 狼人:
    JavaScript之父谈语言诞生记 狼人:
    【评论】你在业余时间都开发过什么? 狼人:
    【心得】Web设计师应参考的技术 狼人:
    每天写出好代码的5个建议 狼人:
    如果编程语言是一条船 狼人:
    数据库测试——实用技巧及测试方法 狼人:
    【观点】我的PHP退役了 狼人:
    Google发布Swiffy 将Flash转换为HTML5 狼人:
    20个不错的CSS页面布局相关资源推荐 狼人:
  • 原文地址:https://www.cnblogs.com/leixiaobai/p/8254169.html
Copyright © 2011-2022 走看看