ゆるーい備忘録

まいにちべんきょう

Gitの脆弱性対応した話。 コマンドメモ

gitの脆弱性対応するよ

gitのcloneのオプションで再帰的にcloneする「recursive」を使うと脆弱性が再現できるらしい。。 どんな脆弱性かは

https://oss.sios.com/security/git-security-vulnerabiltiy-20170813

こちらをみるととてもよくわかる。

参考サイト

https://togetter.com/li/1141394

どうやら、このリポジトリをcloneするとうんこがもりもりするらしい。。 なんだか楽しそう。。

もりもりする。

update前

$ rpm -q --changelog git
  • 金 3月 18 2016 Petr Stodulka pstodulk@redhat.com - 1.7.1-4.1
  • fix heap overflow CVE-2016-2315 CVE-2016-2324 Resolves: #1318252

  • 火 2月 26 2013 Adam Tkac 1.7.1-4

  • fix CVE-2013-0308

  • 木 12月 16 2010 Adam Tkac 1.7.1-3

  • fix CVE-2010-3906

  • 火 7月 27 2010 Adam Tkac 1.7.1-2

  • fix CVE-2010-2542 (#618108) ~略
$ sudo su -
# git clone --recursive https://github.com/greymd/CVE-2017-1000117.git test/

f:id:uchiharu_memo:20170829011131p:plain

もりもりした!!!!

もりもりしないようにupdateする

# yum update git

# rpm -q --changelog git

* 金 8月 11 2017 Petr Stodulka pstodulk@redhat.com - 1.7.1-9 - prevent command injection via malicious ssh URLs Resolves: CVE-2017-1000117

* 木 12月 08 2016 Petr Stodulka pstodulk@redhat.com - 1.7.1-8 - fixes previous patch which add -f option for “git submodule add” which incorectly used unsupported option –ignore-missing for “git add –dry-run” - add control of GSSAPI credential delegation to enable HTTP(S)-SSO authentication Resolves: #1207253 #1368384 ~以下略

CVE-2017-1000117の脆弱性の修正がされている模様。 もう一度テストもりもり実行する。

$ git clone --recursive https://github.com/greymd/CVE-2017-1000117.git test

Initialized empty Git repository in /home/uchida/test/.git/

remote: Counting objects: 18, done.

remote: Compressing objects: 100% (5/5), done.

Unpacking objects: 100% (18/18), done.

remote: Total 18 (delta 1), reused 4 (delta 1), pack-reused 12

Submodule ‘morimori’ (ssh://-oProxyCommand=sh<file /morimori) registered for path ‘morimori’

Initialized empty Git repository in /home/uchida/test/morimori/.git/

fatal: strange hostname ‘-oProxyCommand=sh<file ’ blocked

Clone of ‘ssh://-oProxyCommand=sh<file /morimori’ into submodule path ‘morimori’ failed

うんこがもりもりしなくなったので これにて完了です

シンボリックを作成・削除したい話

何度もgoogle先生に聞いているのでいい加減覚えるためにメモ。

シンボリック作成

$ ln -s ファイルパス リンク名

$  ln -s /var/www/vhosts/myproject my_project
$ ls -la

lrwxrwxrwx. 1 vagrant vagrant    31  6月  5 15:00 2017 my_project -> /var/www/vhosts/myproject

シンボリックを削除

$ unlink シンボリック名

注意点

$ rm シンボリック名/

シンボリック名の後ろにスラッシュをつけると、実態が削除されてしまうので超絶注意すること!! 削除だからといって、いつもうっかりやってしまうので。。。

Vimのプラグイン管理ツール「neobundle」をインストールした話

neobundleをインストールするぞ

参考サイト

http://yukihir0.hatenablog.jp/entry/2013/08/17/222339 http://holypp.hatenablog.com/entry/20110321/1300722152

やること

設定ファイルをGit管理する

vimの設定ファイルは~/.vimrc これをGit管理して、会社のPCでも共有できるようにする。

具体的には、dotfilesというgit管理用のディレクトリを作成して、~/.vimrcを一度移動させ そのあとシンボリックで~/.vimrcをdotfiles/.vimrcに向ける

$ cd ~
$ mkdir dotfiles
$ mv .vimrc dotfiles
$ mv .bash_profile dotfiles
$ mv .vim dotfiles

シンボリック作成

$ ln -s dotfiles/.vimrc .vimrc
$ ln -s dotfiles/.bash_profile .bash_profile
$ ln -s dotfiles/.vim .vim

git remote登録

$ git remote add origin git@github.com:harurururu/dotfiles.git
$ git push origin master

neobundle install

$ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh > install.sh
$ chmod u+x install.sh
$ ./install.sh

install.shを実行すると~/.vim/bundleができる

プラグインを使えるようにする

$ vim ~/.vimrc

こちらのサイトに記載があるvimrcの中身をコピぺする

http://qiita.com/puriketu99/items/1c32d3f24cc2919203eb

一回:wqで保存終了し、もう一度vimをたちあげる。 ノーマルモードで、:NeoBundleInstall とするとプラグインのインストールができる。。。はずだった

Error detected while processing /Users/uchidaharuka/.vimrc:
line   10:
E117: Unknown function: neobundle#begin
line   14:
E492: Not an editor command: NeoBundleFetch 'Shougo/neobundle.vim'
line   17:
E492: Not an editor command: NeoBundle 'Shougo/neosnippet.vim'
line   18:
E492: Not an editor command: NeoBundle 'Shougo/neosnippet-snippets'
line   19:
E492: Not an editor command: NeoBundle 'tpope/vim-fugitive'
line   20:
E492: Not an editor command: NeoBundle 'ctrlpvim/ctrlp.vim'
line   21:
E492: Not an editor command: NeoBundle 'flazz/vim-colorschemes'
line   24:
E492: Not an editor command: NeoBundle 'Shougo/vimshell', { 'rev' : '3787e5' }
line   27:
E117: Unknown function: neobundle#end
line   34:
E492: Not an editor command: NeoBundleCheck
Press ENTER or type command to continue

なんだかすごい量のえらーが。。。 vimrcを見直してみる。

set runtimepath^=/home/vagrant/.vim/bundle/neobundle.vim/

このパスがあやしいので、以下に変更

set runtimepath^=~/.vim/bundle/neobundle.vim/

再度vimを起動し、:NeoBundleInstallと打つ

すると、/.vim/bundle/以下にプラグインファイルが追加される! 設定完了!

gitコマンド使うときパスワードを聞かれないようにしたい

毎度毎度、githubのログインIDとパスワードを求められてしまうので今回の対応を行う

参考サイト

http://qiita.com/suthio/items/2760e4cff0e185fe2db9

http://qiita.com/0084ken/items/2e4e9ae44ec5e01328f1

鍵ペア作成

$ ssh-keygen -t rsa -b 4096 -C "XXXX@gmail.com" -f ~/github_key

-Cで鍵にコメントがつけられるので、メールアドレスを記入する パスフレーズは今回は使用しない

githubに公開鍵登録

クリップボードにコピーする

$ pbcopy < ~/github_key.pub

githubのaccountsのsettingsから、SSH and GPG keysを選択し ペーストする f:id:uchiharu_memo:20170523013219p:plain 赤丸のところ

sshのconfigを設定

$ vi ~/.ssh/config

以下を追記

Host github.com
HostName github.com
Port 22
User git
IdentityFile ~/.ssh/github_key
TCPKeepAlive yes
IdentitiesOnly yes

設定は以上。 あとはリポジトリhttps://~になっているのをsshにしてあげれば完了!

$ git remote set-url origin {{SSHのリポジトリ}}

マークダウンアプリ macdownをインストールしてみた

macdownをインストールしたいのだ

osをyosemiteからsierraにアップデートしたら マークダウンアプリのMouが使えなくなってしまった。。しょんぼり

調べてみたら、macdownとうアプリがmouの後継者らしいので インストールをしてみる。

zipでインストー

公式サイトから Download MacDownをクリックしてzipを落とす http://macdown.uranusjr.com/

ダウンロードしたzipを展開し、MacDown.appをApplicationフォルダに移動 いざ、起動

f:id:uchiharu_memo:20170523004841p:plain

ひらけない。。。 これは、すべて許可したらセキュリティ的によくないのではないか。。??

brew installしてみる

これぞmac使い!ってコマンドbrewです まだ使い方がよくわからないけれど brew cask installってすると依存関係のライブラリをひっくるめて取得してくれるらしい。

$ brew cask install macdown 

brew cask install macdown
==> Downloading https://github.com/MacDownApp/macdown/releases/download/v0.6.4/MacDown.app.zip ######################################################################## 100.0% ==> Verifying checksum for Cask macdown
==> Installing Cask macdown
Error: It seems there is already an App at ‘/ > Applications/MacDown.app’.
Error: nothing to install

すでにMacDown.appが存在していたのでエラーになりました。 再チャレンジ

brew cask install macdown
==> Downloading https://github.com/MacDownApp/macdown/releases/download/v0.6.4/MacDown.app.zip Already downloaded: /Users/uchidaharuka/Library/Caches/Homebrew/Cask/macdown–0.6.4.zip
==> Verifying checksum for Cask macdown
==> Installing Cask macdown
==> Moving App ‘MacDown.app’ to ‘/Applications/MacDown.app’.
==> Linking Binary ‘macdown’ to ‘/usr/local/bin/macdown’.
🍺 macdown was successfully installed!

無事成功です!

やたー

起動するとf:id:uchiharu_memo:20170523004848p:plain

かいてみる f:id:uchiharu_memo:20170523004853p:plain かっちょいい!

nkfコマンドで文字コードを判別する

インストール

ubuntuの場合

# apt-get install nkf

centOSの場合

# yum install nkf

ファイルの文字コードを表示

# nkf --guess XXX.php

参考サイト http://equj65.net/tech/charcode/

ENT_NOQUOTESについて

htmlspecialcharsの第二引数にENT_NOQUOTESを指定すると

ダブルクオーテーションとシングルクォーテーションがへんかんされない。