SlideShare a Scribd company logo
web开发与运维安全浅见
目录前置知识
SQL注入
文件上传
XSS与SCRF
远程文件包含
URL跳转
权限认证
数据存储与暴力破解
文件解析
其他前置知识Web的发展历程
http://www.test.com/eg.html
浏览器如何与服务端通信
浏览器、传输协议、服务端
浏览器(Netscape、IE、Firefox、….)
传输协议 (http 1.0)
服务端(iis、apache)
与用户交互,新事物出现
http://test.com/cgi-bin/aa.pl/bb/cc
http://test.com/cgi-bin/dd.py/ee/ff?a=1
服务端如何与脚本语言通信
      CGI 、STDIN\STDOUT、环境变量
保存用户提交的信息,新事物出现
脚本语言如何与数据库通信
更… …多的需求
更多的用户访问,更多的应用,更多的数据----越来越复杂,功能越来越多
      squid、nginx、php、redis、mysql、memcache、lucene、lvs、keepalivedSQL注入当web还是静态的时候
 用户无法与服务器交互,也没有DB,就不谈SQL注入了。
 那时我还年轻,会发生什么安全问题我不知道。
当web是动态 ,后面有DB浏览器与服务器通过提交查询交互,最直观的以GET方式出现在URL的?后面的中的字符串参数,这些字符为DB语句的特殊字符,比如引号为SQL语句的闭合符号等。什么是SQL注入,如何注入例子:   http://test.com/info.php?id=1 此URL返回数据库中,某表的第1条信息中的数据。程序中可能这么写的。$arrResult = mysql_query('SELECT * FROM table WHERE id = '.$_GET['id']); 如上的URL,那么查询语句将是SELECT * FROM table WHERE id = 1 如果URL是这样id=1 AND 1,那么查询语句将是SELECT * FROM table WHERE id =1 AND 1
SQL注入URL变成如下这个    Info.php?id=1 AND SELECT LEFT(VERSION(),1) = ‘5’SQL语句将是SELECT * FROM table WHERE id =1 AND SELECT LEFT(VERSION(),1) = ‘5’可查询MYSQL版本的第一个字符是否是5原因是什么对提交的数据未过滤,产生SQL语句的拼接有哪些提交方式 GET、POST、COOKIE、其他如何防范
  不让其产生SQL语句拼接:SQL参数化查询(PDO)
  整型参数:强制转化为整型(phpintval、(int))
  字符串型参数:mysql_real_escape_stringSQL注入可能已有的防护依赖php.ini的magic_quotes_gpc,对提交的参数进行过滤,php会对单双引号、反斜杠、null等字符进行转移,我们不能依赖它,SQL注入的产生是SQL语句的拼接,安全问题是在SQL语句的执行,应该对进入SQL语句部分的参数进行SQL语句的转义,而不是PHP对字符串的转义,虽然转义字符看起来长得一样。同时,此参数的开启,对于需要用户原始输入的信息还需要做下反转义,比如用户密码(虽然不要保存原始的)其他间接的SQL注入    ECSHOP的URL参数部分是经过BASE64加密的,之后程序在base64解密完之后,直接使用解密的结果,不做过滤了。过分相信这些提交的参数,大部分情况,这些URL都是程序生成的。http://www.ecshop.cn/search.php?encode=YTo5OntzOjg6ImtleXdvcmRzIjtzOjE6IjEiO3M6ODoiY2F0ZWdvcnkiO3M6MToiMCI7czo1OiJicmFuZCI7czoxOiIwIjtzOjk6Im1pbl9wcmljZSI7czowOiIiO3M6OToibWF4X3ByaWNlIjtzOjA6IiI7czoxMDoiZ29vZHNfdHlwZSI7czoxOiIwIjtzOjY6ImFjdGlvbiI7czo0OiJmb3JtIjtzOjY6IlN1Ym1pdCI7czoxMjoi56uL5Y2z5pCc57SiIjtzOjE4OiJzZWFyY2hfZW5jb2RlX3RpbWUiO2k6MTMxNjIyODE3MDt9
SQL注入其他间接注入     一些网页游戏,前端FLASH与后端脚本通讯时,选择使用AMF之类协议,也是有前端(flash)将提交查询的SQL语句加密之后,发送给后端程序,后端程序解密,再做相关查询。这个流程中,也是漏掉对解密的参数继续做过滤判断。
SQL注入
SQL注入
文件上传网站为了提供更多的功能,吸引用户,推出上传文件功能已经是必备的手段了。尤其是上传头像。为了确保用户上传的文件合法,一般会使用JS去判断文件的拓展名是否合法,确认合法之后,再通过,允许提交到服务端。当表单提交时,浏览器会向服务端发出这么一个HTTP 数据包
文件上传浏览器会读取这个文件的文件名、文件类型(content-type)、文件的二进制内容,一并发送到服务端。后端程序一般会用POST过来的content-type来验证是否是合法的图片资源等。保存的时候,一般会使用POST过来的文件名的拓展名,或者整个文件名。这些信息都来自浏览器,严格点说,来自客户端,但不能确定构造这个HTTP包的是浏览器,或许是坏人修改了这个包。程序使用客户端提交的信息作为判断依据content-type:text/plain也改成了image/pjpeg,
filename :1234.php[\0].jpg,其中\0为十六进制的00当保存的时候,文件名的null字符之后的字符串将被舍弃,只保留前面的字符。那么,这个文件会被保存成一个php的文件。
文件上传重新读取件信息判断(文件头标识)
PNG(8 bytes):89 50 4E 47 0D 0A 1A 0A
GIF(6 bytes):47 49 46 38 39 61 (GIF89a)

More Related Content

PPTX
Web开发与运维安全浅见
PDF
分布式爬虫
PPSX
Lamp架构下的web开发
PPTX
[xKungFoo2012]Web Service Hack
PDF
分布式爬虫
PPTX
Web安全分享 -公开版
PPT
PDF
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引
Web开发与运维安全浅见
分布式爬虫
Lamp架构下的web开发
[xKungFoo2012]Web Service Hack
分布式爬虫
Web安全分享 -公开版
20150528联动技术大讲堂15(刘胜)业务系统上线标准指引

Viewers also liked (7)

PDF
Java program in_action
PDF
百度自动化运维中的关系管理
PDF
开放平台的资源分配与多级缓存体系的优化
PDF
Php应用程序常见安全问题解析
PDF
基于Symfony框架下的快速企业级应用开发
PDF
Taobao base
PDF
The simplethebeautiful
Java program in_action
百度自动化运维中的关系管理
开放平台的资源分配与多级缓存体系的优化
Php应用程序常见安全问题解析
基于Symfony框架下的快速企业级应用开发
Taobao base
The simplethebeautiful
Ad

Similar to Web开发与运维安全浅见 (8)

PPT
第四节课:web安全2.0
PPT
Web server and_cgi
PPT
Re Introduce Web Development
PDF
Web development overview
PPT
渗透测试思路技术与方法
PDF
6kbbs vulnerability report
PDF
浅谈前端安全与规范(渔隐)
PPTX
程序员常见的Web安全漏洞
第四节课:web安全2.0
Web server and_cgi
Re Introduce Web Development
Web development overview
渗透测试思路技术与方法
6kbbs vulnerability report
浅谈前端安全与规范(渔隐)
程序员常见的Web安全漏洞
Ad

More from mysqlops (20)

PPT
Oracle数据库分析函数详解
PDF
Percona Live 2012PPT:mysql-security-privileges-and-user-management
PDF
Percona Live 2012PPT: introduction-to-mysql-replication
PDF
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
PDF
Percona Live 2012PPT: MySQL Query optimization
PDF
Pldc2012 innodb architecture and internals
PPSX
DBA新人的述职报告
PPSX
MySQL应用优化实践
PPT
eBay EDW元数据管理及应用
PPT
基于协程的网络开发框架的设计与实现
PPT
eBay基于Hadoop平台的用户邮件数据分析
PPSX
对MySQL DBA的一些思考
PPT
QQ聊天系统后台架构的演化与启示
PPT
腾讯即时聊天IM1.4亿在线背后的故事
PDF
分布式存储与TDDL
PDF
MySQL数据库生产环境维护
PDF
Memcached
PDF
DevOPS
PDF
MySQL数据库开发的三十六条军规
PDF
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践
Oracle数据库分析函数详解
Percona Live 2012PPT:mysql-security-privileges-and-user-management
Percona Live 2012PPT: introduction-to-mysql-replication
Percona Live 2012PPT: MySQL Cluster And NDB Cluster
Percona Live 2012PPT: MySQL Query optimization
Pldc2012 innodb architecture and internals
DBA新人的述职报告
MySQL应用优化实践
eBay EDW元数据管理及应用
基于协程的网络开发框架的设计与实现
eBay基于Hadoop平台的用户邮件数据分析
对MySQL DBA的一些思考
QQ聊天系统后台架构的演化与启示
腾讯即时聊天IM1.4亿在线背后的故事
分布式存储与TDDL
MySQL数据库生产环境维护
Memcached
DevOPS
MySQL数据库开发的三十六条军规
Web请求异步处理和海量数据即时分析在淘宝开放平台的实践

Web开发与运维安全浅见