diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index d0d0f99..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-*.log
-*.temp
-/_site
diff --git a/.idea/fa1conz.github.io.iml b/.idea/fa1conz.github.io.iml
deleted file mode 100644
index c956989..0000000
--- a/.idea/fa1conz.github.io.iml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 28a804d..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 6c8eab0..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
deleted file mode 100644
index dbdd263..0000000
--- a/.idea/workspace.xml
+++ /dev/null
@@ -1,401 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- huxblog-boilerplate
- Boilerplate
- hux
-
-
- fa1conz.github.io
-
-
-
-
-
-
-
-
-
-
-
- true
- DEFINITION_ORDER
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1541580167605
-
-
- 1541580167605
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/_config.yml b/_config.yml
index 065c317..aeac841 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,6 +1,6 @@
# Site settings
title: FalconZhou's Blog
-SEOTitle: Fz的博客 | Fz's Blog
+SEOTitle: Fz的博客 | Fz's Blog | Falcon | FalconZhou
header-img: img/home-bg.jpg
email: falcon.zjx1225@gmail.com
description: ""
@@ -13,10 +13,10 @@ keyword: ""
# SNS settings
RSS: false
#weibo_username:
-#zhihu_username:
-github_username: FalconZhou
+zhihu_username: zhou-jing-xuan-19
+github_username: FalconZhou
#twitter_username:
-facebook_username: Jingxuan Zhou
+#facebook_username: Jingxuan Zhou
@@ -50,19 +50,18 @@ kramdown:
#disqus_username: _your_disqus_short_name_
# disqus settings(https://disqus.com/)
-disqus_username: jingxuanzhou
+#disqus_username: jingxuanzhou
# Share component is depend on Comment so we can NOT use share only.
-disqus_share: true # set to false if you want to use Comment without Sharing
+#disqus_share: true # set to false if you want to use Comment without Sharing
# Analytics settings
# Baidu Analytics
-#ba_track_id:
+ba_track_id: bc8e534c618f7bbdcbaa02c8ff7a64f4
# Google Analytics
-#ga_track_id: 'UA-49627206-1' # Format: UA-xxxxxx-xx
-#ga_domain: huangxuan.me
+ga_track_id: 'UA-128874333-1' # Format: UA-xxxxxx-xx
@@ -84,17 +83,21 @@ friends: [
{
title: "Hux Blog",
href: "http://huangxuan.me"
- },{
- title: "Foo",
- href: "#"
- },{
- title: "Bar",
- href: "#"
- },{
- title: "Example Friends",
- href: "#"
- },{
- title: "It helps SEO",
- href: "#"
+# },{
+# title: "Foo",
+# href: "#"
+# },{
+# title: "Bar",
+# href: "#"
+# },{
+# title: "Example Friends",
+# href: "#"
+# },{
+# title: "It helps SEO",
+# href: "#"
}
]
+
+# Timezone
+timezone: Asia/Shanghai
+future: true
\ No newline at end of file
diff --git a/_includes/footer.html b/_includes/footer.html
index d3b72ab..cf780e3 100644
--- a/_includes/footer.html
+++ b/_includes/footer.html
@@ -94,7 +94,7 @@
-
+//
{% endif %}
diff --git a/_layouts/keynote.html b/_layouts/keynote.html
index 16da328..4c98127 100644
--- a/_layouts/keynote.html
+++ b/_layouts/keynote.html
@@ -59,29 +59,7 @@
{{ page.subtitle }}
- {% if site.duoshuo_share && site.duoshuo_username %}
-
-
-
-
- {% endif %}
+
- {% if site.duoshuo_username %}
-
-
-
- {% endif %}
- {% if site.disqus_username %}
-
-
-
- {% endif %}
+
+
+
+
+
+
+
+
+
@@ -182,43 +150,25 @@ FRIENDS
resize();
-{% if site.duoshuo_username %}
-
-
-
-{% endif %}
-{% if site.disqus_username %}
-
-
-
-{% endif %}
+
+
+
+
+
+
+
+
{% if site.anchorjs %}
diff --git a/_layouts/post.html b/_layouts/post.html
index b22980f..0e4c3c5 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -51,30 +51,7 @@ {{ page.subtitle }}
- {% if site.duoshuo_share && site.duoshuo_username %}
-
-
-
-
- {% endif %}
+
- {% if site.duoshuo_username %}
-
-
-
- {% endif %}
-
- {% if site.disqus_username %}
-
-
-
- {% endif %}
+
+
+
+
+
+
+
@@ -151,43 +116,24 @@ FRIENDS
-{% if site.duoshuo_username %}
-
-
-
-{% endif %}
-{% if site.disqus_username %}
-
-
-
-{% endif %}
+
+
+
+
+
+
+
+
{% if site.anchorjs %}
diff --git a/_posts/2014-01-29-hello-2015.markdown b/_posts/2014-01-29-hello-2015.markdown
deleted file mode 100644
index ef0252c..0000000
--- a/_posts/2014-01-29-hello-2015.markdown
+++ /dev/null
@@ -1,79 +0,0 @@
----
-layout: post
-title: "Welcome to Hux Blog"
-subtitle: " \"Hello World, Hello Blog\""
-date: 2015-01-29 12:00:00
-author: "Hux"
-header-img: "img/post-bg-2015.jpg"
-tags:
- - 生活
----
-
-> “Yeah It's on. ”
-
-
-## 前言
-
-Hux 的 Blog 就这么开通了。
-
-[跳过废话,直接看技术实现 ](#build)
-
-
-
-2015 年,Hux 总算有个地方可以好好写点东西了。
-
-
-作为一个程序员, Blog 这种轮子要是挂在大众博客程序上就太没意思了。一是觉得大部分 Blog 服务都太丑,二是觉得不能随便定制不好玩。之前因为太懒没有折腾,结果就一直连个写 Blog 的地儿都没有。
-
-在玩了一段时间知乎之后,答题的快感又激起了我开博客的冲动。之前的[个人网站](http://huangxuan.me/portfolio)是作品集形式的(现在集成进来了),并不适合用来写博文,一不做二不休,花一天搞一个吧!
-
-
-
----
-
-## 正文
-
-接下来说说搭建这个博客的技术细节。
-
-正好之前就有关注过 [GitHub Pages](https://pages.github.com/) + [Jekyll](http://jekyllrb.com/) 快速 Building Blog 的技术方案,非常轻松时尚。
-
-其优点非常明显:
-
-* **Markdown** 带来的优雅写作体验
-* 非常熟悉的 Git workflow ,**Git Commit 即 Blog Post**
-* 利用 GitHub Pages 的域名和免费无限空间,不用自己折腾主机
- * 如果需要自定义域名,也只需要简单改改 DNS 加个 CNAME 就好了
-* Jekyll 的自定制非常容易,基本就是个模版引擎
-
-
-本来觉得最大的缺点可能是 GitHub 在国内访问起来太慢,所以第二天一起床就到 GitCafe(Chinese GitHub Copy) 迁移了一个[镜像](http://huxpro.gitcafe.io)出来,结果还是巨慢。
-
-哥哥可是个前端好嘛! 果断开 Chrome DevTool 查了下网络请求,原来是 **pending 在了 Google Fonts** 上,页面渲染一直被阻塞到请求超时为止,难怪这么慢。
-忍痛割爱,只好把 Web Fonts 去了(反正超时看到的也只能是 fallback ),果然一下就正常了,而且 GitHub 和 GitCafe 对比并没有感受到明显的速度差异,虽然 github 的 ping 值明显要高一些,达到了 300ms,于是用 DNSPOD 优化了一下速度。
-
-
-
----
-
-配置的过程中也没遇到什么坑,基本就是 Git 的流程,相当顺手
-
-大的 Jekyll 主题上直接 fork 了 Clean Blog(这个主题也相当有名,就不多赘述了。唯一的缺点大概就是没有标签支持,于是我给它补上了。)
-
-本地调试环境需要 `gem install jekyll`,结果 rubygem 的源居然被墙了……后来手动改成了我大淘宝的镜像源才成功
-
-Theme 的 CSS 是基于 Bootstrap 定制的,看得不爽的地方直接在 Less 里改就好了(平时更习惯 SCSS 些),**不过其实我一直觉得 Bootstrap 在移动端的体验做得相当一般,比我在淘宝参与的团队 CSS 框架差多了……**所以为了体验,也补了不少 CSS 进去
-
-最后就进入了耗时反而最长的**做图、写字**阶段,也算是进入了**写博客**的正轨,因为是类似 Hack Day 的方式去搭这个站的,所以折腾折腾着大半夜就过去了。
-
-第二天考虑中文字体的渲染,fork 了 [Type is Beautiful](http://www.typeisbeautiful.com/) 的 `font` CSS,调整了字号,适配了 Win 的渣渲染,中英文混排效果好多了。
-
-
-## 后记
-
-回顾这个博客的诞生,纯粹是出于个人兴趣。在知乎相关问题上回答并获得一定的 star 后,我决定把这个博客主题当作一个小小的开源项目来维护。
-
-在经历 v1.0 - v1.5 的蜕变后,这个博客主题愈发完整,不但增加了诸多 UI 层的优化(opinionated);在代码层面,更加丰富的配置项也使得这个主题拥有了更好的灵活性与可拓展性。而作为一个开源项目,我也积极的为其完善文档与解决 issue。
-
-如果你恰好逛到了这里,希望你也能喜欢这个博客主题。
-
-—— Hux 后记于 2015.10
diff --git a/_posts/2018-11-01-Markdown-grammar.markdown b/_posts/2018-11-01-Markdown-grammar.markdown
new file mode 100644
index 0000000..3988b0b
--- /dev/null
+++ b/_posts/2018-11-01-Markdown-grammar.markdown
@@ -0,0 +1,195 @@
+---
+layout: post
+title: "Markdown常用语法"
+subtitle: "\"Hello world.\""
+date: 2018-11-01 13:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - Markdown
+---
+
+[ TOC ]
+
+# 标题
+语法:#
+
+注:# 后保持空格,几级标题用几个#
+
+# 分级标题
+语法:====或----
+
+注:= - 最少可以只写一个,兼容性一般
+
+
+# 目录 TOC table of contents
+语法:[TOC]
+
+注:根据标题生成目录,兼容性一般
+
+# 引用
+语法:>
+
+# 行内标记
+语法:``
+
+注:用 ` 标记代码块将变成一行
+
+# 代码块
+语法1:三引号``````
+
+语法2:Tab缩进
+
+语法3:自定义语法,在三引号头添加Codename,根据不同的语言配置不同的代码着色。
+
+# 插入链接
+语法1:内链式
+
+```
+[百度1](http://www.baidu.com/" 百度一下"){:target="_blank"}
+```
+
+语法2:引用式
+
+```
+[百度2][2]{:target="_blank"}
+[2]: http://www.baidu.com/ "百度二下"
+```
+
+
+# 插入图片
+语法1:内链式
+```
+
+```
+
+语法2:引用式
+```
+![name][01]
+[01]: ./01.png '描述'
+```
+
+# 插入带链接图片
+语法1:内链式
+```
+[](http://www.baidu.com){:target="_blank"}
+```
+语法2:引用式
+```
+[][5]{:target="_blank"}
+```
+
+
+# 序表
+语法1:有序:
+
+```
+1. one
+2. two
+3. three
+```
+
+注:序列.后 保持空格
+
+语法2:无序
+```
+* one
+* two
+* three
+```
+
+# 任务列表
+语法:
+```
+- [x] test1
+- [ ] test2
+```
+
+# 表格
+
+注: : 代表对齐方式 ,** : 与 | 之间不要有空格**,否则对齐会有些不兼容
+
+```
+| a | b | c |
+|:-------:|:------------- | ----------:|
+| 居中 | 左对齐 | 右对齐 |
+|=========|===============|============|
+```
+
+简约写法:
+```
+a | b | c
+:-:|:- |-:
+ 居中 | 左对齐 | 右对齐
+============|=================|=============
+```
+
+特殊表格:一般对合并单元格,以及其他特殊格式表格,markdown 是无能为力的。所以常规的做法是使用HTML标签,但是这样的编写效率极低。
+
+# 语义标记
+
+描述 | 效果 | 代码
+:-|:-|:-
+斜体|*斜体*|`*斜体*`
+斜体|_斜体_|`_斜体_`
+加粗|**加粗**|`**加粗**`
+加粗+斜体|***加粗+斜体***|`***加粗+斜体***`
+加粗+斜体|**_加粗+斜体_**|`**_加粗+斜体_**`
+删除线|~~删除线~~|`~~删除线~~`
+
+# 语义标签
+描述 | 效果 | 代码
+:-|:-|:-
+斜体|斜体|`斜体`
+加粗|加粗|`加粗`
+强调|强调|`强调`
+上标|Za|`Za`
+下标|Za|`Za`
+键盘文本|Ctrl|`Ctrl`
+
+# 格式化文本
+语法:
+```
+
+```
+
+# 公式
+注:1个$左对齐,2个居中
+语法:
+$$ x \href{why-equal.html}{=} y^2 + 1 $$
+
+$ x = {-b \pm \sqrt{b^2-4ac} \over 2a}. $
+
+# 分隔符
+语法:最少三个 --- 或 ***或 * * *
+
+# 脚注
+语法:
+```
+Markdown[^1]
+[^1]: Markdown是一种纯文本标记语言 // 在文章最后面显示脚注
+```
+
+# 锚点
+代码
+语法:
+```
+[公式标题锚点](#1)
+### [需要跳转的目录] {#1} // 方括号后保持空格
+```
+注:只有标题支持锚点, 跳转目录方括号后 保持空格
+
+# 定义型列表
+
+```
+Markdown
+: 轻量级文本标记语言,可以转换成html,pdf等格式 // 开头一个`:` + `Tab` 或 四个空格
+
+代码块定义
+: 代码块定义……
+
+ var a = 10; // 保持空一行与 递进缩进
+```
+
+
+
diff --git a/_posts/2018-11-01-my-first-blog.md b/_posts/2018-11-01-my-first-blog.md
new file mode 100644
index 0000000..c40e7b7
--- /dev/null
+++ b/_posts/2018-11-01-my-first-blog.md
@@ -0,0 +1,21 @@
+---
+layout: post
+title: "Welcome to Fz\'s Blog"
+subtitle: "\"Hello world.\""
+date: 2018-11-01 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - 生活
+---
+
+> hello!!
+
+
+以前一直用印象笔记和有道云笔记作学习笔记,笔记质量不高。
+
+作为第一个blog,希望能坚持下去。
+
+我会陆续将原笔记进行整理并上传。
+
+
diff --git a/_posts/2018-11-02-MacOS-Homebrew-write-privilege.md b/_posts/2018-11-02-MacOS-Homebrew-write-privilege.md
new file mode 100644
index 0000000..763d58e
--- /dev/null
+++ b/_posts/2018-11-02-MacOS-Homebrew-write-privilege.md
@@ -0,0 +1,76 @@
+---
+layout: post
+title: "MacOS Homebrew 关于/usr/local写入权限无法修改的问题解决记录"
+subtitle: "MacOS Homebrew"
+date: 2018-11-02 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - MacOS
+ - Homebrew
+---
+
+## 问题
+在使用brew命令的时候,会遇到错误提示
+`Error:/usr/local is not writable.`
+
+并建议执行命令:
+`$ sudo chown -R $(whoami) /usr/local`
+
+执行权限修改命令,系统会提
+`chown: /usr/local: Operation not permitted`
+
+现在问题就卡住了,因为执行`brew update`之类的命令,需要对`/usr/local`进行写入操作。但是操作用户无法像对普通文件夹操作一样,通过`chown`获得`write`权限。由于`/usr/local`是系统文件夹,macOS限制了对其的操作权限。
+
+归根到底,是下面的机制在作怪:
+
+`Rootless`
+
+苹果从 `OS X El Capitan 10.11` 系统开始使用了 `Rootless` 机制,可以将该机制理解为一个更高等级的系统的内核保护措施,系统默认将会锁定 `/system`、`/sbin`、`/usr` 这三个目录。
+
+## 问题解决
+
+找到问题所在,处理就方便了。
+
+在终端输入
+
+`$ csrutil status`
+
+收到系统提示
+
+`System Integrity Protection status:enabled`
+
+说明`Rootless`默认打开,此时无法通过`sudo`命令,对`/system`、`/sbin`、`/usr` 这三个目录进行修改。
+
+### 打开、关闭Rootless机制
+
+1. 重启 Mac
+2. 开机时后按下 Command+R,进入恢复模式。
+3. 在上面的菜单实用工具中找到并打开 Terminal
+4. 输入命令: `$ csrutil disable`
+5. 此时rootless已经关闭,退出恢复模式,正常进入系统。
+
+
+在终端输入
+
+`$ csrutil status`
+
+收到系统提示
+
+`System Integrity Protection status:disabled`
+
+rootless已关闭,可通过
+
+`$ sudo chown -R $(whoami) /usr/local`
+
+修改local权限。
+
+## 后记
+
+建议修改完成之后,为了系统安全,将rootless重新开启。开启方式同关闭方式一样,在恢复模式的Terminal输入:
+
+`$ csrutil enable`
+
+邮箱:
+
+欢迎转载,请注明出处,谢谢。
diff --git a/_posts/2018-11-07-my-first-blog.markdown b/_posts/2018-11-07-my-first-blog.markdown
deleted file mode 100644
index e25ec5a..0000000
--- a/_posts/2018-11-07-my-first-blog.markdown
+++ /dev/null
@@ -1,11 +0,0 @@
----
-layout: post
-title: "Welcome to Fz's Blog"
-subtitle: "Hello world."
-date: 2018-11-7 18:00:00
-author: "Fa1ConZ"
-header-img: "img/post-bg-2015.jpg"
-tags:
- - Life
----
-
diff --git a/_posts/2018-11-09-OpenVas(1)-OpenVas-install.markdown b/_posts/2018-11-09-OpenVas(1)-OpenVas-install.markdown
new file mode 100644
index 0000000..0cdf232
--- /dev/null
+++ b/_posts/2018-11-09-OpenVas(1)-OpenVas-install.markdown
@@ -0,0 +1,134 @@
+---
+layout: post
+title: "OpenVas(1)-OpenVas安装"
+subtitle: "OpenVas"
+date: 2018-11-09 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - OpenVas
+---
+
+参考文档:http://blog.51cto.com/linhong/2134910?source=drh
+
+---
+[ TOC ]
+
+---
+# 安装环境
+
+- MacOS 10.14
+- VMware Funsion 8
+- 4.18.0-kali2-amd64
+
+## 替换源
+kali自带源国内访问比较慢,所以更新为国内aliyun的镜像源。
+
+> vim /etc/apt/sources.list
+
+将其余部分都注释掉,在尾部添加以下部分:
+```
+ deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
+ deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
+```
+
+## 更新
+
+> apt-get clean
+
+下面三条命令多执行几次,对系统自带软件进行更新。
+
+> apt-get update
+
+> apt-get upgrade
+
+> apt-get dist-upgrade
+
+
+
+# 安装OpenVas
+
+新版本的kali系统并没有自带OpenVas,所以需要手动进行安装:
+
+## OpenVas安装包及依赖环境下载
+
+> apt-get install openvas*
+
+涉及依赖环境较多,且安装包较大,所以需要等待较长时间。
+
+## 初始化OpenVas
+
+> openvas-setup
+
+
+
+
+
+
+
+初始化进程总共分为三步,时间较长,我们只需要了解最后的密码
+
+
+
+
+初始化完成后,建议运行自带的检查命令检查一下设置情况。
+
+> openvas-check-setup
+
+
+
+看到 `It seems like your OpenVAS-9 installation is OK.` 就没问题了。
+
+## OpenVas配置
+将以下文件中的参数地址由127.0.0.1替换为0.0.0.0
+- /lib/systemd/system/greenbone-security-assistant.service
+ - --listen、--mlisten
+- /lib/systemd/system/openvas-manager.service
+ - --listen
+- /etc/default/openvas-manager
+ - MANAGER_ADDRESS
+- /etc/default/greenbone-security-assistant
+ - GSA_ADDRESS
+ - MANAGER_ADDRESS
+
+若需通过远程访问本机,需要增加host 头主机地址(IP或域名)
+在`/lib/systemd/system/greenbone-security-assistant.service`文件中的`mlisten`参数后增加
+> --allow-header-host=外部访问的地址IP或域名
+
+本机通过MacOS访问虚拟机中的kali,将kali的IP指定即可。
+
+配置完成后,重启OpenVas:
+```
+> openvas-stop
+> systemctl daemon-reload
+> openvas-start
+# 安装完整性检测
+> openvas-check-setup
+```
+
+## 登录操作页面
+
+如果安装过程中操作失误未记录账号密码,可通过以下口令获得账户名,并重置密码。
+- 获取账户名
+> openvasmd --get-users
+
+
+
+- 重置密码
+> openvasmd --user=admin --new-password=new_password
+
+
+登录
+访问前,关闭本地代理和防火墙,并在浏览器确认未授权证书通过。
+- 本地登录
+
+
+- 远程登录
+
+
+
+## 后记
+
+邮箱:
+
+欢迎转载,请注明出处,谢谢。
\ No newline at end of file
diff --git a/_posts/2018-11-10-BurpSuite-Keygen-problem.markdown b/_posts/2018-11-10-BurpSuite-Keygen-problem.markdown
new file mode 100644
index 0000000..7292f2e
--- /dev/null
+++ b/_posts/2018-11-10-BurpSuite-Keygen-problem.markdown
@@ -0,0 +1,85 @@
+---
+layout: post
+title: "BurpSuite-关于破解工具KeyGen无法使用的问题解决记录"
+subtitle: "BurpSuite"
+date: 2018-11-10 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - BurpSuite
+---
+
+
+## 前言
+- 环境:
+```
+kali 2018.2
+```
+- 系统源:
+```
+deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
+deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
+```
+- 通过源更新系统内环境及工具(截止2018.11.1)
+```shell
+apt-get update
+apt-get upgrade
+apt-get dis-upgrade
+```
+
+由于BurpSuite Pro功能需要付费,所以为了学习高阶功能,需要使用破解版。但在我使用破解工具的过程中,无论是版本是否对应,运行工具都会出现以下问题:
+- 点击Keygen工具中的run按钮无效。
+- 直接打开BurpSuite,输入工具中的License,显示`The supplied license key was not recognized`,提示License无效。
+
+
+
+## 正文
+关于以上问题,查了很多资料都没有具体说法,决定自己分析一波。
+
+首先直接将命令行语句放入bash中运行:
+
+系统提示`-Xbootclasspath/p`不再作为参数,那么主要问题应该出在`-Xbootclasspath/p`参数上,没学过Java的渣渣只能先找一下有没有其他替换的办法。
+
+关于`-Xbootclasspath`的资料相对较少,但是最靠得住的还是官方:
+`https://www.ibm.com/support/knowledgecenter/en/SSYKE2_8.0.0/openj9/xbootclasspath/index.html`
+
+
+通过官方说明发现了问题,`-Xbootclasspath:`和`-Xbootclasspath/p:`仅限到Java 8,更新后的kali使用`JDK 11`。
+
+
+
+## 解决问题
+问题解决办法:降版本运行。
+
+1. 找到低版本jdk执行文件。
+> find / -name java
+
+
+2. 直接用jdk 8的执行文件路径替换java命令(没必要修改PATH,以免出现其他软件的问题)。
+> /usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xbootclasspath/p:burp-loader-keygen.jar -jar burpsuite_pro_v1.7.32.jar
+
+3. 正常执行后续破解工作。
+
+
+## 结尾
+
+该工具有个使用不方便的地方就是,在第一次运行输入License破解后,每次使用都需要先打开它去Run那一条命令。
+
+所以直接自建shell脚本`run.sh`,保存在同目录下:
+```
+#!/bin/bash
+/usr/lib/jvm/java-8-openjdk-amd64/bin/java -Xbootclasspath/p:burp-loader-keygen.jar -jar burpsuite_pro_v1.7.32.jar
+```
+
+每次要打开BurpSuite,只用在该目录下运行
+```
+./run.sh
+```
+
+---
+
+关于版本问题,如果有Java大佬有更好的解决方案,欢迎提出建议。
+
+邮箱:
+
+欢迎转载,请注明出处,谢谢。
diff --git a/_posts/2018-11-15-KaliLinux-w3af-install.md b/_posts/2018-11-15-KaliLinux-w3af-install.md
new file mode 100644
index 0000000..2bb2d54
--- /dev/null
+++ b/_posts/2018-11-15-KaliLinux-w3af-install.md
@@ -0,0 +1,121 @@
+---
+layout: post
+title: "Kali Linux 2018.2 安装W3AF"
+subtitle: "W3AF install"
+date: 2018-11-15 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - Kali Linux
+ - W3AF
+---
+
+环境:
+Kali 2018.2
+python2.7
+
+由于Kali Linux 2018.2版本不再自带W3AF工具,所以需要自行从网上进行源码安装。
+
+首先下载源码到`/usr/local/src`目录
+```
+cd /usr/local/src
+git clone https://github.com/andresriancho/w3af.git
+```
+
+更新源和pip
+```
+apt-get update
+apt-get dis-upgrade
+pip install --upgrade pip
+```
+
+安装pybloomfiltermmp
+```
+pip install pybloomfiltermmap
+```
+
+修改W3AF配置文件。
+
+
+1.修改requirements.py
+```
+vim w3af/w3af/core/controllers/dependency_check/requirements.py
+
+PIPDependency('pybloomfilter', 'pybloomfiltermmap', '0.3.15'),
+PIPDependency('OpenSSL', 'pyOpenSSL', '16.2.0'),
+PIPDependency('lxml', 'lxml', '4.2.5'),
+```
+
+2.修改mac.py
+```
+vim w3af/core/controllers/dependency_check/platforms/mac.py
+
+MAC_CORE_PIP_PACKAGES.remove(PIPDependency('pybloomfilter', 'pybloomfiltermmap', '0.3.15')
+```
+
+
+执行`./w3af_gui`,系统提示需要的依赖库,并在`/tmp`生成安装依赖的脚本`w3af_dependency_install.sh`。
+
+运行`./w3af_dependency_install.sh`。
+```
+cd /tmp
+./w3af_dependency_install.sh
+```
+
+提示缺少npm,安装npm
+```
+apt-get install npm
+```
+
+再次运行`./w3af_dependency_install.sh`
+```
+./w3af_dependency_install.sh
+```
+
+执行`./w3af_console`,系统提示需要的依赖库,进行补充安装。
+```
+cd /usr/local/src/w3af/w3af
+./w3af_console
+```
+
+系统已可正常执行`./w3af_console`,但是执行`./w3af_gui`时提示缺少`webkit`库,所以需要安装`webkit`库。pip和源中都已经不包含`webkit`库及相关依赖库,需要进行源码安装。
+
+1.下载deb包:
+```
+wget http://ftp.br.debian.org/debian/pool/main/p/pywebkitgtk/python-webkit_1.1.8-3_amd64.deb
+wget http://ftp.br.debian.org/debian/pool/main/w/webkitgtk/libjavascriptcoregtk-1.0-0_2.4.11-3_amd64.deb
+wget http://ftp.br.debian.org/debian/pool/main/w/webkitgtk/libwebkitgtk-1.0-0_2.4.11-3_amd64.deb
+wget http://ftp.br.debian.org/debian/pool/main/p/python-support/python-support_1.0.15_all.deb
+```
+
+2.安装依赖和软件包,务必按顺序进行安装。
+```
+dpkg -i libjavascriptcoregtk-1.0-0_2.4.11-3_amd64.deb
+dpkg -i python-support_1.0.15_all.deb
+dpkg -i libwebkitgtk-1.0-0_2.4.11-3_amd64.deb
+dpkg -i python-webkit_1.1.8-3_amd64.deb
+```
+
+安装完成,已可正常运行`w3af_console`和`w3af_gui`,为方便执行,将两个执行路径添加至`alias`。
+
+```
+vim /root/.bashrc
+:/alias
+在下面段添加w3af_gui和w3af_console命令。
+if [ -x /usr/bin/dircolors ]; then
+ test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
+ alias ls='ls --color=auto'
+
+ alias w3af_gui='/usr/local/src/w3af/w3af_gui'
+ alias w3af_console='/usr/local/src/w3af/w3af_console'
+
+fi
+```
+
+
+---
+后记
+
+由于环境不一致,网上能搜到的安装方法顺序均不一致。不过大致上就一个思路,通过运行`./w3af_console`和`./w3af_gui`,根据提示安装依赖库即可。
+
+ps:可能由于网络波动原因或者系统临时配置引起的问题,多次重复执行命令和重启可以解决大部分库安装异常。
\ No newline at end of file
diff --git a/_posts/2018-11-16-common-ports.md b/_posts/2018-11-16-common-ports.md
new file mode 100644
index 0000000..b3a01dc
--- /dev/null
+++ b/_posts/2018-11-16-common-ports.md
@@ -0,0 +1,60 @@
+---
+layout: post
+title: "常用端口收集"
+subtitle: "常用端口"
+date: 2018-11-16 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - 端口
+---
+
+
+端口 | 服务 | 渗透用途
+---|------|---
+tcp 20,21 | FTP | 允许匿名的上传下载,爆破,嗅探,win提权,远程执行(proftpd 1.3.5),各类后门(proftpd,vsftp 2.3.4)
+tcp 22 | SSH | 可根据已搜集到的信息尝试爆破,v1版本可中间人,ssh隧道及内网代理转发,文件传输等等
+tcp 23 | Telnet | 爆破,嗅探,一般常用于路由,交换登陆,可尝试弱口令
+tcp 25 | SMTP | 邮件伪造,vrfy/expn查询邮件用户信息,可使用smtp-user-enum工具来自动跑
+tcp/udp 53 | DNS | 允许区域传送,dns劫持,缓存投毒,欺骗以及各种基于dns隧道的远控
+tcp/udp 69 | TFTP | 尝试下载目标及其的各类重要配置文件
+tcp 80-89,443,8440-8450,8080-8089 | 各种常用的Web服务端口 | 可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等……
+tcp 110 | POP3 | 可尝试爆破,嗅探
+tcp 111,2049 | NFS | 权限配置不当
+tcp 137,139,445 | Samba | 可尝试爆破以及smb自身的各种远程执行类漏洞利用,如,ms08-067,ms17-010,嗅探等……
+tcp 143 | IMAP | 可尝试爆破
+udp 161 | SNMP | 爆破默认团队字符串,搜集目标内网信息
+tcp 389 | LDAP | ldap注入,允许匿名访问,弱口令
+tcp 512,513,514 | Linux rexec | 可爆破,rlogin登陆
+tcp 873 | Rsync | 匿名访问,文件上传
+tcp 1194 | OpenVPN | 想办法钓VPN账号,进内网
+tcp 1352 | Lotus | 弱口令,信息泄漏,爆破
+tcp 1433 | SQL Server | 注入,提权,sa弱口令,爆破
+tcp 1521 | Oracle | tns爆破,注入,弹shell…
+tcp 1500 | ISPmanager | 弱口令
+tcp 1723 | PPTP | 爆破,想办法钓VPN账号,进内网
+tcp 2082,2083 | cPanel | 弱口令
+tcp 2181 | ZooKeeper | 未授权访问
+tcp 2601,2604 | Zebra | 默认密码zerbra
+tcp 3128 | Squid | 弱口令
+tcp 3312,3311 | kangle | 弱口令
+tcp 3306 | MySQL | 注入,提权,爆破
+tcp 3389 | Windows rdp | shift后门[需要03以下的系统],爆破,ms12-020
+tcp 3690 | SVN | svn泄露,未授权访问
+tcp 4848 | GlassFish | 弱口令
+tcp 5000 | Sybase/DB2 | 爆破,注入
+tcp 5432 | PostgreSQL | 爆破,注入,弱口令
+tcp 5900,5901,5902 | VNC | 弱口令爆破
+tcp 5984 | CouchDB | 未授权导致的任意指令执行
+tcp 6379 | Redis | 可尝试未授权访问,弱口令爆破
+tcp 7001,7002 | WebLogic | Java反序列化,弱口令
+tcp 7778 | Kloxo | 主机面板登录
+tcp 8000 | Ajenti | 弱口令
+tcp 8443 | Plesk | 弱口令
+tcp 8069 | Zabbix | 远程执行,SQL注入
+tcp 8080-8089 | Jenkins,JBoss | 反序列化,控制台弱口令
+tcp 9080-9081,9090 | WebSphere | Java反序列化/弱口令
+tcp 9200,9300 | ElasticSearch | 远程执行
+tcp 11211 | Memcached | 未授权访问
+tcp 27017,27018 | MongoDB | 爆破,未授权访问
+tcp 50070,50030 | Hadoop | 默认端口未授权访问 可尝试未授权访问,弱口令爆破
diff --git a/_posts/2018-12-01-InfoGather-SearchEngine.md b/_posts/2018-12-01-InfoGather-SearchEngine.md
new file mode 100644
index 0000000..66c935f
--- /dev/null
+++ b/_posts/2018-12-01-InfoGather-SearchEngine.md
@@ -0,0 +1,66 @@
+---
+layout: post
+title: "信息搜集-搜索引擎"
+subtitle: "信息搜集"
+date: 2018-12-1 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - 信息搜集
+ - 搜索引擎
+---
+
+借助搜索引擎获取信息。
+
+shodan:
+https://www.shodan.io
+
+爬取所有硬件设备的信息。
+
+语法
+
+- Net
+ - 指定IP或IP段
+- City
+ - 指定设备定位城市
+- Country
+ - 指定设备定位国家
+- Post
+ - 指定设备定位端口
+- Os
+ - 指定操作系统
+- Hostname
+ - 指定域名
+- Server
+ - 指定服务名
+
+Google\Baidu\Bing等常规搜索引擎
+
+语法
+
+- site:temp.com
+ - 搜索temp.com站中的内容。
+- +Words
+ - 搜索包含words的页面
+- -words
+ - 搜索不包含words的页面
+- intitle:words
+ - 搜索标题带有words关键字的页面
+- intext:words
+ - 搜索带有所有words的页面。
+- inurl:words
+ - 搜索URL中带有words的页面。
+- filetype:PDF
+ - 搜索PDF类型的文档
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/_posts/2018-12-02-PTES-Standard.md b/_posts/2018-12-02-PTES-Standard.md
new file mode 100644
index 0000000..e189f11
--- /dev/null
+++ b/_posts/2018-12-02-PTES-Standard.md
@@ -0,0 +1,490 @@
+---
+layout: post
+title: "PTES_渗透测试执行标准"
+subtitle: "渗透测试执行标准"
+date: 2018-12-1 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - PTES
+ - 渗透测试
+---
+
+
+[TOC]
+
+# 前期交互阶段
+## 确定范围
+- 如何确定范围
+- 时间估计
+ - 预估整体项目时间周期
+ - 确定以小时计的额外技术支持
+- 问答交谈
+ - 业务管理部门
+ - 系统管理员
+ - IT支持
+ - 普通雇员
+- 范围勘定
+ - 确定项目起止时间
+ - 项目授权信件
+ - 进入目标规划环节
+- 确定IP和域名范围
+ - 验证范围
+- 处理第三方资源
+ - 云服务
+ - ISP
+ - 网站宿主
+ - MSSP
+ - 服务器所在国家
+- 定义可接受的社会工程学方法
+- 拒绝服务测试
+- 确定支付细节
+- Delphi Scoping?
+
+## 目标规划
+- 确定目标
+ - 首要目标
+ - 额外目标
+- 业务分析
+ - 定义目标企业的安全成熟度
+- 需求分析
+
+## 测量术语和定义
+- 渗透测试术语词汇表
+
+## 建立通讯渠道
+- 紧急联络方式
+- 应急响应流程
+- 确定一个接口联络人
+- PGP或其他加密方式
+- 取得与外部第三方的联络方式(宿主...
+
+## 交互确定规则
+- 时间线
+- 地点
+- 渗透攻击的控制基线
+- 敏感信息的披露
+- 证据处理
+- 例行的进展报告会
+ - 计划
+ - 进展
+ - 问题
+- 每天可进行渗透测试的时间
+- 避开的范围与规则
+- 攻击授权
+
+## 存在的防御能力和技术
+- 应急响应和监控
+
+## 保护你自己
+- 准备你的测试系统
+- 前期交互检查表
+- 数据包监听
+- 后期交互检查表
+
+
+# 情报搜集阶段
+## 目标选择
+
+## 开放渠道情报
+### 企业
+- 物理
+ - 位置
+ - 分布
+ - 关系网
+- 逻辑
+ - 业务伙伴
+ - 竞争对手
+ - 接触关联图
+ - 物业服务轮廓图
+ - 产品线
+ - 垂直市场
+ - 销售银行账号
+ - 会议安排
+ - 关键企业日期
+ - 招聘岗位
+ - 慈善事业关系
+- 组织架构
+- 电子
+- 财务
+
+### 个人(雇员)
+- 履历背景
+- 社交关系网
+- 互联网足迹
+- 博客
+- 最新动态
+- 物理位置
+- 移动足迹
+- 工资银行账户
+
+## 白盒搜集
+- 场内
+- 场外
+
+## 人力资源情报
+- 关键雇员
+- 合作伙伴/供应商
+- 社会工程学
+
+## 踩点
+### 外部踩点
+- 识别客户范围
+- 被动信息搜集
+- 主动探测
+- 建立目标列表
+ - 确定版本信息
+ - 识别补丁级别
+ - 搜索脆弱的Web应用
+ - 确定封禁阈值
+ - 出错信息
+ - 找出攻击的脆弱端口
+ - 过时系统
+ - 虚拟化平台和虚拟机
+ - 存储基础设施
+
+### 内部踩点
+- 主动探测
+ - 端口扫描
+ - SNMP探查
+ - 区域传送
+ - SMTP反弹攻击
+ - 解析DNS与递归DNS服务器
+ - 旗标攫取
+ - VoIP扫描
+ - ARP探索
+ - DNS探索
+- 被动信息搜集
+- 建立目标列表
+
+## 识别防御机制
+- 网络防御机制
+ - 简单包过滤
+ - 流量整形设备
+ - 信息泄露防护系统
+ - 加密/隧道机制
+- 系统防御机制
+ - 堆栈保护
+ - 白名单列表
+ - 反病毒软件/过滤/行为检测
+ - 信息泄露防护系统
+- 应用层防御机制
+ - 识别应用层防御
+ - 编码选项
+ - 可能潜在的绕过机制
+ - 白名单区域
+- 存储防御机制
+ - 硬盘保护卡
+ - ...
+
+# 威胁建模阶段
+## 业务资产分析
+- 私人身份信息、健康信息和信用卡信息
+- 定义和找出组织的知识产权
+- 企业王国的关键资产
+ - 商业秘密
+ - 研究和开发
+ - 市场计划
+ - 企业银行/信用卡账户
+ - 客户资料
+ - 供应商资料
+ - 关键雇员信息
+ - 董事会
+ - 中间管理层
+ - 系统管理员
+ - 工程师
+ - 技术专家
+ - 人力资源
+ - 总裁助理
+
+## 业务流程分析
+- 使用的基础设施
+- 人力基础设施
+- 使用的第三方平台
+
+## 威胁对手/社区分析
+- 内部人员
+ - 董事会
+ - 中间管理层
+ - 系统管理员
+ - 开发者
+ - 工程师
+ - 技术专家
+- 竞争对手
+- 国家政府
+- 有组织的犯罪团队
+- 周末工作的网际黑客
+
+## 威胁能力分析
+- 分析使用的工具
+- 可用的相关渗透代码和攻击载荷
+- 通讯机制(加密、下载站点、命令控制、安全宿主站点)
+
+## 相关公司被攻击新闻
+
+
+# 漏洞分析阶段
+## 测试
+### 主动
+- 自动化技术
+ - 通用漏洞扫描
+ - 基于端口
+ - 基于服务
+ - 旗标攫取
+ - Web应用扫描器
+ - 通用的应用层漏洞扫描
+ - 目录列举和暴力破解
+ - Web服务版本和漏洞标识
+ - 存有漏洞的方法
+ - 网络漏洞扫描器
+ - VPN
+ - IPv6
+ - 语音网络扫描
+ - 战争拨号
+ - VoIP扫描
+- 手工方法
+ - 针对性连接
+- 躲避技术
+ - 多源探测
+ - IDS逃逸
+ - 可变的速度
+ - 可变的范围
+
+### 被动
+- 自动化技术
+ - 从内部获取的元数据分析
+ - 流量监控(如P0f等)
+- 手工方法
+ - 针对性连接
+
+## 验证
+- 扫描器结果关联分析
+- 手工验证/协议相关
+ - VPN:指纹识别
+ - Citrix:差点
+ - DNS
+ - Web
+ - Mail
+- 攻击路径
+ - 创建攻击树
+- 隔离实验室中试验
+- 效果确认
+ - 手工验证与评审
+
+## 研究
+- 对公开资源的研究
+ - exploit-db
+ - Google Hacking
+ - 渗透代码网站
+ - 通用/缺省口令
+ - 厂商的漏洞警告
+- 私有环境下的研究
+ - 建立一个复制环境
+ - 测试安全配置
+ - 找出潜在攻击路径
+
+
+# 渗透攻击阶段
+## 精准打击
+
+## 绕过防御机制
+- 反病毒
+ - 编码
+ - 加壳
+ - 白名单绕过
+ - 进程注入
+ - 纯内存方式
+- 人工检查
+- 网络入侵防御系统
+- DEP
+- ASLR
+- VA+NX(Linux)
+- w^x(openBSD)
+- Web应用防火墙
+- 栈保护
+
+## 定制渗透攻击路径
+- 最佳攻击路径
+- 零日攻击
+ - Fuzzing
+ - 逆向分析
+ - 流量分析
+- 公开渗透代码的定制
+- 物理访问
+ - 人为因素
+ - 主机访问
+ - USB接口访问
+ - 防火墙
+ - RFID
+ - 中间人攻击
+ - 路由协议
+ - VLAN划分
+ - 其他硬件(键盘记录器等)
+- 接近的访问(WiFi)
+ - 攻击AP
+ - 攻击用户
+ - 电子频谱分析
+- 拒绝服务/勒索
+- Web
+ - SQLi
+ - XSS
+ - CSRF
+ - 信息泄露
+ - 其他OWASP Top 10
+
+## 绕过监测机制
+- FW/WAF/IDS/IPS绕过
+- 绕过管理员
+- 绕过数据泄露防护系统
+
+## 触发攻击响应控制措施
+
+## 渗透代码测试
+
+## 攻击类型
+- 客户端攻击
+ - Phishing
+- 服务端攻击
+- 带外攻击
+
+
+# 后渗透攻击阶段
+## 基础设施分析
+- 当前网络连接分析
+- 网络接口查询
+- VPN检测
+- 路由检测,包括静态路由
+- 网络邻居和系统探查
+- 使用的网络协议
+- 使用的代理服务器
+- 网络拓扑
+
+## 高价值目标识别
+
+## 掠夺敏感信息
+- 视频监控器和摄像头
+- 从可用通道获取敏感数据
+- 查找共享目录
+- 音频监控
+ - VoIP
+ - 麦克风记录
+- 高价值文件
+- 数据库查点
+- WiFi
+- 源代码库
+- 识别出客户管理应用
+- 备份
+ - 本地备份文件
+ - 中央备份服务器
+ - 远程备份方案
+ - 录音存储备份
+
+## 业务影响攻击
+- 业务盈利途径
+- 窃取业务盈利
+
+## 进一步对基础设施的渗透
+- 僵尸网络
+- 入侵内网
+- 检查历史/日志
+ - Windows
+ - Linux
+ - 浏览器
+
+## 掩盖踪迹
+- 记录渗透攻击过程步骤
+- 确保清理现场
+- 删除测试数据
+- 对证据进行打包和加密
+- 必要时从备份恢复数据
+
+## 持续性存在
+- 自启动恶意代码
+- 反向链接
+- Rootkit
+ - 用户模式
+ - 内核模式
+- 命令控制媒介(http,dns,tcp,icmp)
+- 后门
+- 植入代码
+- 口令保护的VPN
+
+
+# 报告阶段
+## 执行层面的报告
+- 业务影响
+- 定制
+- 与业务部门的谈话
+- 影响底线
+- 策略方法路径
+- 成熟度模型
+- 风险评估术语说明
+- 攻击过程与Gant图时间线
+- 风险评估
+ - 评估事故频率
+ - 可能的时间频率
+ - 估计威胁能力(从阶段3-威胁建模阶段而来)
+ - 评估控制措施强度(从阶段6)
+ - 安全漏洞与弱点评估(从阶段5)
+ - 所需技能要求
+ - 所需访问权限等级
+ - 每次事故的损失估计
+ - 风险推算
+ - 威胁
+ - 漏洞
+ - 组合风险值
+
+## 技术报告
+- 识别系统性问题和技术根源分析
+- 渗透测试评价指标
+ - 范围内的系统数量
+ - 范围内的应用场景数量
+ - 范围内的业务流程数量
+ - 被检测到的次数
+ - 漏洞/漏洞主机数量
+ - 被攻陷的系统数量
+ - 成功攻击的应用场景数量
+ - 攻陷的业务流程次数
+ - ...
+- 技术发现
+ - 描述
+ - 截图
+ - 抓取的请求与响应
+ - 概念验证性样本代码
+- 可重现结果
+ - 测试用例
+ - 触发错误
+- 应急响应和监控能力
+ - 情报收集阶段
+ - 漏洞分析阶段
+ - 渗透攻击阶段
+ - 后渗透攻击阶段
+ - 其他方面(如对第三方的通知等)
+- 标准组成部分
+ - 方法体系
+ - 目标
+ - 范围
+ - 发现摘要
+ - 风险评定的术语附录
+
+## 提交报告
+- 初始报告
+- 客户对报告的评审结果
+- 对报告的修订
+- 最终报告
+- 报告初稿与最终报告的版本管理
+- 展示报告
+ - 技术层面
+ - 管理层面
+- 工作例会/培训
+ - 差距分析(技能/培训)
+- 保存证据和其他非产权的数据
+- 纠正过程
+ - 分流
+ - 安全成熟度模型
+ - 工作进展计划
+ - 长期解决方案
+ - 定义限制条件
+- 开发定制工具
+
+
diff --git a/_posts/2019-01-01-OWASP_Top_10.md b/_posts/2019-01-01-OWASP_Top_10.md
new file mode 100644
index 0000000..21817c0
--- /dev/null
+++ b/_posts/2019-01-01-OWASP_Top_10.md
@@ -0,0 +1,315 @@
+---
+layout: post
+title: "OWASP TOP 10 v2017 官方解释及个人理解"
+subtitle: "OWASP TOP 10"
+date: 2019-01-01 12:00:00 +0800
+author: "Fa1ConZ"
+header-img: "img/post-bg-2015.jpg"
+tags:
+ - OWASP
+---
+
+https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
+
+[TOC]
+
+# A1: 注入
+
+> 将不受信任的数据作为命令或查询的一部分发送到解析器时,会产生一些常见的注入,包括:SQL、OS命令、ORM、LDAP和表达式语言(EL)或OGNL注入的注入缺陷。攻击者的恶意数据可以诱使解析器在没有适当授权的情况下执行非预期命令或访问数据。
+
+
+可能导致漏洞的情况:
+- 未对用户提供的数据进行验证、过滤。
+- 恶意数据直接被使用或连接,如在动态查询语句、命令或存储过程中包含结构和恶意数据。
+- 动态查询语句或非参数化的调用,在没有上下文感知转义的情况下,被用于解释器。
+- 在ORM搜索参数中使用了恶意数据。
+
+防护办法:
+防止注入漏洞需要将数据与命令语句、查询语句分隔开来。
+- 最佳选择:**使用安全的API**,完全避免使用解释器,或提供参数化界面的接口,或迁移到ORM或实体框架。
+ - 当参数化时,存储过程仍然可以引入SQL注入,如果PL/SQL或T-SQL将查询和数据连接在一起,或者执行带有立即执行或exec()的恶意数据。
+- 使用正确的或“白名单”的具有恰当规范化的输入验证方法。
+ - 该方法防御并不完善,因为不同应用程序在输入中需要的特殊字符也可能引起漏洞存在。
+- 动态查询可以使用解释器的特定转义语法转义特殊字符。
+ - SQL结构,比如:表名、列名等无法转义,因此用户提供的结构名是非常危险的。这是编写软件中的一个常见问题。
+- 止损:在查询中使用LIMIT和其他SQL控件,减少SQL注入泄露的数据量。
+
+检测办法:
+- 代码评审是最有效的检测应用程序的注入风险的办法之一。
+- 对所有所有参数、字段、头、cookie、JSON和XML数据输入进行动态应用安全(DAST)扫描。
+- 组织可以将SAST和DAST工具添加到CI/CD过程中,以便于在生产部署之前对现有或新检查的代码进行注入问题的预警。
+
+
+# A2: 失效的身份认证
+> 通常,通过错误使用应用程序的身份认证和会话管理功能,攻击者能够破译密码、密钥或会话令牌,或者利用其它开发缺陷来暂时性或永久性冒充其他用户的身份。
+
+
+可能导致漏洞的情况:
+- 允许[凭证填充](https://www.owasp.org/index.php/Credential_stuffing),这使得攻击者获得有效用户名和密码的列表。
+- 允许暴力破解或其他自动攻击。
+- 允许弱密码(默认、长度、复杂度)。
+- 使用弱的或失效的验证凭证,忘记密码程序,例如“基于知识的答案”。
+- 使用明文、加密或弱散列(MD-5,SHA-1)密码。
+- 缺少或失效的多因素身份验证。
+- 暴露URL中的会话ID(例如URL重写)。
+- 在成功登录后不会更新会话ID。
+- 不正确地使会话ID失效。当用户不活跃的时候,用户会话或认证令牌(特别是单点登录(SSO)令牌)没有正确注销或失效。
+
+防护办法:
+- 在可能的情况下,实现多因素身份验证,以防止自动、凭证填充、暴力破解和被盗凭据再利用攻击。
+- 不要使用发送或部署默认的凭证,特别是管理员用户。
+- 执行弱密码检查(密码长度、复杂性和历史)。
+- 确认注册、凭据恢复和API路径,通过对所有输出结果使用相同的消息,用以抵御账户枚举攻击。
+- 限制登录尝试次数、增加验证复杂度。记录所有失败信息并在凭据填充、暴力破解或其他攻击被检测时提醒管理员。
+- 使用服务器端安全的Session管理器,在登录后生成高度复杂的新随机SessionID。SessionID不能在URL中,可以安全地存储和当登出、闲置、超时后使其失效。
+
+
+# A3: 敏感信息泄露
+> 许多Web应用程序和API都无法正确保护敏感数据。攻击者可以通过窃取或修改未加密的数据来实施犯罪行为。未加密的敏感数据容易受到破坏,因此,我们需要对敏感数据加密,这些数据包括:传输中的数据、存储的数据以及浏览器的交互数据。
+
+
+可能导致漏洞的情况:
+- 不对敏感信息进行加密。
+ - 是否是明文传输(传输协议相关)?
+ - 是否对存储数据进行加密、备份?
+ - 是否强制加密敏感数据,例如:用户代理(如:浏览器)指令和传输协议是否被加密?
+- 不安全的密钥生成和管理以及使用弱加密算法、弱协议和弱密码。
+ - 是否使用旧的或脆弱的加密算法?
+ - 是否使用默认加密密钥,生成或重复使用脆弱的加密密钥,或者缺少恰当的密钥管理或密钥回转?
+- 用户代理(如:应用程序、邮件客户端)是否验证服务器端证书的有效性?
+
+防护办法:
+- 首先确认敏感数据范围(包含:传输过程中的数据、存储数据)。
+ - 特别是隐私法律或条例中规定需要加密的数据。
+- 进行数据分类,并根据分类进行访问控制。
+- 根据敏感数据保护相关的法律和条例要求保护敏感数据。
+- 尽快清除过期敏感数据。
+- 确保存储的所有敏感数据被加密。
+- 确保使用了最新的、强大的标准算法或密码、参数、协议和密钥。
+- 确保使用密码专用算法或工具存储密码。
+- 确保密钥管理到位。
+- 确保传输过程(TLS)中的数据被加密且数据加密被强制执行(HTTP严格安全传输协议)。
+- 禁止缓存对包含敏感数据的响应。
+- 单独验证每个安全配置项(基线)的有效性。
+
+
+# A4: XML外部实体(XXE)
+> 许多较早的或配置错误的XML处理器评估了XML文件中的外部实体引用。攻击者可以利用外部实体窃取使用URI文件处理器的内部文件和共享文件、监听内部扫描端口、执行远程代码和实施拒绝服务攻击。
+
+
+漏洞影响:
+- XXE缺陷可用于提取数据、执行远程服务器请求、扫描内部系统、执行拒绝服务攻击和其他攻击。
+- 业务影响取决于所有受影响的应用程序和数据保护需求。
+
+可能导致漏洞的情况:
+- 应用程序直接接受XML文件上传、任意数据插入XML文件,并提交给XML处理器解析。
+- 在应用程序或基于Web服务的SOAP中,所有XML处理器都启用了文档类型定义(DTDs)。
+- 为了实现安全性或单点登录(SSO),应用程序使用SAML进行身份认证(SAML使用XML进行身份确认)。
+- 如果使用v1.2之前的SOAP,并将XML实体传递到SOAP框架,那么它可能受到XXE攻击。
+- 存在XXE缺陷的应用程序更容易受到拒绝服务攻击,包括:[Billion Laughs 攻击](https://en.wikipedia.org/wiki/Billion_laughs_attack)。
+
+防护办法:
+- 开发人员培训是识别和减少XXE缺陷的关键。
+- 尽可能使用简单的数据格式(如:JSON),避免对敏感数据进行序列化。
+- 及时修复或更新应用程序或底层操作系统使用的所有XML处理器和库。同时,通过依赖项检测,将SOAP更新到1.2版本或更高版本。
+- 参考[《OWASP Cheat Sheet 'XXE Prevention'》](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.md),在应用程序的所有XML解析器中禁用XML外部实体和DTD进程。
+- 在服务器端实施“白名单”输入验证、过滤和清理。
+- 验证XML或XSL文件上传功能是否使用XSD验证或其他类似验证方法来验证上传的XML文件。
+- 如果无法实现这些控制,请考虑使用虚拟修复程序、API安全网关或WAF来检测、监控和防止XXE攻击。
+
+检测办法:
+- SAST工具可以检测源代码中的XXE漏洞。
+
+
+# A5: 失效的访问控制
+> 未对通过身份验证的用户实施恰当的访问控制。攻击者可以利用这些缺陷访问未经授权的功能或数据,例如:访问其他用户的帐户、查看敏感文件、修改其他用户的数据、更改访问权限等。
+
+
+可能导致漏洞的情况:
+- 通过修改URL、内部应用程序状态或HTML页面绕过访问控制检查,或简单地使用自定义的API 攻击工具。
+- 允许将主键更改为其他用户的记录,例如查看或编辑他人的帐户。
+- 特权提升。在不登录的情况下假扮用户,或以用户身份登录时充当管理员。
+- 元数据操作,如重放或篡改JWT 访问控制令牌,或作以提升权限的cookie 或隐藏字段。
+- CORS配置错误允许未授权的API访问。
+- 以未通过身份验证的用户身份强制浏览的通过身份验证时才能看到的页面、或作为标准用户访问具有相关权限的页面、或API没有对POST、PUT和DELETE强制执行访问控制。
+
+防护办法:
+- 除公有资源外,默认情况下拒绝访问。
+- 使用一次性的访问控制机制,并在整个应用程序中不断重用它们,包括最小化CORS使用。
+- 建立访问控制模型以强制执行所有权记录,而不是接受用户创建、读取、更新或删除的任何记录。
+- 域访问控制对每个应用程序都是唯一的,但业务限制要求应由域模型强制执行。
+- 禁用Web服务器目录列表,并确保文件元数据(如:git)不存在于Web的根目录中。
+- 记录失败的访问控制,并在适当时向管理员告警(如:重复故障)。
+- 对API和控制器的访问进行速率限制,以最大限度地降低自动化攻击工具的危害。
+- 当用户注销后,服务器上的JWT令牌应失效。
+
+检测办法:
+- SAST工具和DAST工具可以检测到访问控制的缺失,但不能验证其功能是否正常,所以通常不适用于自动化的静态或动态测试。
+- 手动测试是检测访问控制缺失或失效的最佳方法,包括:HTTP方法(如:GET和PUT)、控制器、直接对象引用等。
+- 在某些特定框架下通过自动化检测访问控制缺失。
+
+# A6: 安全配置错误
+> 安全配置错误通常是由于不安全的默认配置、不完整的临时配置、开源云存储、错误的HTTP标头配置以及包含敏感信息的详细错误信息所造成的。因此,我们不仅需要对所有的操作系统、框架、库和应用程序进行安全配置,而且必须及时修补和升级它们。攻击者能够通过未修复的漏洞、访问默认账户、不再使用的页面、未受保护的文件和目录等来取得对系统的未授权的访问或了解。
+
+
+可能导致漏洞的情况:
+- 应用程序栈堆的任何部分都缺少适当的安全加固,或者云服务的权限配置错误。
+- 应用程序启用或安装了不必要的功能(例如:端口、服务、网页、帐户或权限)。
+- 默认帐户的密码仍然可用且没有更改。
+- 错误处理机制向用户披露堆栈跟踪或其他大量错误信息。
+- 系统更新后,禁用或不安全地配置最新的安全功能。
+- 应用程序服务器、应用程序框架(如:Struts、Spring、ASP.NET)、库文件、数据库等没有进行安全配置。
+- 服务器不发送安全标头或指令,或者未对服务器进行安全配置。
+- 您的应用软件已过期或易受攻击(参见[A9: 使用含有已知漏洞的组件])。
+
+
+防护办法:
+- 建立安全配置基线。
+ - 开发、质量保证和生产环境都应该进行相同配置。
+ - 在每个环境中使用不同的密码。
+ - 配置过程自动化。
+- 搭建最小化平台。
+ - 不包含任何不必要的功能、组件、文档和示例。
+ - 移除或不安装不适用的功能和框架。
+- 检查和修复安全配置项来适应最新的安全说明、更新和补丁,并将其作为更新管理过程的一部分。
+ - 在检查过程中,应特别注意云存储权限(如:S3桶权限)。
+- 使用能在组件和用户间提供有效的分离和安全性的分段应用程序架构,包括:分段、容器化和云安全组。
+- 向客户端发送安全指令,如:[安全标头](https://www.owasp.org/index.php/OWASP_Secure_Headers_Project)。
+
+
+检测办法:
+- 自动扫描器可用于检测错误的安全配置、默认帐户的使用或配置、不必要的服务、遗留选项等。
+
+
+
+# A7: 跨站脚本(XSS)
+> 当应用程序的新网页中包含不受信任的、未经恰当验证或转义的数据时,或者使用可以创建HTML或JavaScript 的浏览器API更新现有的网页时,就会出现XSS缺陷。XSS让攻击者能够在受害者的浏览器中执行脚本,并劫持用户会话、破坏网站或将用户重定向到恶意站点。
+
+
+漏洞影响:
+- 对于反射型和DOM型XSS影响是中等的。
+- 对于存储型XSS影响更为严重,如,在受攻击者的浏览器上执行远程代码,窃取凭证和会话或传递恶意软件等。
+- 典型的XSS攻击可导致盗取session、账户、绕过MFA、DIV替换、对用户浏览器的攻击(例如:恶意软件下载、键盘记录)以及其他用户侧的攻击。
+
+可能导致漏洞的情况:
+- 反射式XSS
+ - 应用程序或API包括未经验证和未经转义的用户输入,作为HTML输出的一部分。
+ - 一个成功的攻击可以让攻击者在受害者的浏览器中执行任意的HTML和JavaScript。
+ - 用户将需要与指向攻击者控制页面的某些恶意链接进行交互,例如恶意漏洞网站,广告或类似内容。
+- 存储式XSS
+ - 应用或者API将未净化的用户输入存储下来了,并在后期在其他用户或者管理员的页面展示出来。
+- 基于DOM的XSS
+ - 会动态的将攻击者可控的内容加入页面的JavaScript框架、单页面程序或API存在这种类型的漏洞。
+ - 应该避免将攻击者可控的数据发送给不安全的JavaScript API。
+
+
+防护办法:
+- 将不可信数据与动态的浏览器内容区分开;
+- 使用设计上就会自动编码来解决XSS问题的框架,如:Ruby 3.0或ReactJS。
+ - 了解每个框架的XSS保护的局限性,并适当地处理未覆盖的用例。
+- 为了避免反射式或存储式的XSS漏洞,最好的办法是根据HTML输出的上下文(包括:主体、属性、JavaScript、CSS或URL)对所有不可信的HTTP请求数据进行恰当的转义。
+ - 更多关于数据转义技术的信息见:[《OWASP Cheat Sheet 'XSS Prevention'》](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.md)。
+- 在客户端修改浏览器Document时,为了避免DOM XSS攻击,最好的选择是实施上下文敏感数据编码。
+ - 如果这种情况不能避免,可以采用[《OWASP Cheat Sheet 'DOM based XSS Prevention '》](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/DOM_based_XSS_Prevention_Cheat_Sheet.md)描述的类似上下文敏感的转义技术应用于浏览器API。
+- 使用[内容安全策略(CSP)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP)是对抗XSS的深度防御策略。
+ - 如果不存在可以通过本地文件放置恶意代码的其他漏洞(例如:路径遍历覆盖和允许在网络中传输的易受攻击的库),则该策略有效。
+
+检测办法:
+- 自动化工具能够检测并利用所有的三种XSS形式,并且存在方便攻击者利用漏洞的框架。
+
+
+
+# A8: 不安全的反序列化
+> 不安全的反序列化会导致远程代码执行。即使反序列化缺陷不会导致远程代码执行,攻击者也可以利用它们来执行攻击,包括:重播攻击、注入攻击和特权升级攻击。
+
+漏洞影响:
+- 反序列化缺陷的影响不能被低估。它们可能导致远程代码执行攻击,这是可能发生的最严重的攻击之一。
+- 业务影响取决于应用程序和数据的保护需求。
+
+
+可能导致漏洞的情况:
+- 对象和数据结构攻击:如果应用中存在可以在反序列化过程中或者之后被改变行为的类,攻击者可以通过改变应用逻辑或者实现远程代码执行攻击。
+- 典型的数据篡改攻击,如访问控制相关的攻击,其中使用了现有的数据结构,但内容发生了变化。
+- 在应用程序中,序列化可能被用于:
+ - 远程和进程间通信(RPC / IPC)
+ - 连线协议、Web服务、消息代理
+ - 缓存/持久性
+ - 数据库、缓存服务器、文件系统
+ - HTTP cookie、HTML表单参数、API身份验证令牌
+
+防护办法:
+- 唯一安全的架构模式是不接受来自不受信源的序列化对象,或使用只允许原始数据类型的序列化媒体。
+- 如果上述不可能的话,考虑使用下述方法:
+ - 执行完整性检查,如:任何序列化对象的数字签名,以防止恶意对象创建或数据篡改。
+ - 在创建对象之前强制执行严格的类型约束,因为代码通常被期望成一组可定义的类。已存在绕过办法。
+ - 隔离运行那些在低特权环境中反序列化的代码。
+ - 记录反序列化的例外情况和失败信息,如:传入的类型不是预期的类型,或者反序列处理引发的例外情况。
+ - 限制或监视来自于容器或服务器传入和传出的反序列化网络连接。
+ - 监控反序列化,当用户持续进行反序列化时,对用户进行警告。
+
+检测办法:
+- 有些工具可以被用于发现反序列化缺陷,但经常需要人工帮助来验证发现的问题。
+
+
+# A9: 使用含有已知漏洞的组件
+> 组件(例如:库、框架和其他软件模块)拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用,可能会造成严重的数据丢失或服务器接管。同时,使用含有已知漏洞的组件的应用程序和API可能会破坏应用程序防御、造成各种攻击并产生严重影响。
+
+
+
+可能导致漏洞的情况:
+- 不清楚使用的组件版本信息(包括:服务端和客户端),包括直接使用的或其依赖的组件;
+- 软件易受攻击,不再支持或者过时。包括:OS、Web服务器、应用程序服务器、数据库管理系统(DBMS)、应用程序、API和所有的组件、运行环境和库。
+- 不定期做漏洞扫描和订阅使用组件的安全公告。
+- 不基于风险并及时修复或升级底层平台、框架和依赖库。很可能发生:根据变更控制,每月或每季度进行升级,这使得组织在这段时间内会受到已修复但未修补的漏洞的威胁。
+- 软件工程师没有对更新的、升级的或打过补丁的组件进行兼容性测试。
+- 没有对组件进行安全配置(请参考“A6:2017-安全配置错误”)。
+
+防护办法:
+应该制定一个补丁管理流程:
+- 移除不使用的依赖、不需要的功能、组件、文件和文档。
+- 利用如versions、DependencyCheck、retire.js等工具来持续的记录客户端和服务器端以及它们的依赖库的版本信息。持续监控如CVE和NVD等是否发布已使用组件的漏洞信息,可以使用软件分析工具来自动完成此功能。订阅关于使用组件安全漏洞的警告邮件。
+- 仅从官方渠道安全的获取组件,并使用签名机制来降低组件被篡改或加入恶意漏洞的风险。
+- 监控那些不再维护或者不发布安全补丁的库和组件。如果不能打补丁,可以考虑部署虚拟补丁来监控、检测或保护。
+
+
+
+# A10: 不足的日志记录和监控
+> 不足的日志记录和监控,以及事件响应缺失或无效的集成,使攻击者能够进一步攻击系统、保持持续性或转向更多系统,以及篡改、提取或销毁数据。大多数缺陷研究显示,缺陷被检测出的时间超过200天,且通常通过外部检测方检测,而不是通过内部流程或监控检测。
+
+可能导致漏洞的情况:
+- 未记录可审计性事件,如:登录、登录失败和高额交易。
+- 告警和错误事件未能产生或产生不足的和不清晰的日志信息。
+- 没有利用应用系统和API的日志信息来监控可疑活动。
+- 日志信息仅在本地存储。
+- 没有定义合理的告警阈值和制定响应处理流程。
+- 渗透测试和使用DAST工具(如:OWASP ZAP)扫描没有触发告警
+- 对于实时或准实时的攻击,应用程序无法检测、处理和告警。
+
+防护办法:
+- 确保所有登录、访问控制失败、输入验证失败能够被记录到日志中去,并保留足够的用户上下文信息,以识别可疑或恶意帐户,并为后期取证预留足够时间。
+- 确保日志以一种能被集中日志管理解决方案使用的形式生成。
+- 确保高额交易有完整性控制的审计信息,以防止篡改或删除,例如审计信息保存在只能进行记录增加的数据库表中。
+- 建立有效的监控和告警机制,使可疑活动在可接受的时间内被发现和应对。
+- 建立或采取一个应急响应机制和恢复计划,例如:NIST 800-61 rev 2或更新版本。
+- 目前已有商业的和开源的应用程序防护框架(例如:OWASP AppSensor)、Web应用防火墙(例如:Modsecuritywith the OWASP Core Rule Set)、带有自定义仪表盘和告警功能的日志关联软件。
+
+
+
+# 附录:OWASP Top 10 v2013
+* A1: 注入
+* A2: 失效的身份认证和会话管理
+* A3: 跨站脚本(XSS)
+* A4: 不安全的直接对象引用
+* A5: 安全配置错误
+* A6: 敏感信息泄露
+* A7: 功能级访问控制缺失
+* A8: 跨站请求伪造(CSRF)
+* A9: 使用含有已知漏洞的组建
+* A10: 未验证的重定向和转发
+
+v2013 → v2017:
+- 合并(2013)A4-不安全的直接对象引用与(2013)A7-功能级访问控制缺失:(2017)A5-失效的访问控制
+- 删除 (2013)A8-跨站请求伪造(CSRF)
+- 删除 (2013)A10-未验证的重定向和转发
+- 新增 (2017)A8-不安全的反序列化
+- 新增 (2017)A10-不足的日志记录和监控
\ No newline at end of file
diff --git a/about.html b/about.html
index cd37bee..d7f3c38 100644
--- a/about.html
+++ b/about.html
@@ -6,18 +6,20 @@
---
-
+
+
+
+
I'm who I am.
-
Test
-
Test
+
Hey,我是Fa1ConZ,一只初级安全狗。
+
爱好LOL,Guitar。
+
本博客将作为我的技术笔记及备忘录。
+
如果文章中存在什么问题,欢迎各位提出意见及建议~
@@ -26,101 +28,85 @@
-
-
- Designer or Engineer, things in between.
-
-
-
- Test
-
+
+
+
+
-
- Test
-
+
+
+
-
-
+
+
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
+
-
-
+
+
+
-
+
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
-
+
-
-
-{% if site.disqus_username %}
-
-
-
-
-
-
-
-{% endif %}
diff --git a/img/avatar-hux.jpg b/img/avatar-hux.jpg
deleted file mode 100644
index ce04cec..0000000
Binary files a/img/avatar-hux.jpg and /dev/null differ
diff --git a/img/favicon.ico b/img/favicon.ico
old mode 100755
new mode 100644
index f7baa5f..003d5f6
Binary files a/img/favicon.ico and b/img/favicon.ico differ
diff --git a/index.html b/index.html
index b2522e6..725c964 100644
--- a/index.html
+++ b/index.html
@@ -1,6 +1,6 @@
---
layout: page
-description: "Fz's Blog"
+description: "Don't be evil."
---
{% for post in paginator.posts %}