2012/01/11 18:37
[시스템이야기]
Hash table 충돌을 이용한 DoS 공격(일명 HashDoS)을 해결한 PHP 5.3.9버전이 나왔습니다.
참고로 php.ini의 max_input_vars default값은 1000입니다.
http://www.php.net/index.php#id2012-01-11-1
* HashDoS 관련 글
- 2012/01/04 - [시스템이야기] - php에서 hash table DoS(HashDoS) 공격 방어
- 2012/01/02 - [시스템이야기] - 웹서버 hash table DoS(HashDoS) 공격 (중요. PHP, ASP 등 해당)
- php 5.3.8 포함하여 이전 버전 사용중 : 필히 업그레이드 할 것
- php 5.3.9 RC 또는 5.4.0 RC4~RC5 사용중 : 임시 업그레이드하셨던 분은 필요하면 정식 버전을 적용해도 되겠네요.
참고로 php.ini의 max_input_vars default값은 1000입니다.
http://www.php.net/index.php#id2012-01-11-1
The PHP development team would like to announce the immediate availability of PHP 5.3.9. This release focuses on improving the stability of the PHP 5.3.x branch with over 90 bug fixes, some of which are security related.
Security Enhancements and Fixes in PHP 5.3.9:
* Added max_input_vars directive to prevent attacks based on hash collisions. (CVE-2011-4885)
* Fixed bug #60150 (Integer overflow during the parsing of invalid exif header). (CVE-2011-4566)
Security Enhancements and Fixes in PHP 5.3.9:
* Added max_input_vars directive to prevent attacks based on hash collisions. (CVE-2011-4885)
* Fixed bug #60150 (Integer overflow during the parsing of invalid exif header). (CVE-2011-4566)
* HashDoS 관련 글
- 2012/01/04 - [시스템이야기] - php에서 hash table DoS(HashDoS) 공격 방어
- 2012/01/02 - [시스템이야기] - 웹서버 hash table DoS(HashDoS) 공격 (중요. PHP, ASP 등 해당)
'시스템이야기' 카테고리의 다른 글
| PHP 5.3.9 Released(HashDoS 문제 해결 버전) (0) | 2012/01/11 |
|---|---|
| php에서 hash table DoS(HashDoS) 공격 방어 (2) | 2012/01/04 |
| 웹서버 hash table DoS(HashDoS) 공격 (중요. PHP, ASP 등 해당) (5) | 2012/01/02 |
| 아파치 웹서버, DoS 취약점 해결한 버전 발표 (2) | 2011/08/31 |
| 아파치 웹서버를 한방에 다운시키는 Range요청 취약점 (2) | 2011/08/30 |
| 로그 분석 및 실시간 검색의 강자, Splunk 맛보기 (4) | 2011/04/08 |
2012/01/04 09:36
[시스템이야기]
HashDoS 공격에 대해서는 '웹서버 hash table DoS(HashDoS) 공격 (중요. PHP, ASP 등 해당)' 을 읽어보기 바란다.
취약점을 해결하거나 공격을 약화시키는 방법이다.
1. php 5.4.0 RC버전과 앞으로 나올 PHP 5.3.9 버전 (취약점 해결)
max_input_vars 설정으로 파라미터 개수를 제한한다.
2. 기존 php버전에서 (완벽한 해결이 아닌 공격을 약화시키는 방법)
php.ini 설정값 (default)
max_input_time은 요청 데이터를 파싱하는데 걸리는 최대 시간이다.
max_input_time으로 파싱 시간 제한, post_max_size으로 POST 사이즈를 제한함으로써 파라미터수를 어느정도(?) 제한하는 효과를 갖는다. 완벽한 해결이 아닌 공격을 약화시키는 방법이다.
기존에 쌓아둔 웹로그를 분석해서
(예 : max_input_time = 10, post_max_size = 100K)
단, 파일이 업로드되는 서비스는 POST사이즈가 크므로 post_max_size는 적용하기 어렵고, max_input_time만 설정해볼 수 있다.
3. 수호신(suhosin) php 보안 모듈 사용 (취약점 해결)
수호신 모듈을 사용하면 위 설정만으로도 문제가 해결된다. 최대 파라미터 개수를 500개로 제한한 경우이다. default는 1000이다. 다음과 같이 차단되었음을 확인할 수 있다.
4. apache와 nginx에서 POST사이즈 제한 (100K로 제한하는 예)
POST사이즈 제한을 php설정 외에 웹서버 자체 설정도 적용하고 싶다면 다음과 같이 한다. 위 2번에서 설명한대로 기존 웹로그를 분석해서 적절한 POST사이즈를 파악해서 적용한다.
1) apache
LimitRequestBody 100000
2) nginx (defaul는 1MB)
client_max_body_size 100k;
※ 다음은 php.ini의 max_input_time 설정을 착각하는 분들이 있어 정리했다. (1.4(수) 19시)
위에서 말한대로, php.ini 설정 중 max_input_time은 HTTP '요청 데이터(POST, GET)를 파싱하는데 걸리는 시간'이다. 'input' 이라는 단어가 들어가기 때문에, 전송되는 시간으로 착각하는 경우가 있다. 하지만 모든데이터를 다 받은 순간부터 실행 시작하기까지의 시간이다. 아래에서 3번에 해당하는 구간이다.
정상적인 요청이라면 파싱하는데 걸리는 시간은 짧다. 그래서 이 수치를 줄임으로써 어느정도의 효과가 있다.
웹서버에서는 Request POST, GET 변수를 hash 구조로 관리한다. 그런데 POST 요청 파라미터수가 상당히 많을 경우(GET 요청은 길이 제한이 있으므로 문제가 되지 않음)에 hash 충돌이 많이 발생하게 되어 CPU load가 상당히 올라가게 된다. 이런 문제는 PHP5, Asp.Net, Java, V8 자바스크립트 엔진 등에서 발생한다.
취약점을 해결하거나 공격을 약화시키는 방법이다.
1. php 5.4.0 RC버전과 앞으로 나올 PHP 5.3.9 버전 (취약점 해결)
max_input_vars 설정으로 파라미터 개수를 제한한다.
2. 기존 php버전에서 (완벽한 해결이 아닌 공격을 약화시키는 방법)
php.ini 설정값 (default)
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
post_max_size = 8M
post_max_size = 8M
max_input_time은 요청 데이터를 파싱하는데 걸리는 최대 시간이다.
max_input_time으로 파싱 시간 제한, post_max_size으로 POST 사이즈를 제한함으로써 파라미터수를 어느정도(?) 제한하는 효과를 갖는다. 완벽한 해결이 아닌 공격을 약화시키는 방법이다.
기존에 쌓아둔 웹로그를 분석해서
- 스크립트의 실행 시간이 얼마나 걸리는지 (max_input_time 설정위해. 웹로그 시간은 정확히는 전송시간 + max_input_time + max_execution_time과 관련)
- POST 요청의 사이즈를 분석한다. (post_max_size 설정위해)
(예 : max_input_time = 10, post_max_size = 100K)
단, 파일이 업로드되는 서비스는 POST사이즈가 크므로 post_max_size는 적용하기 어렵고, max_input_time만 설정해볼 수 있다.
3. 수호신(suhosin) php 보안 모듈 사용 (취약점 해결)
suhosin.post.max_value_length = 1000000
suhosin.post.max_vars = 500
suhosin.request.max_vars = 500
suhosin.post.max_vars = 500
suhosin.request.max_vars = 500
수호신 모듈을 사용하면 위 설정만으로도 문제가 해결된다. 최대 파라미터 개수를 500개로 제한한 경우이다. default는 1000이다. 다음과 같이 차단되었음을 확인할 수 있다.
suhosin[95705]: ALERT - configured POST variable limit exceeded - dropped variable '..생략..' (attacker 'xxx.xxx.xxx.xxx', file '/..생략../index.html')
4. apache와 nginx에서 POST사이즈 제한 (100K로 제한하는 예)
POST사이즈 제한을 php설정 외에 웹서버 자체 설정도 적용하고 싶다면 다음과 같이 한다. 위 2번에서 설명한대로 기존 웹로그를 분석해서 적절한 POST사이즈를 파악해서 적용한다.
1) apache
LimitRequestBody 100000
2) nginx (defaul는 1MB)
client_max_body_size 100k;
※ 다음은 php.ini의 max_input_time 설정을 착각하는 분들이 있어 정리했다. (1.4(수) 19시)
위에서 말한대로, php.ini 설정 중 max_input_time은 HTTP '요청 데이터(POST, GET)를 파싱하는데 걸리는 시간'이다. 'input' 이라는 단어가 들어가기 때문에, 전송되는 시간으로 착각하는 경우가 있다. 하지만 모든데이터를 다 받은 순간부터 실행 시작하기까지의 시간이다. 아래에서 3번에 해당하는 구간이다.
1) POST 요청 -> 2) POST 데이터 전송 -> 3) 전송후 파싱 -> 4) 실행
정상적인 요청이라면 파싱하는데 걸리는 시간은 짧다. 그래서 이 수치를 줄임으로써 어느정도의 효과가 있다.
'시스템이야기' 카테고리의 다른 글
| PHP 5.3.9 Released(HashDoS 문제 해결 버전) (0) | 2012/01/11 |
|---|---|
| php에서 hash table DoS(HashDoS) 공격 방어 (2) | 2012/01/04 |
| 웹서버 hash table DoS(HashDoS) 공격 (중요. PHP, ASP 등 해당) (5) | 2012/01/02 |
| 아파치 웹서버, DoS 취약점 해결한 버전 발표 (2) | 2011/08/31 |
| 아파치 웹서버를 한방에 다운시키는 Range요청 취약점 (2) | 2011/08/30 |
| 로그 분석 및 실시간 검색의 강자, Splunk 맛보기 (4) | 2011/04/08 |
2012/01/02 19:20
[시스템이야기]
먼저 공격 동영상 한편을 보자.
Denial of Service using Hash tables collisions in PHP
hash table collisions버그를 이용해서 PHP로 DoS공격을 하는 예이다. 동영상에서는 약 190초 동안이나 CPU load가 15%정도 올라갔다. H/W사양이나 요청하는 POST값은 다양하니 수치의 의미보다는 load 상승의 심각성을 중요포인트로 생각해야 한다. 이런 비정상 요청 몇개만으로 서비스는 제대로 이뤄지지 않을 수 있다. '단 몇개만'으로.
웹서버에서는 Request POST, GET 변수를 hash 구조로 관리한다. 그런데 POST 요청 파라미터수가 상당히 많을 경우(GET 요청은 길이 제한이 있으므로 문제가 되지 않음)에 hash 충돌이 많이 발생하게 되어 CPU load가 상당히 올라가게 된다. 이런 문제는 PHP5, Asp.Net, Java, V8 자바스크립트 엔진 등에서 발생한다.
PHP의 경우 5.4.0 RC버전과 앞으로 나올 PHP 5.3.9 버전에서 max_input_vars 설정으로 파라미터 개수를 제한할 수 있다.
현재 @hashDoS 트위터( http://twitter.com/hashDoS )에서 이번 취약점에 대한 논의가 있으니 참고하기 바란다.
* php에서 hash table DoS(HashDoS) 공격 방어 (정리해서 올렸습니다. 1.4(수) 오전)
* hashDoS 취약점 관련 글
Denial of Service using Hash tables collisions in PHP
hash table collisions버그를 이용해서 PHP로 DoS공격을 하는 예이다. 동영상에서는 약 190초 동안이나 CPU load가 15%정도 올라갔다. H/W사양이나 요청하는 POST값은 다양하니 수치의 의미보다는 load 상승의 심각성을 중요포인트로 생각해야 한다. 이런 비정상 요청 몇개만으로 서비스는 제대로 이뤄지지 않을 수 있다. '단 몇개만'으로.
웹서버에서는 Request POST, GET 변수를 hash 구조로 관리한다. 그런데 POST 요청 파라미터수가 상당히 많을 경우(GET 요청은 길이 제한이 있으므로 문제가 되지 않음)에 hash 충돌이 많이 발생하게 되어 CPU load가 상당히 올라가게 된다. 이런 문제는 PHP5, Asp.Net, Java, V8 자바스크립트 엔진 등에서 발생한다.
PHP의 경우 5.4.0 RC버전과 앞으로 나올 PHP 5.3.9 버전에서 max_input_vars 설정으로 파라미터 개수를 제한할 수 있다.
현재 @hashDoS 트위터( http://twitter.com/hashDoS )에서 이번 취약점에 대한 논의가 있으니 참고하기 바란다.
* php에서 hash table DoS(HashDoS) 공격 방어 (정리해서 올렸습니다. 1.4(수) 오전)
* hashDoS 취약점 관련 글
- [SECURITY] Apache Tomcat and the hashtable collision DoS vulnerability
- Denial of Service through hash table multi-collisions http://www.nruns.com/_downloads/advisory28122011.pdf
- Hash collisions vulnerability in web servers
- PHP Hash Table Collision Bug Lets Remote Users Deny Service
'시스템이야기' 카테고리의 다른 글
| PHP 5.3.9 Released(HashDoS 문제 해결 버전) (0) | 2012/01/11 |
|---|---|
| php에서 hash table DoS(HashDoS) 공격 방어 (2) | 2012/01/04 |
| 웹서버 hash table DoS(HashDoS) 공격 (중요. PHP, ASP 등 해당) (5) | 2012/01/02 |
| 아파치 웹서버, DoS 취약점 해결한 버전 발표 (2) | 2011/08/31 |
| 아파치 웹서버를 한방에 다운시키는 Range요청 취약점 (2) | 2011/08/30 |
| 로그 분석 및 실시간 검색의 강자, Splunk 맛보기 (4) | 2011/04/08 |
2011/12/08 20:06
[일상]
올초에 다큐멘터리 '울지마 톤즈'를 봤다. 아프리카 수단의 작은 마을 '톤즈'에서 故 이태석 신부님의 감동적인 사랑을 다큐멘터리로 만든 것이다. 톤즈 사람들에게 이태석 신부님은 아버지이자, 선생님, 의사, 지휘자였다.
학교에서 아이들을 가르치고, 아픈 사람을 치료해주고, 아이들에게 트럼펫, 클라리넷 등 악기를 사주고 그 악기를 가르쳐준다. 톤즈 사람들과 늘 함께 했던 이태석 신부님은 2010년 1월 선종하셨다.
아이들은 그분을 보고싶어도 기다려도 더이상 만날 수가 없었다. 시간이 지난 후 한국에서 있었던 장례식 장면을 톤즈 아이들에게 화면으로 보여준다. 아이들은 눈물을 흘리고... 그 순간 나도 눈물을 흘리지 않을 수 없었다.
안보신 분은 유튜브( 다큐멘터리 울지마 톤즈 , 1시간 20분)에 올라와 있으니 꼭 보시길. 손수건을 꼭 손에 쥐고 봐야한다.
다큐멘터리를 본 후 신부님이 쓰신 '친구가 되어 주실래요?' 책을 읽었다.
다큐멘터리처럼 그가 아프리카 남수단의 '톤즈'에서 생활한 이야기를 책으로 엮었다.
없는게 없는 우리들과는 반대로, 수단 사람들은 있는게 없다. 하지만 그와 톤즈 사람들은 우리가 없는 아름다운 마음을 가졌다. 가진게 많은 우리, 가진게 없지만 아름다운 마음을 가진 그들.
이 책 또한 눈물나게 한다. 눈물이 맺히지 않으면 당신이 매마른 것이야~
이 책에서 기억에 남는 문장 몇개
댓글 1개당 200원 기부 약속을 시작으로 올해까지 3년째 기부 중이다. 사랑의 연탄, 월드비전에 이어서 올해는 '수단어린이장학회'에 추가로 기부를 했다. 올초 책을 읽을 때 바로 기부하려고 했지만, 많이 늦었다.
수단어린이장학회는 아프리카 남수단 아이들에게 교육을 지원하는 사회단체이다. 수단 어린이들에게 희망을 주자. 배울 기회를 주자. 총칼 대신 음악을 배우도록 도와주자.
[ 올해 기부한 곳 ]
* 관련글
2010/12/30 - [일상] - 사랑의 연탄나눔운동과 월드비전에 기부했습니다.
2009/12/23 - [일상] - 사랑의 연탄나눔운동에 기부했습니다.
2009/03/03 - [일상] - 댓글 1개에 200원 기부하겠습니다.
※ 초기에 기부를 어디에 해야할지 고민했던 적이 있다.
기부글을 쓰는 것은 1) 기분좋게 기부할 수 있는 곳이 있다는 것을 알리고, 2) 기부분위기를 만들어보고자...
[ 다큐멘터리 울지마 톤즈 ]
학교에서 아이들을 가르치고, 아픈 사람을 치료해주고, 아이들에게 트럼펫, 클라리넷 등 악기를 사주고 그 악기를 가르쳐준다. 톤즈 사람들과 늘 함께 했던 이태석 신부님은 2010년 1월 선종하셨다.
아이들은 그분을 보고싶어도 기다려도 더이상 만날 수가 없었다. 시간이 지난 후 한국에서 있었던 장례식 장면을 톤즈 아이들에게 화면으로 보여준다. 아이들은 눈물을 흘리고... 그 순간 나도 눈물을 흘리지 않을 수 없었다.
안보신 분은 유튜브( 다큐멘터리 울지마 톤즈 , 1시간 20분)에 올라와 있으니 꼭 보시길. 손수건을 꼭 손에 쥐고 봐야한다.
다큐멘터리를 본 후 신부님이 쓰신 '친구가 되어 주실래요?' 책을 읽었다.
다큐멘터리처럼 그가 아프리카 남수단의 '톤즈'에서 생활한 이야기를 책으로 엮었다.
없는게 없는 우리들과는 반대로, 수단 사람들은 있는게 없다. 하지만 그와 톤즈 사람들은 우리가 없는 아름다운 마음을 가졌다. 가진게 많은 우리, 가진게 없지만 아름다운 마음을 가진 그들.
이 책 또한 눈물나게 한다. 눈물이 맺히지 않으면 당신이 매마른 것이야~
이 책에서 기억에 남는 문장 몇개
- 총과 칼을 녹여 그것으로 클라리넷과 트럼펫을 만들면 좋겠다. 총소리 대신에 아름다운 음악 소리가 울려퍼지면 얼마나 좋을까 (한 학생)
- 주의하라! 골통은 '너'도 될 수 있지만, '나'도 될 수 있다.
- 콜레라의 원인이 단순히 더러운 물 때문일까? 오염된 물인줄 알면서도 그 물을 마실 수 밖에 없었던 이곳의 열악한 환경. 그렇다면 우리에게도 책임이 있지 않지 않은가? 오존층을 파괴, 지구 온난화
- 부족한 것들 때문에 이곳에서의 생활이 불편한 점도 있긴 하지만 부족한 것들 덕분에 얻는 평범한 깨달음도 많다. 작은 것들에 대한 감사하는 마음을 얻게 돼. ... 많이 가지지 않으므로 인해 오는 불폄한은 참고 견딜만한 충분한 가치가...
- 많은 경우 큰 문제를 일으키는 실제 원인은 아주 작고 간단한 것에 있다. 많은 문제를 일으키는 가장 흔한 원인은 바로 '나 자신'
- 많은 사람들이 많은 재물의 주인이 되기만을 원할 뿐이지. '자기 행동의 주인' 이기를 꺼려 한다.
- 향의 종류와 세기의 정도에 차이가 있지만 사람은 누구나 나름대로의 향기를 지니고 있다.
댓글 1개당 200원 기부 약속을 시작으로 올해까지 3년째 기부 중이다. 사랑의 연탄, 월드비전에 이어서 올해는 '수단어린이장학회'에 추가로 기부를 했다. 올초 책을 읽을 때 바로 기부하려고 했지만, 많이 늦었다.
수단어린이장학회는 아프리카 남수단 아이들에게 교육을 지원하는 사회단체이다. 수단 어린이들에게 희망을 주자. 배울 기회를 주자. 총칼 대신 음악을 배우도록 도와주자.
[ 올해 기부한 곳 ]
- 수단어린이 장학회 ( cafe.daum.net/WithLeeTaeSuk ) 00만원
- 사랑의 연탄나눔운동 ( www.lovecoal.org ) 00만원
- 월드비전 ( www.worldvision.or.kr ) 00만원 (해외식량위기지원 분야)
- 사랑의 연탄나눔운동 ( www.lovecoal.org ) 00만원
- 월드비전 ( www.worldvision.or.kr ) 00만원 (해외식량위기지원 분야)
* 관련글
2010/12/30 - [일상] - 사랑의 연탄나눔운동과 월드비전에 기부했습니다.
2009/12/23 - [일상] - 사랑의 연탄나눔운동에 기부했습니다.
2009/03/03 - [일상] - 댓글 1개에 200원 기부하겠습니다.
※ 초기에 기부를 어디에 해야할지 고민했던 적이 있다.
기부글을 쓰는 것은 1) 기분좋게 기부할 수 있는 곳이 있다는 것을 알리고, 2) 기부분위기를 만들어보고자...
'일상' 카테고리의 다른 글
| 울지마 톤즈와 수단어린이장학회, 그리고 기부 (0) | 2011/12/08 |
|---|---|
| 왕찐빵 하나가 나를 달리게 만들다 (8) | 2011/11/25 |
| 오르세미술관전(展) - 고흐의 별밤과 화가들의 꿈, 넌 감동이었어 (0) | 2011/09/25 |
| 흥미진진한 2011 서울국제도서전 (6) | 2011/06/18 |
| 사랑의 연탄나눔운동과 월드비전에 기부했습니다. (2) | 2010/12/30 |
| 편안한 커피전문점 '크레마커피' 야탑점 (8) | 2010/07/07 |
2011/11/25 12:53
[일상]
저녁에 왕찐빵을 하나 샀는데, 크기도 크고 묵직한 느낌이 들었다. 엄청 커서 다 못 먹겠어~
'정말 무겁다~ 무겁다'라는 생각이 맴돌고. 무게가 얼마나 나갈까. 문득 무게를 재보고 싶어졌다.
그냥 재보고 싶다는 마음만 있었다.
밤 12시가 막 넘은 시각이었다.
그런데, 갑자기 헬스장의 저울이 떠올랐다. 먹다 남은 그 찐빵을 들고 달려갔다. 문이 잠겼네. 이대로 찐빵 무게를 못재는 건가. 돌아와 의자에 앉아 있는 순간. 아~ 마트가 있지.
추리닝 차림, 양말도 신지 않고, 슬리퍼만 신고 바로 건너편의 홈플러스로 뛰어갔다.
과일코너를 향했다. 그런데 매장 직원들이 많다. 그것도 저울 앞에.
먹다 남은 찐빵을 저울에 올리면 나를 이상하게 볼텐데. 이를 피해 조용한 채소코너의 저울에 올렸다.
146g. 2/5를 먹었다고 가정하면 대략 360g.
밤 12시 반에 결국 대략적인 무게를 알아낸 것이다. ^^
저녁에 귤을 샀는데, 940g이라고 표시되어 있다. 내가 골라담은 귤은 11개였다. 개당 85g.
찐빵과 귤의 무게를 비교하자면, 이 왕찐빵은 보통 크기 귤 4개~4.5개 정도의 무게다.
슈퍼에서 파는 호빵도 찌기전에는 90g.
왕찐빵 1개 = 귤 4~4.5개 = 호빵 4개
왕찐빵 덕분에(?) 한밤에 미친짓을 했다. 재밌는 미친 짓. 아무튼 찐빵은 다 먹었다.
'정말 무겁다~ 무겁다'라는 생각이 맴돌고. 무게가 얼마나 나갈까. 문득 무게를 재보고 싶어졌다.
그냥 재보고 싶다는 마음만 있었다.
[ 왕찐빵. 정말 크다 ]
그런데, 갑자기 헬스장의 저울이 떠올랐다. 먹다 남은 그 찐빵을 들고 달려갔다. 문이 잠겼네. 이대로 찐빵 무게를 못재는 건가. 돌아와 의자에 앉아 있는 순간. 아~ 마트가 있지.
추리닝 차림, 양말도 신지 않고, 슬리퍼만 신고 바로 건너편의 홈플러스로 뛰어갔다.
과일코너를 향했다. 그런데 매장 직원들이 많다. 그것도 저울 앞에.
먹다 남은 찐빵을 저울에 올리면 나를 이상하게 볼텐데. 이를 피해 조용한 채소코너의 저울에 올렸다.
[ 먹다 남은 왕찐빵 146g ]
밤 12시 반에 결국 대략적인 무게를 알아낸 것이다. ^^
[ 11개 귤이 940g ]
찐빵과 귤의 무게를 비교하자면, 이 왕찐빵은 보통 크기 귤 4개~4.5개 정도의 무게다.
슈퍼에서 파는 호빵도 찌기전에는 90g.
왕찐빵 1개 = 귤 4~4.5개 = 호빵 4개
왕찐빵 덕분에(?) 한밤에 미친짓을 했다. 재밌는 미친 짓. 아무튼 찐빵은 다 먹었다.
'일상' 카테고리의 다른 글
| 울지마 톤즈와 수단어린이장학회, 그리고 기부 (0) | 2011/12/08 |
|---|---|
| 왕찐빵 하나가 나를 달리게 만들다 (8) | 2011/11/25 |
| 오르세미술관전(展) - 고흐의 별밤과 화가들의 꿈, 넌 감동이었어 (0) | 2011/09/25 |
| 흥미진진한 2011 서울국제도서전 (6) | 2011/06/18 |
| 사랑의 연탄나눔운동과 월드비전에 기부했습니다. (2) | 2010/12/30 |
| 편안한 커피전문점 '크레마커피' 야탑점 (8) | 2010/07/07 |


