PoC 编写指南(第 1 章 技能基础)

《PoC 编写指南》现已经同步至 gitbook,博客和 gitbook 会同步更新,地址: http://poc.evalbug.com/

第 1 章 技能基础

网络基础

为什么要学网络

安全界不缺乏有一些人连计算机网络是什么都不清楚,但是拿站,渗透一搞一个准。然而像我这种整天把基础知识挂在嘴边的人,拿站的时候照样怂。基础知识在我看来,是种常识,是种工具,不能说不会基础知识的人就一定不能怎么样,我只能说,我建议,我推荐,我支持先从基础学起来,这样在后面的学习当中就会如鱼得水。

需要学什么

对于写 PoC 来说,我们需要的并不是你去把 OSI 7 层模型的每一层都精通,你要精通了所有层的东西,你就不会坐在这里了。

好了,大概说一下我们需要了解哪些,相关的专业知识你可以去百度我不浪费时间了

  • 请求响应配对
  • 域名系统
  • IP 地址
  • TCP 是做什么的
  • HTTP 协议(请重点关注这个,后面很多地方都会用到)
  • 没想好,后面慢慢补

编码基础

编码基础这里不要求你精通, 毕竟一开始就深化了一下 PoC 的概念,他就是一个不完整的程序,所以你只要会一些常用的就 OK, 不要说你不会这种话,不会可以花一点时间来学,放心,根本不需要你达到一个什么样的深度。

那我就大概写一下需要学什么东西了:

  • HTML

    这里不单是看 HTML 语言,更多的要去理解什么是浏览器。你看到的漂亮的不像实力派的网页,在传输的时候是什么样子的,浏览器在接收到响应之后大概做了点什么事。

  • Javascript

    想学 XSS, CSRF 不会这两个可不行。

  • Python

    我们后面写 PoC 会用到,所以这个要必会。这里只需要你会一点点 Python 的语法和一些常用的功能库就够了。

  • SQL

    你要是连 SQL 都不知道是什么,还在这给别人讲 SQL 注入,我就呵呵哒了。

  • 正则表达式

    自动化过程中经常需要自动匹配,不需要精通,但是要多多少少会一些。怎么测试你会了呢?我给你任意一个 wooyun 的漏洞页面,然后你能用脚本把里面的漏洞标题,作者,漏洞提交时间等等信息能够轻松用正则表达式提取出来,呐,这样就 OK 了。

关于 Python 的一些库

  • urllib
  • urllib2
  • requests

    发送 HTTP 请求的,当然还有一些我没提到的

  • urlparse

    处理 url 的

  • re

    正则表达式

  • random

    看名字就知道是生成随机数的

  • hashlib

    md5 算法帮你集成在这里了

  • base64

    base64 编码全家福都在这里

  • socket

    如果你知道 TCP 和 HTTP 的关系的话,你就能理解 socket 和 urllib 的关系了。

下一章还是直接进入重点吧。


2015/12/29 感谢 v5pingan 同学指出内容遗漏部分。