欢迎来到HDUISA wiki,如果这是你的第一次到来,请点击此处注册

相关说明

词条维护者:lightless、LoRexxr

本词条的所有内容都是学长亲身经验,绝不是没有营养的鸡汤,都是干货!!!

首先欢迎大家选择了安全这条路,这里会分享一些关于学习渗透如何入门方面的内容,并不会涉及到很多实质性的技巧,更多的是给大家提供一个学习的方向以及可以参考的信息。如果想为本词条作出贡献,请及时在维护者的后面加上您的ID,方便交流。

渗透测试,并不是日站,并不是日站,并不是日站。重要的事情说三遍,请大家不要自觉的将渗透测试与黑客划上等号的关系。渗透测试可以说涉及到了十分多的东西,本词条不会涵盖渗透测试的方方面面(可能这里更倾于WEB安全),但是会尽最大的可能让大家更容易入门。

这里也仅仅是给新人入门用的,请老司机自觉飘过,如果觉得哪里不对,请各位老司机补充。

我是零基础,应当如何入门?

首先这里有几个问题,请回答完继续向下阅读:

  1. 你会自学么?

    • A 自学个屁,没人教我就不学了。 -> 请退出安协
    • B 除了A选项,请继续向下答题 -> 2题
  2. 你畏惧读英文文献么,即便英文不好也会去用翻译软件一点一点读?

    • A 我特么最烦看英语了! -> 请选择其他方向入门
    • B 虽然我英文不好,但是看到英文文献不会畏惧 -> 3题
  3. 你遇到问题的时候,是否善于通过百度等方法进行解决?

    • A 什么特么的百度,有问题我就问别人 -> 4题
    • B 嗯,我会自己用搜索引擎解决的 -> 请继续阅读
    • C 我搜索不到了才会问别人 -> 4题
  4. 在你问问题的过程中,是否注意过问问题的礼仪?

    • A 注意过,我会把问题表述的很清楚,遇到的什么问题,尝试了什么方法,结果如何都会说清楚。 -> 请继续阅读
    • B 啥礼仪?问问题就一句话:这怎么弄? -> 请选择其他方向入门

这是很多人都会问到一个问题,没有基础如何学习安全,或者你们口中的日站之类的东西。这里有一张渗透的技能图,待整理好后我会补充上来。

首先,最重要的是学好编程学好编程学好编程(重要的事情说三遍)。我见过无数的兴趣满满的入门者都死到这里了,因为觉得编程没意思,然后就放弃了。编程语言像是和计算机交流的语言,如果不会和计算机交流,更别说挖漏洞和渗透了。之后呢,无论你学习啥,都要先打好基础。就像武侠小说中的内功一样,只要内功(基础知识)雄厚,无论将来学什么招式(各种技术、例如XSS、SQL注入等),用什么武器(各种工具),甚至是自己制作武器(自己编写脚本、工具),都会得心应手,也会让你在安全的路上越走越远。so,这里有几个建议给各位,先从编程开始入手学习,一定要弄明白自己到底想要的是什么,看清自己的内心。

关于编程方面呢,推荐以下两种语言:

  • C语言:你可以从C语言开始学习,但是请记住,无论你从哪个语言开始起家,最后一定要学过C语言
  • python:绝对是最好入门的语言了,没有之一。可以在很短时间内写出很实用的工具,也很推荐,但是请记住,以后一定要抽时间回来学习C语言
  • 不要看python入门了,因为这不适合做CS入门的!因为python没有接近底层硬件的部分,对于CS入门来说并不合适,而且没有掌握C++/JAVA这样的面向对象的程序设计思想是学不好的!

平常可以看一些关于安全的新闻,了解一下比较热门的安全技术,这样以后当你不知道学什么的时候,这些技术就是你要学的东西,但是请注意,一定要打好基础,不要急于求成,今天还在学1+1#2,怎么可能第二天就学会证明拉格朗日中值定理?相信大家都明白这个道理。

渗透的开始

渗透技能树

在渗透的开始之前,你首先需要有足够的web开发经验(这里渗透更多倾向于web安全),试问你连别人的代码都读不懂,还谈什么找出别人代码中的漏洞呢,这是不现实的!

一切一切的渗透,都是基于数据流的,所谓的数据流就是在web多个层间沟通的数据,这里我们简单的把web分为9层(加上浏览器)。

1、在上面的第一二层,也就是所谓的前端出现漏洞,我们可能会看到这样的数据:

"><script>alert(1)</script>

正如上面所说的,学习安全之前,你必须学开发,要看懂这段payload,你需要学会HTML/CSS/Javascript...

而上面这段数据,就是所谓的XSS(Cross-site request forgery)(什么是xss?左转进入web安全)

2、在上面的三四五层,也就是作为的后台,我们可能会看到这样的数据:

eval($_REQUEST['x']);

要看懂这段payload,你需要学会php

而这段数据,是文件上传漏洞,通过这个漏洞,巧妙地构造payload,我们甚至可以getshell。

3、在上面的第六层,也就是所谓的中间层,我们可能会看到这样的数据:

%c0.%c0./%c0.%c0./%c0.%c0./%c0.%c0./%20

这段数据是曾经一个DDos(分布式拒绝服务攻击)漏洞payload

4、在上面的第七层,数据库,我们可能会看到这样的数据:

' union select user, pwd, 1, 2, 3, 4 from users--

这段数据则代表着非常经典的SQL注入攻击,要理解这样的payload,你需要一定的SQL知识

5、在第八层,操作系统,则可能出现这样的数据:

; rm -rf /;

这段代码代表着OS命令注入,一旦出现这样的漏洞,服务器沦陷可能就在一瞬之间。

而渗透,就是在分析这段数据流在不同层被处理的时候发生了什么?会不会有问题?在不断的攻防与反攻防中,找寻被忽视的漏洞,这就是渗透的魅力所在...

关注业内新闻

大家刚刚入门,要多关注安全方面的新闻,从这些新闻啊之类的文章中可以学到很多新的东西,即便学不到也会听说到一些比较新的东西,对开阔视野有帮助。

  • http://www.freebuf.com
  • http://www.91ri.org
  • http://www.sec-wiki.com
  • http://bobao.360.cn
  • http://drops.vidar.club
  • etc

这里我只列出了很少一部分的网站列表,大家可以找一个自己喜欢的RSS阅读器,订阅一系列的网站,每天早起看看安全相关方面的内容,如果看到了很棒的博客,也可以进行订阅,这里推荐订阅安协学长们的博客,想要哪个学长的博客直接去问就好。从其中一个人的博客的友链中你能找到所有人的博客。

如果你不喜欢看新闻,可以刷微博、推特,很多大黑客喜欢在微博、推特上说一些新发现的东西。关于微博的关注列表,可以参考lightless同学的微博,从lightless关注的人里面挑出黑客关注一遍(如果你判断不出来哪个是大黑客的话,看看他们最近的微博内容是不是和安全有关)。

学习书籍推荐

  • 《白帽子讲web安全》
  • 《Web前端黑客技术揭秘》
  • 《XSS跨站脚本攻击剖析与防御》
  • 《SQL注入攻击与防御 第二版》
  • 《Python灰帽子》
  • 《黑客大曝光》
  • 待补充

进阶

我觉得我基础已经差不多了,接下来该学些什么?

是时候该学些新的东西了,个人推荐从WEB安全开始入手,为啥?因为好上手,见效快,日站爽!如果你觉得看满屏幕的010101010很帅(并不是)的话,那就去看看逆向中的pwn部分吧。

如果你按照上面说的,每天都关注了一些安全信息、安全漏洞等等,那你应该会知道很多术语了,这对后面的学习进步非常快的。接下来的事情就简单了,从《白帽子讲web安全》开始,仔细读书,实践每个例子,尝试着自己去挖漏洞,读别人的代码。

Programming • Vulnerability • Bypass • Exploit

以下内容摘自PHITHON大神博客

Programming

一个不会编程的hacker不是好hacker,努力提高编码水平,接触最前沿的代码思想,构架自己的平台框架。

Vulnerability

没有漏洞就没有安全,安全建立在发现漏洞与解决漏洞之间。世上没有完美的代码,也不会有零漏洞的程序。

Bypass

不断地绕过,不断地突破防御机制,考验的是一个安全研究者对于漏洞原理的理解,更是猥琐的思路。

Exploit

发现一个漏洞,你成功了70%;写出利用代码,完成剩下的30%。行百步者半九十。

然后?

渗透是一条你甚至需要穷尽一生去追逐的路,学的越多,懂得越多,才越发感觉到自己的无知,加油吧 (・ω・)ノ

打印/导出