专栏首页HACK学习【零基础】学习 Web 安全 | 内附彩蛋

【零基础】学习 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./%20 4. 如果在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安全这块我之前放出了我的“兵器谱”,在这:

我的渗透利器

update: 2013/10/10

Firefox下

Firebug,调试js,HTTP请求响应观察,Cookie,DOM树观察等; GreaseMonkey,自己改了个Cookie修改脚本,其他同学可以用这款:Original Cookie Injector for Greasemonkey; Noscript,进行一些js的阻断; AutoProxy,访问外国网站必备; Chrome下

F12打开开发者工具,功能==Firebug+本地存储观察等; SwichySharp,访问外国网站必备; Cookie修改脚本,自己写了一个Chrome扩展(已开源:Cookie利用神器:CookieHacker),其他同学可以自己到Chrome扩展搜个好用的; 前端渗透工具

XSS’OR,我开发的,常用其中加解密与代码生成; XSSEE 3.0 Beta,Monyer开发的,加解密最好用神器; Online JavaScript beautifier,js美化工具,分析js常用; 前端攻击框架,推荐BeEF及一些小伙伴开发的XSS盲打工具,我自己也有款,不过不轻易示人;

HTTP代理工具

Fiddler,即可,不用再寻找其他的了,其中的watcher插件可以玩玩,找漏洞的; Burp Suite,神器,不仅HTTP代理,还有爬虫、漏洞扫描、渗透、爆破等功能;

漏洞扫描工具

AWVS,不仅漏扫方便,自带的一些小工具也好用; Python自写脚本/工具,好漏洞是你用AWVS等就能发现的?洗洗睡吧; Nmap,绝对不仅仅是端口扫描!几百个脚本;

漏洞利用

sqlmap,SQL注入利用最牛神器,没有之一; Metasploit,主机渗透框架,而Web层面上的就是知道创宇里的一些好玩意了(我可能在吹牛);

一些社工平台,好的都匿了; Hydra,爆破必备;

抓包工具

Wireshark,抓包必备; tcpdump,Linux下命令行抓包,结果可以给Wireshark分析;

大数据平台

ZoomEye,知道创宇开放的一个网络空间搜索引擎,搜搜组件就知道:ZoomEye(钟馗之眼); SHODAN, 老外开放的一个网络空间搜索引擎,搜搜主机设备就知道:SHODAN – Computer Search Engine; Google,:) 更多自己看看Kali Linux(老的是:BackTrack)。

节省生命推荐:熟练Linux众多命令+Vim。

工欲善其事必先利其器嘛,而且新人用了好兵器会更有成就感的。 切记:这些兵器,你不仅要知其然还得知其所以然,别堕落了哦。 三. 融入圈子 多结交些靠谱的黑客,搞搞基啦(不过别来真的,还有我好讨厌扯淡/水得不得了的人),微博(含:Twitter)、QQ、微信、知乎、博客等善于跟进,不仅学,也要分享,让大家知道你的存在,更有利于交流与成长。

零基础如何学习 Web 安全?的讨论,值得一看

兴趣才是你前进的动力,如果你只是觉得安全行业薪资高,好找工作才学

我劝你还是尽早放弃,真的不适合你【见过太多的案例了】

这条路上会很枯燥也会很有趣,看你是一个什么样的学习态度和花费的精力以及时间

喜欢就去做,去行动,就会有结果,或许结果并不是那么美好

但是你至少学会了很多,也会懂得很多

当你入门Web安全后,你就又会发现很多你的欠缺的知识

你开始想着去学习底层,学习C和C++,研究逆向,二进制

自己写POC,EXP,去写远控,研究免杀

甚至还想去挖掘操作系统的0day

来源:知乎

一入安全深似海,从此女友是路人

本文分享自微信公众号 - HACK学习呀(Hacker1961X)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • BurpSuite系列(十二)----User options模块(用户选择)

    选项3:Temporary Files Location 选项4:Proxy Interception 选项5:Performance Feedback

    HACK学习
  • 逆向工程——汇编基础[一]

    汇编语言是一种最接近计算机核心的编码语言。不同于任何高级语言,汇编语言几乎可以完全和机器语言一一对应。 汇编语言就是机器语言的一种可以被人读懂的形式,只不过它更...

    HACK学习
  • BurpSuite系列(十一)----Project options模块(项目选择)

    1.Connections 连接 2.HTTP 3.SSL 4.Sessions 5.Misc 杂项

    HACK学习
  • 【玩转腾讯云】腾讯云DDNS 解决方案(2)

    franket
  • BZOJ2199: [Usaco2011 Jan]奶牛议会(2-SAT)

    Description 由于对Farmer John的领导感到极其不悦,奶牛们退出了农场,组建了奶牛议会。议会以“每头牛 都可以获得自己想要的”为原则,建立了下...

    attack
  • 爬楼梯问题

    假设你现在正在爬楼梯,楼梯有 n 级。每次你只能爬 1 级或者 2 级,那么你有多少种方法爬到楼梯的顶部?

    ACM算法日常
  • 动态规划法(四)——0/1背包问题

    问题描述 有n个物体,重量分别是w0~wn-1,每个物体放入背包后可获得的收益分别为p0~pn-1,背包载重为M,且所有物体要么放要么不放,不能只放一部分。...

    大闲人柴毛毛
  • 蓝桥杯 李白打酒-递归

    请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。则:babaabbabbabbbb 就是合理的次序。像这样的答案一共有多少呢?请你计算出所有可能方案...

    用户4492257
  • Java中Httpsession是如何实现的?

      HTTP协议(http://www.w3.org/Protocols/)是“一次性单向”协议。 服务端不能主动连接客户端,只能被动等待并答复客户端请求。客...

    I Tech You_我教你
  • 通用型系统架构设计

    Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理、服务发现、断路器、智能路由、微代理、控制总...

    lyb-geek

扫码关注云+社区

领取腾讯云代金券