WEB安全入门(转)
一. 首先你得了解Web
Web分为好几层,一图胜千言:
事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。
这样看来,Web有八层(如果把浏览器也算进去,就九层啦,九阳神功……)!!!每层都有几十种主流组件!!!这该怎么办?
别急,一法通则万法通,这是横向的层,纵向就是数据流啦!搞定好数据流:从横向的层,从上到下→从下到上,认真看看这些数据在每个层是怎么个处理的。
数据流中,有个关键的是HTTP协议,从上到下→从下到上的头尾两端(即请求响应),搞通!难吗?《HTTP权威指南》720页!!!坑爹,好难!!!
怎么办?
横向那么复杂、纵向数据流的HTTP协议就720页的书!!!放弃好了……
不,千万别这样。
给你点信心是:《HTTP权威指南》这本书我压根没看过。但是通过百度/Google一些入门的HTTP协议,我做了大概了解,然后Chrome浏览器F12实际看看“Network”标签里的HTTP请求响应,不出几小时,就大概知道HTTP协议这玩意了。(这是快速研究的精髓啊)
搞明白HTTP协议后,你就会明白安全术语的“输入输出”。
黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。
精彩举例:
1. 如果在操作系统层上没处理好,比如Linux的Bash环境把“特殊数据”当做指令执行时,就产生了OS命令执行的安全问题,这段“特殊数据”可能长得如下这般:
; rm -rf /;2. 如果在存储层的数据库中没处理好,数据库的SQL解析引擎把这个“特殊数据”当做指令执行时,就产生SQL注入这样的安全问题,这段“特殊数据”可能长得如下这般:
' union select user, pwd, 1, 2, 3, 4 from users--3. 如果在Web容器层如nginx中没处理好,nginx把“特殊数据”当做指令执行时,可能会产生远程溢出、DoS等各种安全问题,这段“特殊数据”可能长得如下这般:
%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%204. 如果在Web开发框架或Web应用层中没处理好,把“特殊数据”当做指令执行时,可能会产生远程命令执行的安全问题,这段“特殊数据”可能长得如下这般:
eval($_REQUEST['x']);5. 如果在Web前端层中没处理好,浏览器的JS引擎把“特殊数据”当做指令执行时,可能会产生XSS跨站脚本的安全问题,这段“特殊数据”可能长得如下这般:
'"><script>alert(/cos is my hero./)</script>...
怎样,刺激吧?搞懂这些,就算入门啦。
- 记好:一切的安全问题都体现在“输入输出”上,一切的安全问题都存在于“数据流”的整个过程中。
- 记好:“数据流”、“输入输出”这两个关键点。
你好像悟到了点什么,咱们继续……
前面说了:如果你不了解这些研究对象是不可能搞好安全研究的。
拿我XSS来说,曾经有人问我,我回答的一个:在学习XSS前我应该学习什么?你可与参考下。
假如我曾经要不是比较熟JavaScript、ActionScript、HTML/CSS的话,我估计我要研究好XSS是很困难的,我熟悉这些语言刚开始的出发点是想“创造”,我做了好些Flash动画、做了好些网站、包括自己从后端到前端独立实现过一个博客系统,为了解决好前端在各浏览器的兼容问题(当时是IE6如日中天的时候),我啃了好几本书,如《CSS网站布局实录》、《JavaScript DOM编程艺术》、《AJAX Hacks》、Flash从6版本以来到CS2的各类书籍我都多少看过,也实战过,这一切都是在大学前三年搞定的。
大学第四年冲刺Web安全(长期以来有黑客情怀),大四下学期进入知道创宇(刚创业起步),然后到了现在,一晃在知道创宇六年。
说到这,很清晰啦:如果你不了解这些研究对象是不可能搞好安全研究的。
咱们继续:)
二. 黑客兵器谱
新人入门总在寻找好工具来提高效率,Web安全这块我之前放出了我的“兵器谱”,在这:我的渗透利器(会不断抽时间更新)。
工欲善其事必先利其器嘛,而且新人用了好兵器会更有成就感的。
切记:这些兵器,你不仅要知其然还得知其所以然,别堕落了哦。
三. 明白“精于一而悟道”的道理
WEB安全入门(转)的更多相关文章
- Web API 入门指南 - 闲话安全
Web API入门指南有些朋友回复问了些安全方面的问题,安全方面可以写的东西实在太多了,这里尽量围绕着Web API的安全性来展开,介绍一些安全的基本概念,常见安全隐患.相关的防御技巧以及Web AP ...
- java WEB开发入门
WEB开发入门 1 进入web JAVASE:标准- standard JAVA桌面程序 GUI SOCKET JAVAEE:企业-浏览器控制 web 2 软件结构 C/S :client ...
- 转载-Web API 入门
An Introduction to ASP.NET Web API 目前感觉最好的Web API入门教程 HTTP状态码 Web API 强势入门指南 Install Mongodb Getting ...
- web前端入门:一小时学会写页面
一小时学会写页面 作为一个懒癌晚期患者,总是习惯找各种简单的解决问题的方法,也习惯性把问题简单化,所以今天想分享给大家简单的web前端入门方法.既然题目已经定了一个小时那么废话就不多说了,计时开始 1 ...
- 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程
http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...
- 【python】 web开发入门
进入Web开发 现在你完成了Python忍者训练,准备深入Ptyhon的Web开发,但现在的问题是有很多的框架,从中选择最好的框架非常困难,但从初学者的角度出发,Flask基本Web框架将非常适合We ...
- Web API入门指南(安全)转
安全检测的工具站点:https://www.owasp.org/index.php/Category:Vulnerability_Scanning_Tools Web API入门指南有些朋友回复问了些 ...
- 《Web编程入门经典》
在我还不知道网页的基础结构的时候,我找过很多本介绍Web基础的书籍,其中这本<Web编程入门经典>,我认为是最好的. 这本书内容很全面.逻辑很严谨.结构很清晰.语言文字浅显易懂. 看这本书 ...
- (转)Web Service入门简介(一个简单的WebService示例)
Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...
- Intellij Idea 创建Web项目入门(一)转
Intellij Idea 创建Web项目入门(一) 相关软件: Intellij Idea14:http://pan.baidu.com/s/1nu16VyD JDK7:http://pan.bai ...
随机推荐
- iOS系统app崩溃日志手动符号化
iOS系统app崩溃日志手动符号化步骤: 1.在桌面建立一个crash文件夹,将symbolicatecrash工具..crash文件..dSYM文件放到该文件夹中 a.如何查询symbolicate ...
- 在Debian下安装LAMP
准备工作: 1 sudo apt-get install build-essential 第一步:安装Apache 1 sudo apt-get install apache2 第二步:安装MySQL ...
- JProfiler8 注册码序列号
JProfiler_SN_8_x.txt 按默认选择"Single or evaluation license" Name 和 Company 随意 --------------- ...
- paip.配置ef_unified_filter() failed ext_filter_module mod_ext_filter.so apache 错误解决
paip.配置ef_unified_filter() failed ext_filter_module mod_ext_filter.so apache 错误解决 作者Attilax 艾龙, ...
- js程序设计03——面向对象
ECMAScript中有2中属性:数据属性.访问器属性. 数据属性是为了指定某对象的指定key上的一些行为,比如value是否可删除.修改.key可循环遍历等特点.而访问器属性不包含数据值,包含一堆g ...
- javaweb学习总结(十九)——JSP标签
一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...
- GO語言基礎教程:Hello world!
首先簡單地說一下GO語言的環境安裝,從 http://golang.org/dl/ 針對自己的操作系統選擇合適的安裝包,然後下載安裝即可,下載的時候注意別選錯了的操作系統,例如go1.3.1.darw ...
- 如何实现在H5里调起高德地图APP?(下)
这一篇文章将告诉您,如果直接打开高德地图APP,并展示路线规划.适合有定位的移动设备,可以查询到从“我的位置”到目的地的路径规划,并直接导航. 场景二.调起高德地图的路线规划功能 导航是目前JSAPI ...
- Parallel的陷阱
,).ToArray(); ; Parallel.For<int>( fromInclusive: , toExclusive: nums.Length, /* 陷阱 */ localIn ...
- RecyclerView的使用
什么是RecyclerView RecyclerView是Android 5.0 materials design中的组件之一,相应的还有CardView.Palette等.看名字我们 ...