71 个回答

黑客也分很多领域,这里先不讲门槛较高的系统领域的安全【因为我也不会……】,讲下Web下的安全。

首先大喊一句!Python大法好!

零基础的话建议从Python这种语法简单脚本语言入门,Python入门可以看这里。

Python教程,简明 Python 教程。

好的,当你入门Python语法后你可以去阅读那些dalao们写的库,论对一个网站渗透首先应该收集他的信息,因为只有收集一个网站信息才能针对攻击。那么Python爬虫就是一大利器,利用爬虫收集一个网站的架构是非常重要的。首先是大名鼎鼎的Scrapy。scrapy/scrapy

当然这里不讲scrapy,因为我比较喜欢用Python3,有请 非转基因的 Python HTTP 库 requests!

Requests: 让 HTTP 服务人类 以及美味汤!Beautiful Soup 4.4.0 文档 ,利用Requests和Beautiful Soup可以爬到一个网站的架构,比如你想识别网站指纹信息,你可以用提取出的文档进行正则表达式匹配,尝试匹配下面Dom节点

<meta name="generator" content="Discuz! X3.3" />

又或者可以去尝试访问下网站的robots.txt,查看是否有敏感目录,或者暴露了CMS。

嗅探一个网站的IP时候可以用Ping hostname.com 这种方法,或者用nslookup hostname.com dns,不过现在大多数使用了CDN,真实IP也不是很好找了。当然这些操作可以集成到你的Python脚本里。IP找完,可以尝试找找开放了哪些端口,在Python脚本里造一个端口List,然后使用secdev/scapy进行发包 FB上有这么一篇文章很不错 [如何用Scapy写一个端口扫描器? - FreeBuf.COM | 关注黑客与极客] 最后Requests.headers里可以在响应包里找到Server名字。做完了这些你想找下网站的后台路径,又或者你找到了登入点想爆破他但苦于没有字典,看这里 rootphantomer/Blasting_dictionary Requests就可以做到,记得要用Proxies选项。

说到黑客你第一联想是什么,大概就是DDos吧【《破坏之王ddos攻击与防范深度剖析》】感觉电视报道老是有这个名词。你会使用Requests疯狂进行Sql查询请求,你会使用Scapy库进行Syn泛洪攻击,但你总感觉少了点什么。没错作为黑客掌握TCP/IP协议是非常重要的 《TCP/IP详解 卷一》, 当然我承认这本书有些枯燥,所以我们使用Wireshark配合食用,一边分析一边学习。关于那本HTTP圣经实在太厚了,以后说不准你还会当砖头敲人:) 所以我推荐了解Http协议看这本 《图解http》当然你有兴趣的话看下《CCNA学习指南》也是很好的。

关于嗅探方面其实前人早就写出了超强的工具,比如Nmap,Whatweb,知道创宇的ZoomEye也是非常厉害的工具,有兴趣可以自己找资料学习。这里要讲下为什么渗透前要收集信息,一个网站可以由很多模块组成,假如一个模块出现了漏洞,那么整个系统就会遭殃,毕竟通往权限的路不止一条[括弧笑],如果这个网站的服务器版本过老,那么你可以用网上存在的0day攻击,分分钟教他做人,其他模块同理。你甚至可以模拟一个网站的搭建环境,自己本地测试 【过多请求人家直接ban了你,你也就干瞪眼了23333】

接下来讲下OWASP几个高危问题吧,Sql注入,以前非常l普通的高危漏洞,现在基本没啥了。我认为原理在于输入点,未净化用户输入的内容,将数据以命令的方式进行执行,简单来说你就在一个输入点不停执行sql查询命令,把这个网站什么用户信息,什么密码都给倒出来。Sqlmap应该是sql注入最强大的工具了,网上有很多食用资料。Github有源码可以自己阅读,学习payload sqlmapproject/sqlmap ,看完怕不是通杀Sql注入漏洞。当然你也可以写个Python脚本自己简单检测下网站是否存在sql注入,然后用sqlmapapi进行批量执行。

XSS,关于这个需要有一定的javascript基础,推荐看 《javascript dom编程艺术》,我认为,xss也是对输入点未净化造成的,比如

<input value="你可以控制的地方" />

这个地方value是你可以控制闭合的。前提是未过滤,这样你就可以腾出来空间执行自己脚本,当然xss这玩意姿势很多,我一个菜鸟就不献丑了,推荐这里 华西安全网--wooyun漏洞报告平台搜索--乌云WooYun镜像站 作者良心啊!

长短短在Github上分享了他的xss思路图,我不知道能不能贴出来就先不贴了……

至于其他类似逻辑漏洞和路径遍历等等漏洞,一会在下面列出的书去学习吧 :)

说下工具吧,sql注入的神器 Sqlmap,收发包神器Burpsuite,

其实安装个kali linux比较方便,集成了很多安全工具,更有Metasploit大名鼎鼎的渗透框架。

嘛。linux学习肯定是必要的,当然初期我认为能使用常用命令就足够了。《鸟哥linux的私房菜》可以当字典翻阅,没事还能垫枕头,实在不行还能砸人。

当然零基础跟着一本书学习是很好主意。

重点讲了前端安全问题的大作! 《web前端黑客技术揭秘》

能够打开你的任督二脉倚天屠龙之作 《黑客攻防技术宝典 web实战篇》

能让你Python信仰加成的 《Python黑帽子》

你也许想像电影里的黑客那么炫酷的 《Metasploit渗透测试魔鬼训练营》

周末闲暇时光不如来一本 《社会工程:安全体系中的人性漏洞 》

最后一本 《黑客从入门到放弃》:-P

推荐一下Github上有助于新手的项目

We5ter/Scanners-Box

以及曾经的光芒

华西安全网--wooyun漏洞报告平台搜索--乌云WooYun镜像站

闲暇之余为什么不去FB喝杯酒呢

FreeBuf.COM | 关注黑客与极客







如果有错误请各位dalao指出。想到也就那么多了吧,以后想到什么再更新。求赞 (づ ̄ ³ ̄)づ

零基础的话,有两个建议:
  1. 找到自己想黑的目标。
  2. 在一段时间内完全投入进去,研究一切你可以接触的资料,穷尽分析你遇到的每一个状况。
讲一个多年前的亲身经历:

大二时,参加学校的数模竞赛,题目是啥我都忘了,只记得并不是原创的,在 Google 上搜索能搜到一些信息,但都仅限于题目本身,没有解题思路更没有答案。

不过搜索结果中,有一条链接引起了我的兴趣。链接指向的北师大数学学院的学生作业提交系统,而该页面所描述的题目正好就是一个类似题目,如果能拿到学生们提交的作业该多好啊,那时我想到。

在那个晚上之前,虽然有一点写代码的经验,但完全没有接触过黑客相关的技术,所以什么扫漏洞、埋马、爆库啥的肯定是别想了。

但不想放弃啊,研究了一下这个作业提交系统,发现有一个注册入口。抱着研究的心态,进入了注册流程,其中用户名部分要求填写学号,当时脑子抽风居然填了我在自己学校的学号进去。想必对于专业黑客来说,得笑话了,这不是留下踪迹嘛。但正因为这个举动,最终让我获取了想得到的信息。

用自己的学号注册成功后,就进入到了作业提交系统里,功能很简单,上传作业,查看状态,查看已提交的作业。凭我的能力,从上传作业这里找到漏洞进行攻击是不可能啦;查看状态也没什么用;查看已提交的作业,看起来也没啥突破点,毕竟只能查看自己的作业。

山穷水尽了?还记得前面建议里提到的第二点吗?「穷尽分析你遇到的每一个状况」。

手贱点开「查看已提交的作业」,界面类似于文件浏览器。里面按照作业题目建立了不同的文件夹,用来存放提交的作业。等等,我这不是新建的帐号么,怎么有三个文件夹?难道是默认创建的空文件夹?点进去一个文件夹,发现下面有一个 PDF,下载打开,是一个学生提交的作业内容。

对于有经验的黑客来说,看到这里应该能想到这个系统的突破点在哪了。但对于当时不具备这种思路的我来说,还没有意识到这意味着什么。只是纳闷怎么新创建的帐号里面就有文件了。一开始想到的解释是:「这些是示例文件,给所有学生的模板」「有一些文件可以公开共享」「系统有 bug」。

前面两个解释对我来说都没多大用,因为这三个文件夹对应的题目没有我想找的那道题。对着屏幕抓头之际,开始考虑这个系统有怎样的 bug 才会导致新账号能看到文件。

然后,就像柯南破案时画面中闪过的闪电,嗖的一下,前后几个线索一下就联系起来了。迅速注册了几个新账号来验证这个想法,果真如此,没多久就拿到想要的那道题目的作业。

那么这个想法到底是啥呢?说起来也确实很奇葩:
  1. 该系统的设计者在写注册新账号逻辑时,居然没有校验新账号中的学号之前是不是已经在数据库存在。
  2. 貌似其数据库没有自增的 id 作为主键,而是直接用学号作为每一行的主键标识。
  3. 北师大的学号规则居然恰好和我校是一样的。
  4. 综上,得出一个结论:注册新账号时,如果填写了之前就存在的学号,那么系统将把你填写的密码覆盖到之前的那行数据上。相当于直接拥有了之前那个学号的所有权限。注册新账号功能,变成了一个随意重置密码的功能,也是够了……
  5. 北师大的学号与对应学院的关系,在网上很容易搜出来,什么运动会获奖公告、奖学金发放公告啥的。
  6. 大致看了看那道题目的发布时间,构造了几个当时在读的数学学院不同年级的学号,在其中一个大三的帐号里发现了作业内容。
所以你看,要黑一个系统,不一定要去下一堆工具把自己搞成肉机,也不一定要写代码。关键是你对于目标的研究是否透彻,能否提出假设,并去实践。

这个研究和实践的过程,才是最大的乐趣。远比你拿个暴力工具突突突好玩多了。