安全测试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 文件包含漏洞讲解:
文件包含分为:
- 本地文件包含(包含的是本地服务器的一个文件)
- 远程文件包含(通过各种协议引用的远程文件)
安全测试5_服务端的安全漏洞(SQL注入、命令注入、文件操作类)的更多相关文章
- Weblogic服务端请求伪造漏洞(SSRF)和反射型跨站请求伪造漏洞(CSS)修复教程
一.服务端请求伪造漏洞 服务端请求伪造(Server-Side Request Forgery),是指Web服务提供从用户指定的URL读取数据并展示功能又未对用户输入的URL进行过滤,导致攻击者可借助 ...
- MVC文件上传09-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹,并在其中创建分类子文件夹
为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext". 相关兄弟篇: MV ...
- MVC文件上传08-使用客户端jQuery-File-Upload插件和服务端Backload组件让每个用户有专属文件夹
当需要为每个用户建立一个专属上传文件夹的时候,可以在提交文件的视图中添加一个隐藏域,并设置name="objectContext". 相关兄弟篇: MVC文件上传01-使用jque ...
- SSRF(服务端请求伪造)漏洞
目录 SSRF SSRF漏洞的挖掘 SSRF漏洞利用 SSRF漏洞防御 SSRF SSRF(Server-Side Request Forgery,服务器端请求伪造)漏洞,是一种由攻击者构造请求,由服 ...
- linux服务端导入oracle数据库.sql脚本
一般情况下,后缀名为.sql或者为记事本类型的文本脚本可以通过打开后复制或者直接在客户端打开执行,但如果脚本比较大时(比如文件达到几百M以上), 普通文本工具和数据库客户端都无法打开,哪怕可以打开,也 ...
- MQTT 2——服务端安装与客户端测试
本篇记录一下MQTT服务器,客户端,JAVA客户端的选择开发与测试 MQTT服务端选择与安装过程:MQTT客户端测试工具安装与测试:MQTT JAVA客户端的选择与开发,测试 MQTT服务器选择与安装 ...
- iOS推送小结(证书的生成、客户端的开发、服务端的开发)
1.推送过程简介 1.1.App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请 ...
- iOS开发推送--客户端 服务端
1.推送过程简介 (1)App启动过程中,使用UIApplication::registerForRemoteNotificationTypes函数与苹果的APNS服务器通信,发出注册远程推送的申请. ...
- Egg + Vue 服务端渲染工程化实现
在实现 egg + vue 服务端渲染工程化实现之前,我们先来看看前面两篇关于Webpack构建和Egg的文章: 在 Webpack工程化解决方案easywebpack 文章中我们提到了基于 Vue ...
随机推荐
- C# 使用委托实现多线程调用窗体的四种方式(转)
1.方法一:使用线程 功能描述:在用c#做WinFrom开发的过程中.我们经常需要用到进度条(ProgressBar)用于显示进度信息.这时候我们可能就需要用到多线程,如果不采用多线程控制进度条,窗口 ...
- 利用Jmeter批量数据库插入数据
1. 启动Jmeter 2. 添加 DBC Connection Configuration 右键线程组->添加->配置元件->JDBC Connection Configu ...
- API - .addClass()
比较简单的一个方法, jQuery官网中.addClass()有两种参数: 1 .addClass( className ) /* className 为一个或多个(多个时用空格分隔) css ...
- 菜鸟如何使用hanlp做分词的过程记录
菜鸟如何使用hanlp做分词的过程记录 最近在学习hanlp的内容,准备在节后看看有没有时间整理一波hanlp分享下,应该还是会像之前分享DKHadoop一样的方式吧.把整个学习的过程中截图在配文字的 ...
- eclipse配置maven后无法下载jar
1.检查网络拦截是否正常 2.进入maven依赖库根目录搜索出该目录下的*lastUpdated.properties文件并删除 然后就可以继续下载jar包了
- NSIS 制作简单安装包
;replace NSIS/Contrib/zip2exe/Modern.nsh;NSI format: Asni;http://nsis.sourceforge.net/ ;UAC级别Request ...
- JIRA 资源
https://www.**.com/article/2015/8/7/22532.html e_v_g_e_t JIRA使用教程:在Windows上安装JIRAJIRA使用教程:在Linux上安装J ...
- 迭代器和增强for
增强for 内部原理其实是个Iterator迭代器,所以在遍历的过程中,不能对集合中的元素进行增删操作. 格式: for(元素的数据类型 变量 : Collection集合or数组){ } 它用于遍 ...
- spring4.0之八:Groovy DSL
4.0的一个重要特征就是完全支持Groovy,Groovy是Spring主导的一门基于JVM的脚本语言(动态语言).在spring 2.x,脚本语言通过 Java scripting engine在S ...
- 面向对象php 接口 抽象类
1.定义类和实例化对象: 使用关键字class定义类,使用new实例化对象: 2.类成员的添加和访问: 类成员:有属性,方法,常量(常量名不带$符): 访问属性的时候,变量名不带$符 添加属性需要使用 ...