《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 同学指出内容遗漏部分。