安全测试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 ...
随机推荐
- MySQL 检索数据(SELECT)
检索单个列 mysql> SELECT 列名 FROM 表名; 如下,从表products中检索prod_name列 mysql> SELECT prod_name FROM ...
- JavaScript 继承总结
http://blog.csdn.net/yincheng01/article/details/6841953 Metro C++ http://www.cnblogs.com/michaelxu/a ...
- C# 虚方法、override和new
使用new关键字来做调用 using System; using System.Collections.Generic; using System.Linq; using System.Text; u ...
- mysql 1267 error
CREATE TABLE a (id VARCHAR(32)) DEFAULT CHARSET = utf8 COLLATE utf8_general_ci:INSERT INTO a(id) VAL ...
- sofa-rpc 服务端源码流程走读
sofa-rpc是阿里开源的一款高性能的rpc框架,这篇文章主要是对sofa-rpc provider启动服务流程的一个代码走读,下面是我简单绘制的一个基本的关系流程图 下面我们根据sofa-rpc代 ...
- Python标示符和关键字
标示符 什么是标示符,看下图: 标识符就是开发人员在程序中自定义的一些符号和名称. 标示符是自己定义的,如变量名 .函数名等. 标示符的规则 标示符由字母.下划线和数字组成,且数字不能开头 pytho ...
- 让SQL SERVER自动清理掉处于SLEEPING状态超过30分钟的进程(转)
原文地址:http://www.itpub.net/thread-809758-1-1.html use master go ) drop procedure [dbo].[p_killspid] G ...
- adb命令模拟按键输入keycode
adb命令模拟按键输入keycode 2017年05月18日 14:57:32 阅读数:1883 例子: //这条命令相当于按了设备的Backkey键 adb shell input keyevent ...
- DS二叉树--Huffman编码与解码
题目描述 1.问题描述 给定n个字符及其对应的权值,构造Huffman树,并进行huffman编码和译(解)码. 构造Huffman树时,要求左子树根的权值小于.等于右子树根的权值. 进行Huffma ...
- react路由嵌套
所谓的嵌套路由就是在某些以及路由下面存在二级路由,这些二级路由除了公用一级路由导航模块外,还公用当前的二级路由的导航模块,也就是部分进行了切换,要实现嵌套路由,首先回顾之前的内容,实现基本的react ...