专业技能

原则

  • 至少完整看完与练习好一本书
  • 至少过一遍官方文档

基础必备

HTTP 抓包与调试

Firefox 插件

  • Firebug/Firecookie
    • 抓包与各种调试
  • Tamper Data
    • 拦截修改
  • Live HTTP Headers
    • 重放功能
  • HackBar
    • 编码解码/POST 提交
  • Modify Headers
  • 修改头部

Fiddler

  • 浏览器代理神器
  • 拦截请求或响应
  • 抓包
  • 重放
  • 模拟请求
  • 编码解码
  • 第三方扩展
    • Watcher
      • Web 前端安全的自动审计工具

Wireshark

  • 各种强大的过滤器语法

tcpdump

  • 命令行的类 Wireshark 抓包神器

Python

  • urllib2
    • 打开请求响应调试
      • 编辑 urllib2 的 do_open 里的 h.set_debuglevel
      • 改为 h.set_debuglevel(1),这时可以清晰看到请求响应数据,包括 HTTPS

什么是跳转

服务端跳转

  • 302
    • <?php header("Location: 3.php"); ?>
  • 301
    • <?php header("HTTP/1.1 301 Moved Permanently"); header("Location: 2.php"); ?>
  • u = urllib2.urlopen(url) 后,u.url 能得到服务端跳转后的地址
    • urllib2 自己的特性
    • 所谓的会跟进去

客户端跳转

  • <meta http-equiv="refresh" content="0; url=http://www.evilcos.me" />
    • htmlparse 解析就行了
  • location.href = "http:/" + "/evilcos.me";
    • 正则解析(弱)
    • JavaScript 引擎解析(强)

Office 能力

  • Word 文档编写,看去要专业,尤其对外的
  • Excel 里面大量的统计、图表功能,需要善于使用
  • PPT 演讲、培训等必备,如何做好 PPT?百度一下...
  • 进一步
    • yEd
    • Visio
    • Freemind
      • 本技能表就是这个制作

上手 Linux

  • 《鸟哥的 Linux 私房菜》

熟练 Vim

上手 Python

《Python 核心编程 2》

  • 第 4 章 Python 对象
    • 完整熟练
  • 6.8 Unicode
    • 完整熟练
  • 8.11 迭代器和 iter() 函数
    • 完整熟练
  • 第 9 章 文件的输入和输出
    • 完整熟练
  • 第 10 章 错误和异常
    • 完整熟练
  • 第 11 章 函数和函数式编程
    • 完整熟练
  • 第12章 模块
    • 完整熟练
  • 第14章 执行环境
    • 完整熟练
  • 第15章 正则表达式
    • 完整熟练
  • 第18章 多线程编程
    • 完整熟练
  • 20.2 使用 Python 进行 Web 应用:创建一个简单的 Web 客户端
    • 完整熟练

算法

  • 快排
  • 二分

正则表达式

研发能力

瀑布模型

  • 需求 -> 需求分析 -> 设计 -> 开发 -> 测试 -> 上线 -> 运维/运营

需求分析能力

  • 给你一个需求,如何给出一个优美的执行思路——方法论
  • 这个能力非常非常非常的关键

调试能力

  • 只要定位出,就没有解决不了的 Bugs
  • 肉眼看到的都是假象
    • 一定要专业的工具与经验配合
  • Bugs 在哪出现,最终就在哪进行真实模拟调试
  • 缩小范围
    • 构建自己的测试样例
      • 排除网络复杂未知情况
    • 关联模块一个个排除
    • Python 单步调试
      • import pdb; pdb.set_trace()
      • 在需要单步调试的地方加上面这句,运行程序后中断在此,然后h查看指令进行一步步细细调试
    • 粗暴调试:print

敏捷思想

  • 快速迭代
  • 任务拆细
  • v1原则:定义好 v1 的目标,快速完成 v1 为优先
  • 习惯 WiKi 记录,利于沉淀与分享

翻墙

Web 安全

Web 服务组件

8+1:一图胜千言哎:)

../_images/web_component.png

安全维度

  • 漏洞
  • 风险
  • 事件

Web 安全标准

  • OWASP
  • WASC

实战环境

SQL

Seebug + ZoomEye

工具

我的渗透利器

Firefox
  • Firebug
    • 调试 JavaScript,HTTP 请求响应观察,Cookie,DOM 树观察等
  • Tamper Data
    • 拦截修改
  • Live Http Header
    • 重放功能
  • Hackbar
    • 编码解码/POST 提交
  • Modify Headers
    • 修改头部
  • GreaseMonkey
    • Original Cookie Injector for Greasemonkey
  • NoScript
    • 进行一些 JavaScript 的阻断
  • AutoProxy
    • 翻墙必备
Chrome
  • F12
    • 打开开发者工具,功能 == Firebug + 本地存储观察等
  • SwichySharp
    • 翻墙必备
  • CookieHacker
Web 2.0 Hacking
HTTP 代理
  • Fiddler
    • 非常经典好用的 Web 调试代理工具
  • Burp Suite
    • 神器,不仅 HTTP 代理,还有爬虫、漏洞扫描、渗透、爆破等功能
  • mitmproxy
    • Python 写的,基于这个框架写神器实在太方便了
漏洞扫描
  • AWVS
    • 不仅漏扫方便,自带的一些小工具也好用
  • Nmap
    • 绝对不仅仅是端口扫描!几百个脚本
  • Python 自写脚本/工具
漏洞利用
  • sqlmap
    • SQL 注入利用最牛神器,没有之一
  • Metasploit
    • 最经典的渗透框架
  • Hydra
    • 爆破必备
抓包工具
  • Wireshark
    • 抓包必备
  • tcpdump
    • Linux 下命令行抓包,结果可以给 Wireshark 分析
Seebug + ZoomEye

Kali Linux

  • 除了上面介绍的一些工具,其他海量各类型黑客工具,自己去摸索

  • 《黑客攻防技术宝典(Web 实战篇)》
  • 《白帽子讲 Web 安全》
  • 《Web 前端黑客技术揭秘》
    • 余弦和 xisigr 自己出品
  • 《Web之困》
  • 《SQL 注入攻击与防御》

Papers

嵌入式安全

路由器安全

基础

  • 嵌入式 Linux 系统方面知识
  • 开发系统互联参考模型——第三层网络层
  • MIPS/ARM 汇编知识
  • VxWorks 系统方面知识
  • JTAG 调试接口规范
  • 嵌入式系统交叉环境开发
  • 路由器芯片方案提供商
    • 博通
    • Atheros
    • TrendChip
    • ACROSPEED
    • IC+
    • 瑞昱
    • ...

站点

工具

  • Binwalk
  • IDA Pro
  • gdb/gdbserver
  • qemu-system
  • qemu-user-static
  • Smiasm
  • Metasm
  • JTAG 硬件调试器

  • 《揭秘家用路由器 0day 漏洞挖掘技术》
  • 《Hacking the XBOX: An Introduction to Reverse Engineering》
  • 《Hacking the Cable Modem: What Cable Companies Don't Want You to Know》
  • 《MIPS 体系结构透视 》
  • 《计算机组成与设计:硬件、软件接口》

工控安全

基础

  • 工业生产环境的基本结构,如:SCADA、PCS
  • 工业生产环境的信息安全风险点(可参考 DHS 出版物)
    • Improving Industrial Control Systems Cybersecurity with Defense-In-Depth Strategies
  • 工控网络组态、逻辑开发、应用组态的基本技术方法
  • 抓包、看 RFC 分析几个常规工业以太网协议,如:Profinet、Modbus
  • 买两款 PLC 玩玩,会真实感受到工业环境的信息安全问题(一定记得买以太网模块,不贵二手几百块)

其它

zoomeye.org

研发清单

编码环境

Python

  • 官方手册
    • 至少过一遍,这都没过一遍,视野会局限
    • 行之说:「我没看过 Python 的书,却熟读官方手册……」

Linux/UNIX

    • 《鸟哥的 Linux 私房菜》
    • 《Linux Shell 脚本攻略》
    • 《UNIX 编程艺术》
    • 《Software Design 中文版 01》、《Software Design 中文版 02》、《Software Design 中文版 03》
  • 让你的电脑默认操作系统就是Linux...

前端

  • 《JavaScript DOM 编程艺术》

了解 DOM

  • 这同样是搞好前端安全的必要基础

  • jQuery
    • 优秀的插件应该体验一遍,并做些尝试
    • 官方文档得过一遍
  • D3.js
  • ECharts
    • 来自百度
  • Google API
  • ZoomEye Map 组件
    • ZoomEye 团队自己基于开源的打造
  • AngularJS
    • Google 出品的颠覆性前端框架
  • Bootstrap
    • 应该使用一遍

爬虫进阶

  • 代理池
    • 爬虫「稳定」需要
  • 网络请求
    • wget/curl
    • urllib2/httplib2/requests
    • Scrapy
  • 验证码破解
    • pytesser

调度

  • crontab 是最原生的定时调度
  • 基于 Redis 实现的分布式调度
  • 基于 RPyC 实现的分布式调度
  • Celery/Gearman 等调度框架

并发

  • 线程池
    • 进程内优美的并发方案
  • 协程
    • 进程内另一种优美的并发方案
    • gevent
  • 多进程
    • os.fork
    • multiprocessing

数据结构

  • JSON
  • cPickle
  • protobuf

数据库

  • MySQL
  • MongoDB
  • Cassandra
  • Hadoop 体系
  • Redis
  • SQLite
  • bsddb
  • ElasticSearch

大数据处理

  • Hive
  • Spark
  • ELK
    • ElasticSearch
    • Logstash
    • Kibana

DevOps

调试

算法

  • 分词
  • 贝叶斯
  • 神经元
  • 遗传算法
  • 聚类/分类
  • ...

持续集成

  • 自测试
    • nose
  • Jenkins

协作

  • 类似 Trello 的在线协同平台
  • Slack
  • 微信
  • 立会

设计思想

  • 人人都是架构师:具备架构思想是一件多酷的事
  • 实战出真知
  • 如何设计
    • 任务架构设计变迁.pptx
    • 松耦合、紧内聚
    • 单元与单元属性
    • 生产者与消费者
    • 结构
      • 队列
      • LRU
    • 分布式
      • 存储
      • 计算
    • 资源考虑
      • CPU
      • 内存
      • 带宽
    • 粗暴美学/暴力美学
      • 大数据,先考虑 run it,然后才能知道规律在哪
      • “run it 优先”能快速打通整体,洞察问题
      • “run it 优先”能摆脱细节(繁枝末节)的束缚
      • “run it 优先”能快速迭代出伟大的 v1
    • 一个字总结

牛人 1, 2, 3

  • 1 研究:研究东西,有足够洞察力,研究水准不错
  • 2 研发:Hack Idea 自己有魄力实现,不懂研发的黑客如同不会游泳的海盗
  • 3 工程:研发出来的需要实战、需要工程化,否则只是玩具,而不能成为真的武器