|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册帐号
×
一. 首先你得了解Web
8 m! i+ E0 t& m9 \7 B2 V; c7 O: j) C6 H, w% V5 S/ y; d
Web分为好几层,一图胜千言:
3 s/ W1 d; G, J( r l: W; e2 g
, A2 T. I* \7 H) Y
事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。
' }9 @( }+ Z) @* `这样看来,Web有八层(如果把浏览器也算进去,就九层啦,九阳神功……)!!!每层都有几十种主流组件!!!这该怎么办?/ o7 v2 @/ W4 A# f4 p
别急,一法通则万法通,这是横向的层,纵向就是数据流啦!搞定好数据流:从横向的层,从上到下→从下到上,认真看看这些数据在每个层是怎么个处理的。8 p! D5 F% Y- r/ g+ ?6 T
% F. r" Q& r; E/ F, K
数据流中,有个关键的是HTTP协议,从上到下→从下到上的头尾两端(即请求响应),搞通!难吗?《HTTP权威指南》720页!!!坑爹,好难!!!
6 ]+ t; u) w( d u) A3 g& D; ~. M1 t, F. p3 O
怎么办?5 U' [8 u6 L, Q+ X/ E0 z' ?
6 P r$ ^9 X& f! i9 d" |9 C横向那么复杂、纵向数据流的HTTP协议就720页的书!!!放弃好了……
9 B4 S3 G/ `, u, s& D5 M% k
) p% M* \0 ^* o& n' J不,千万别这样。
6 O; _( C. n0 r* x8 ~& q5 g- g5 R6 |, f2 H" m* {/ F* V2 N
给你点信心是:《HTTP权威指南》这本书我压根没看过。但是通过百度/Google一些入门的HTTP协议,我做了大概了解,然后Chrome浏览器F12实际看看“Network”标签里的HTTP请求响应,不出几小时,就大概知道HTTP协议这玩意了。(这是快速研究的精髓啊)
1 B, Y( p+ k9 l6 |5 o4 M$ X
2 N, f- R4 j1 n' b1 Q6 d搞明白HTTP协议后,你就会明白安全术语的“输入输出”。
, s7 P2 p! y" x' P# i* C% H+ j4 |( z8 g: |5 f' d* ~! H* F
黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。
7 _! q5 M% L, L z" O" b& |( g% y. ?. u# |: C+ x" Y
精彩举例:
4 Z. g" ^$ Z2 ~4 Y2 Q1. 如果在操作系统层上没处理好,比如Linux的Bash环境把“特殊数据”当做指令执行时,就产生了OS命令执行的安全问题,这段“特殊数据”可能长得如下这般:& a; J7 W/ @ t
; rm -rf /;
3 v# x5 C& e6 _6 \% p9 u7 k4 O) f' |% c3 @) b
2. 如果在存储层的数据库中没处理好,数据库的SQL解析引擎把这个“特殊数据”当做指令执行时,就产生SQL注入这样的安全问题,这段“特殊数据”可能长得如下这般:
9 z, W8 E# ^' b. V% E' union select user, pwd, 1, 2, 3, 4 from users--
7 E& J7 o# m- e9 n9 J) a* k
# Q' \: b; U S4 W3. 如果在Web容器层如nginx中没处理好,nginx把“特殊数据”当做指令执行时,可能会产生远程溢出、DoS等各种安全问题,这段“特殊数据”可能长得如下这般:
1 H% t! H& ?7 O1 q: H( U%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%20
) J% r) [2 V8 ]6 A6 k' J0 m/ c% u' ~
4. 如果在Web开发框架或Web应用层中没处理好,把“特殊数据”当做指令执行时,可能会产生远程命令执行的安全问题,这段“特殊数据”可能长得如下这般:9 u4 K% }/ X1 d
eval($_REQUEST['x']);% \2 I. P+ ?, H* m+ f
, s0 Y& R" S7 a3 A5. 如果在Web前端层中没处理好,浏览器的JS引擎把“特殊数据”当做指令执行时,可能会产生XSS跨站脚本的安全问题,这段“特殊数据”可能长得如下这般:
# h/ |7 \" n& [) G'"><script>alert(/cos is my hero./)</script>
: ]6 a& ~( A; q. M! ^, O* @' U+ X6 m3 y9 F7 v0 j4 `& c
...
2 L& j& e# a; n h! ^/ R
$ `* R; e4 v% M( m2 x怎样,刺激吧?搞懂这些,就算入门啦。3 L0 P# w4 u5 r k" k
记好:一切的安全问题都体现在“输入输出”上,一切的安全问题都存在于“数据流”的整个过程中。) Y8 e; S, @' w) \7 K
记好:“数据流”、“输入输出”这两个关键点。
! M* ^, Q5 g4 l. d0 _8 K你好像悟到了点什么,咱们继续……" ?! k% r' v2 f5 n
3 E+ a$ I0 E% d& g) e4 N; m
前面说了:如果你不了解这些研究对象是不可能搞好安全研究的。
: B& ]; F2 u' v. ^! j
6 Y5 j F9 Q+ w- @拿我XSS来说,曾经有人问我,我回答的一个:在学习XSS前我应该学习什么?你可与参考下。; Z6 B U9 P' J# k g: `$ o
, ^' G7 `& z: L* @2 i$ \$ J假如我曾经要不是比较熟JavaScript、ActionScript、HTML/CSS的话,我估计我要研究好XSS是很困难的,我熟悉这些语言刚开始的出发点是想“创造”,我做了好些Flash动画、做了好些网站、包括自己从后端到前端独立实现过一个博客系统,为了解决好前端在各浏览器的兼容问题(当时是IE6如日中天的时候),我啃了好几本书,如《CSS网站布局实录》、《JavaScript DOM编程艺术》、《AJAX Hacks》、Flash从6版本以来到CS2的各类书籍我都多少看过,也实战过,这一切都是在大学前三年搞定的。$ Z' I7 m! t$ t3 D' ?. S
# {1 E5 p) z6 u1 c' ~5 m7 x
大学第四年冲刺Web安全(长期以来有黑客情怀),大四下学期进入知道创宇(刚创业起步),然后到了现在,一晃在知道创宇六年。: o& E( l3 x% A' C
5 v2 C# D# b2 ]
说到这,很清晰啦:如果你不了解这些研究对象是不可能搞好安全研究的。% Z8 ]7 I' C. s. c
: x# [. h8 `2 b/ ?. @
咱们继续:)
+ \/ Z9 o+ \' Y' R6 Z, p' e: ^3 a7 K
二. 黑客兵器谱8 }+ C5 a# ~2 s$ }+ d: v+ {
2 N" X1 x2 S$ o1 |' w新人入门总在寻找好工具来提高效率,Web安全这块我之前放出了我的“兵器谱”,在这:我的渗透利器(会不断抽时间更新)。
% ~6 m+ J6 D8 @" V7 y/ o8 i0 f& u: w3 `6 E# w
工欲善其事必先利其器嘛,而且新人用了好兵器会更有成就感的。+ [" g& ]6 K2 y5 l5 B
7 a+ A) H9 S! A8 U0 E" @; x切记:这些兵器,你不仅要知其然还得知其所以然,别堕落了哦。9 y9 T1 z" k. U- z! q b6 {6 j
* |' L9 ^0 x* a* a+ ~ `三. 明白“精于一而悟道”的道理
3 C v9 I6 {: B
7 Z8 h, T7 U" `8 O/ a" U不多说,请看这我的回答:对于立志在网络安全领域发展,应该如何系统学习安全知识?
0 ~) q3 ~' x5 n8 C; o: c; a
6 o1 U- @# c( {. o5 n! n5 i% u四. 融入圈子7 `# X0 j6 z% w
% a% }$ _% s* I+ ]2 A' v多结交些靠谱的黑客,搞搞基啦(不过别来真的,还有我好讨厌扯淡/水得不得了的人),微博(含:Twitter)、QQ、微信、知乎、博客等善于跟进,不仅学,也要分享,让大家知道你的存在,更有利于交流与成长。
+ S* A7 P6 C9 Q1 w( q' R& A* ]) o
如果你对我有兴趣,可以看我的介绍:关于余弦,我自认为我自己靠谱(不,这不是浮夸,这是自信)。- b) Z* m* R- b* O: {6 D7 h
+ k7 }4 K( P9 Z2 Z* W
关于“圈子”,我想说:别把自己局限住。
& L2 v0 ?: W6 |4 P0 \( I5 E5 H3 P" M1 M8 J! `0 o- `
本内容来自知乎网:https://www.zhihu.com/question/21606800- V0 T* X3 Y' w6 K( d% x; ?
|
|