Thailand CTF 2019 – What is a URL Again (Write-up)
ในข้อนี้โจทย์มีชื่อว่า What is a URL Again สามารถดาวน์โหลดโจทย์ได้ที่ลิงค์นี้ >>> What is a URL Again.zip
ทำการแตกไฟล์ออกมา จะได้ไฟล์ memdump.mem ออกมา อันนี้ไม่ต้อง file ก็น่าจะรู้นะว่าไฟล์อะไร แฮ่! 🤣
ลอง binwalk ดูซะหน่อยว่ามีไรบ้าง … 🧐
เพียบ… 😵
ในที่นี้เราจะใช้ volatility ในการวิเคราะห์ข้อมูล เนื่องจากเป็น Volatile Data (สงสัยถามกู๋โลดนะครับ 🤣)
ขั้นแรกลองรัน Imageinfo ดูก่อนเพื่อดูข้อมูลคร่าวๆของไฟล์ memdump ไฟล์นี้$
volatility -f memdump.mem Imageinfo
ซึ่งต่อไปเราต้องระบุ Windows Profile ด้วย โดยในที่นี้จะใช้ Win7SP1x64
ต่อไปจะทำการลิสต์ process ทั้งหมดขึ้นมา โดยเราสามารถใช้ได้หลายคำสั่ง เช่น pslist, psscan, pstree, psxview ในที่นี้ใช้ psxview เนื่องจากดูเป็นระเบียบมากกว่าตัวอื่น ไม่รกดี 😅$ volatility -f memdump.mem --profile=Win7SP1x64 psxview
จากทุก Process ที่มี มีตัวที่น่าสนใจที่สุดคือ notepad.exe PID: 2892
ไหนลองเช็คซิ ว่าเปิดไฟล์อะไรอยู่หรือเปล่า 🧐
SECRET!! !!!! น่าสนใจๆ 🤔
งั้น Dump เฉพาะในส่วนของ notepad ออกมาละกัน ก่อนอื่นต้องรู้หมายเลข PID ของ Notepad ก่อน ซื่งจะอยู่ในขั้นตอนก่อนหน้าที่ได้ทำการลิสต์ process ซึ่งก็คือ 2892$ volatility -f memdump.mem --profile=Win7SP1x64 memdump -p 2892 --dump-dir .
ไฟล์ลองค้นด้วยชื่อไฟล์ที่เราเจอจากขั้นตอนก่อนหน้าซิ (SECRET!!.txt) 🧐
เอ๊ะ SeCrEtHeRe แพทเทิร์นคุ้นๆแฮะ 🤔 ซึ่งมีทั้งหมด 3 ชุดด้วยกัน
จะเห็นได้ว่ามันคือ Url escape (encode) นั่นเอง แต่จะสังเกตได้ว่า ค่าแรกสุด % จะหายไป ซึ่งก็แค่เติมลงไปให้เรียบร้อย แล้วไปทำการ unescape/decode ให้เรียบร้อย
หลังจากการทำ Url unescape เราก็จะได้ค่าเลขฐานสองมา ซึ่งจะเห็นได้ว่า 2 ชุดแรกค่าเหมือนกัน งั้นเราก็จะโฟกัสแค่ค่าแรกพอ อันหลังไม่ใช่แน่นอน (ขออนุญาตรวบรัด 🤣)
ให้เราไปทำการแปลงให้เป็น string ซึ่งจะได้ผลลัพท์ทีเป็น Base64 ออกมา c2hvcnR1cmwuYXQvaXRHVTI=
ให้ทำการ Decode Base64 จะได้เป็นลิงค์อันนึงออกมา
$ echo c2hvcnR1cmwuYXQvaXRHVTI= | base64 -d
ลองเอาไปเช็คก่อนซิว่าลิงค์จริงๆคืออะไร แอบฝังอะไรมาให้หรือเปล่า 😆
เอ๊ะ ไฟล์ Flag.zip 🤔
ให้ทำการโหลดมาโลด ว่าแต่คิดว่าจะเปิดดู Flag ได้เลยมั้ย?
แน่นอนว่า.. ไม่มีทาง!! 🤣
ลองแตกไฟล์ดูซิ
แน่นอนว่าติดรหัสผ่าน 😂
รหัสแตกไฟล์อยู่ไหนนนนนน 😭
งั้นลอง grep notepad dump file ดูเลยแล้วกัน เริ่มง่ายๆที่
pass, password, P@ssw0rd … ไม่เจอ 😢
งั้นลองใช้ Grep with regex ซิ$ strings 2892.dmp| grep -i -P "^P@.?.?.?.?.?d"
เย่! P@S5w0rDH3rE มันต้องเป็นรหัสแตกไฟล์แน่ๆ !!!
ไหนลองแตกไฟล์ซิ ใช่รหัส P@S5w0rDH3rE มั้ยนะ 🤔
ก็ยังไม่ใช่ … 😢
ไปคุ้ยใน raw เลยละกัน ลอง Search ด้วยคำที่ได้มาเมื่อกี้ดู
เอ๊ะ Magic Bytes คุ้นๆแฮะ 🤔
แน่นอนว่ามันคือ Magic Bytes ของไฟล์ JPEG ทีนี้จะรู้ได้ไงว่าตั้งแต่ตรงไหนถึงตรงไหน?
ก็เลื่อนดูไปเรื่อยๆไงล่ะ 😂
เห็นอะไรมั้ยครับ?
จะเห็นว่าเมื่อเลื่อนไปเรื่อยๆ จะมีข้อมูลอีกชุดที่ดูแล้วไม่น่าใช่ข้อมูลของรูปแน่ๆ FixedButton อะไรไม่รู้ 😵
ดังนั้นเราจึงเอาเฉพาะแค่ตรง offset ประมาณ 0C992400 ถึงประมาณ 0C992EC0
ไหนมาเช็ค Magic Bytes ดูอีกรอบซิว่าถูกต้องหรือเปล่า 🧐
ไฟล์รูปภาพที่ได้มา จะเห็นว่ามีข้อความอยู่ด้านใน และแน่นอนว่ามันคือรหัสผ่านสำหรับการแตกไฟล์
38nVw%Z_#jdtZ>M?
ทำการแตกไฟล์ด้วยรหัสผ่านที่ได้มาจากรูปในขั้นตอนก่อนหน้า
ได้ Flag มาแล้วจ้าาาา
THCTF{@!Th1S_ls_A-f1Ag!@}
จอบอ. 😁
Thailand CTF 2019 – In the Picture (Write-up)
ในข้อนี้โจทย์มีชื่อว่า In the picture สามารถดาวน์โหลดโจทย์ได้ที่ลิงค์นี้ >>> In the picture.zip
Ps. ขออภัยด้วย Flag ไม่ได้เรียงกันนะครับ 😅
ทำการแตกไฟล์ In the picture.zip
เมื่อทำการแตกไฟล์ออกมา จะได้รูปภาพมา 1 รูป …
ลองเข้าไปส่องข้างในดูหน่อยซิ 🧐
เมื่อใช้คำสั่ง binwalk ส่องดูข้างใน จะพบว่ารูปภาพโดนยัดไฟล์ rar เข้ามา
ให้ทำการดึงไฟล์ rar ออกมาโดยใช้คำสั่ง binwalk -e Question.jpeg เราก็จะได้ไฟล์ rar ที่ต้องการออกมา
ไหนลอง extract ดูซิ …
ติด password จ้าาา ☹️
ลองไปส่งไฟล์รูปอีกทีซิ รอบนี้ใช้คำสั่ง strings Question.jpeg เพื่อดูว่ามีการแอบยัดข้อความอะไรมาหรือเปล่า
แล้วก็โป๊ะเชะ!! DPa$$w0rd:SheepInTheBigCity 😍
นำรหัสผ่านที่ได้เมื่อกี้ไปแตกไฟล์โลด 😁
จะได้ไฟล์ออกมาอีก 3 ไฟล์ (ยังไม่จบอีก 😢)
ลองเช็คไฟล์ทั้ง 3 ไฟล์ซิ ว่าเนื้อแท้มันคือไฟล์อะไร
จะเห็นว่าไฟล์แรกเป็นไฟล์รูป (.jpg) ไฟล์ที่สองเป็นไฟล์เสียง (.wav) ส่วนไฟล์สุดท้ายเป็น data ไว้เดี๋ยวมาเช็คกันอีกที … 😅
ก่อนอื่นทำการเปลี่ยนนามสกุลให้ 2 ไฟล์แรกก่อน hint1.zip เป็น hint1.jpg และ hint2.zip เป็น hint2.wav
ลองส่องไฟล์ hint3.zip จะพบว่าส่วน header มีคำว่า NG !!!
และแน่นอนครับ มันคือไฟล์รูปภาพ 😄
ให้เราไปแก้ค่า Hex โดยการเพิ่ม 89 50 ไป offset แรกสุด
เปลี่ยนนามสกุลไฟล์ให้เป็น .png ซะ
รูปภาพที่ได้ … 🧐
ทีนี้กลับมาดู hint2 ลองแมวมาดูหน่อยซิ 🧐
Nothing …
งั้นโยนเข้า Audacity หน่อยเป็นไง 😅
เอ๊ะ… Morse Code แน่ๆ 🤔
และแน่นอนมันคือ Morse Code เมื่อทำการ Translate ออกมาจะได้คำว่า PLAYSOME
ส่วน hint1 นั้น ..
ลองแมวดูซิ เห็นอะไรแว๊บๆ 🧐 🤔
ถ้าดูดีๆมีเครื่องหมาย { ก็น่าจะเป็น ROT13 แน่ๆ งั้น decode โลด
จะได้คำว่า TH{lets ออกมา
เมื่อเอาคำใบ้ทั้ง 3 คำมารวมกันก็จะได้ Flag ออกมา
TH{letsPLAYSOME_CtF!$} เอาไปแก้ format ให้ถูกต้องเป็นอันเรียบร้อย
จอบอ. 😁
Thailand CTF 2019 – Android (Write-up)
ในข้อนี้โจทย์มีชื่อว่า Android สามารถดาวน์โหลดโจทย์ได้ที่ลิงค์นี้ >>> Android.zip
ขั้นแรกให้ทำการแตกไฟล์ออกมาก่อน โดยใช้คำสั่ง unzip Android.zip จะได้โฟลเดอร์ Android_ ออกมา
โดยข้างในโฟลเดอร์ก็จะพบอยู่ 3 ไฟล์ ได้แก่ android.zip (password protected), .git และ README.md
จุดที่น่าสนใจคือ .git ทำให้ทราบได้ว่าใช้ version control ซึ่งจะเก็บประวัติในการแก้ไขโค้ดของเรา อ่านเพิ่มเติมคลิกที่นี่
ให้เราทำการรันคำสั่ง git log เพื่อดูประวัติการ Commit เพราะโดยปกติแล้ว แต่ละครั้งเมื่อเราทำการ Commit จะมีการใส่ Comment ไว้ด้วย เพื่อที่จะได้ทราบว่าเราได้ทำอะไรไปบ้าง
จุดที่น่าสนใจมีอยู่ 2 commit คือ
– update (สนใจก่อนการ delete key) : 33d78b5cbb94854ff228172e7dd0159564157655
– delete website : 20929d7d0ff6d4fc99fdc25d6196f80f49d0582b
Checkout #1
ทำการรันคำสั่ง git checkout 33d78b5cbb94854ff228172e7dd0159564157655 เพื่อทำการย้อนกลับไปก่อนมีการ delete key
เมื่อทำการเรียกดูรายชื่อไฟล์ จะพบว่ามีไฟล์ aws_s3.key โผล่ขึ้นมา
เมื่อทำการดูไฟล์ข้างใน จะพบค่าค่านึง อันนี้ขอรวบลัดเลยละกัน ไม่ต้องไปรันใน aws console หรือเขียน api ให้ยุ่งยาก เพราะจริงๆมันคือค่า hex นี่เอง
เมื่อทำการ decode ก็จะได้ค่าดังนี้ Th@iL@nDCTF2Ol9
เมื่อนำรหัสที่ได้มาแตกไฟล์ android.zip ปรากฏว่ารหัสผิด 😢
Checkout #2
คราวนี้เรามาดูอีก Commit ที่เกี่ยวกับ Website อะไรสักอย่าง เช่นเดิมครับ ให้รันคำสั่ง git checkout 20929d7d0ff6d4fc99fdc25d6196f80f49d0582b เพื่อย้อนกลับไปก่อนการลบ website
จะเห็นว่ามีโฟลเดอร์ web โผล่ขึ้นมา
เมื่อเข้าไปดูในโฟลเดอร์ web จะพบไฟล์ index.html ให้เราทำการเปิดไฟล์ครับ เพื่ออ่าน source code ด้านใน
เห็นอะไรมั้ยครับ 😏
คล้ายๆอันแรกเลย จากค่า aws_access_key_id และ aws_secret_access_key ให้เราทำการ decode ออกมาครับ อันนี้แล้วแต่ความสะดวกเลย ส่วนตัวผมใช้ perl script ครับ
เมื่อ decode ออกมาก็จะได้ค่าดังนี้ Th@iLanDCTF2Ol9_P@ssCode
นำมาเป็นรหัสแตกไฟล์ android.zip ครับ ถูกต้องสักที เย้ 😄
รวบรัดอีกแล้ว 😆 ไม่ต้องคิดอะไรมากครับ โจทย์นี้คือจะให้เราทำการ Crack Android Pattern ครับ
รันคำสั่งเพื่อค้นการไฟล์ gesture.key โลดครับ จะใช้คำสั่งใน linux (find,grep) หรือถ้าใช้ Windows ก็ search ผ่าน Explorer ได้เลยครับ
ข้อดีของโจทย์นี้คือ จะมี Script สำหรับ Crack Pattern มาให้แล้ว ตามผลลัพท์ที่ 2 ครับ
รันสคริปต์ aplc.py เพื่อทำการ Crack Pattern โลดครับ 😄
$ data/data/com.android.crackkey/androidpatternlock/aplc.py data/system/gesture.key
เท่านี้เราก็จะได้ Flag ออกมา 😎
THCTF{6304852}
จอบอ. 😁
How to Create Google Play Store Desktop Shortcut in Huawei MediaPad M5 Pro (Desktop Mode)
สวัสดีครับ ในโพสต์นี้จะมาสอนวิธีสร้าง Shortcut Google Play Store ลงหน้า Desktop ของ Huawei MediaPad M5 Pro กันครับ เนื่องจากโดยปรกติเมื่อเข้าสู่ Desktop Mode จะไม่มี Play Store Icon
ในส่วนของวิธีเข้า Play Store จะสามารถทำได้อยู่ 2 วิธีนะครับ วิธีแรกง่ายที่สุดคือ เปิดผ่าน Firefox ซึ่งเมื่อเราเข้าไปยัง https://play.google.com จะพบ Icon ในการเปิดแอปได้โดยตรงครับ
วิธีเปิด Google Play Store ใน Desktop Mode
หรืออีกหนึ่งวิธีก็คือ การเปิดจากการคลิกขวาจาก Application ใดๆบนหน้าจอ Desktop แล้วคลิกในส่วนของ App Info เพื่อทำการเปิดหน้า Application Information
เมื่อเราเปิด App Info ขึ้นมาเรียบร้อยแล้ว ให้คลิกที่ App details ซึ่งจะอยู่ด้านล่างสุด จากนั้นจะพบหน้าต่างของ Google Play Store เปิดขึ้นมา
สร้าง Google Play Store ลง Desktop
จาก 2 วิธีข้างต้น ถ้าเราต้องการเข้าใช้งาน Google Play Store จะเห็นว่ามีวิธีการเข้าใช้ที่ยุ่งยาก ซึ่งต่อไปเราจะมาทำการสร้าง Desktop Shortcut กัน เพื่อที่จะสามารถเข้าใช้งานได้โดยการคลิกหรือแตะ Desktop Icon แค่คลิกเดียวกัน!!!
- ทำการเปิด Google Play Store ขึ้นมา กรณีทำผ่าน Desktop Mode สามารถทำตาม 2 วิธีด้านบนได้เลย หรือจะสลับเข้าสู่โหมดปรกติก่อนก็ได้ครับ
- ทำการ Download Application ที่ชื่อว่า “File Monitor” by StellWorks https://play.google.com/store/apps/details?id=com.gmail.heagoo.filemon จากนั้นทำการเปิดแอปขึ้นมา
3. คลิกที่ปุ่ม Start เพื่อเริ่มทำการ Monitor
4. คลิกที่ Start Menu จากนั้นคลิกขวาที่ Icon ใดๆก็ได้ แล้วคลิก Add to Desktop
5. สลับกลับไปที่แอป File Monitor ให้ทำการคลิกปุ่ม Stop ทางด้านขวาบน แล้วไปดูที่ผลลัพท์ จะพบว่ามีการสร้างไฟล์ Desktop Shortcut อยู่ที่ /storage/emulated/0/.desktop_pad โดยจากตัวอย่าง จะสร้าง Shortcut จากแอป Settings
6. ทำการเปิดแอป Terminal ขึ้นมา ซึ่งเลือกใช้ได้ตามความชอบครับ มีด้วยกันหลายตัว (ในที่นี้ใช้ Termux – https://play.google.com/store/apps/details?id=com.termux)
7. ให้รันคำสั่งดังนี้
$ cd /storage/emulated/0/.desktop_pad
$ cp applink%3A%2F%2Fcom.android.settings%3Fcls%3Dcom.android.settings.HWSettings applink%3A%2F%2Fcom.android.vending%3Fcls%3Dcom.google.android.finsky.activities.MainActivity
** ในส่วนของคำสั่งที่ 2 จะมี Syntax ดังนี้ $ cp <source_link> <dest_link>
– source_link ให้ทำการเปลี่ยนเป็นลิงค์ที่เราได้ทำการแอดเข้ามาที่ Desktop จากขั้นตอนที่ 4 หรือจะใช้ลิงค์ใดๆก็ได้ที่มีอยู่แล้ว สามารถดูรายชื่อลิงค์ได้โดยการรันคำสั่ง ls
– dest_link ให้คงค่าเดิมไว้
8. เย่!! Google Play Store Icon มาแล้ว :D
Youtube – Tutorial Video
โดน Rotavirus เล่นงาน 2 ครั้งในรอบปี 😥
หมอ: **ทำหน้าสงสัย** เป็นอะไรมาอีกล่ะเนี่ย?
เรา: ท้องเสียหนักมากครับ เป็นสิบรอบแล้ว
หมอ: **ทำหน้าตกใจ** เป็นอีกแล้วหรอ เมื่อต้นปีก็เพิ่งเป็นไป Rotavirus อีกหรือเปล่าเนี่ย!!!
แล้วก็โดนแอ็ดมิทไปตามระเบียบ 555 โชคดีว่าเจอหมอคนเดียวกับที่แอ็ดมิทรอบที่แล้ว 😂
นับว่าเป็นรอบที่ 2 ของปี รอบแรกโดนไปเมื่อปลายเดือนมกราคม Ref: ประสบการณ์ดวงซวยรับปี 2018 และล่าสุดเมื่อปลายเดือนสิงหาคม
จริงๆโรคนี้ส่วนมากเป็นในเด็ก และยิ่งโตขึ้นภูมิคุ้มกันก็มีเพิ่มขึ้น ทำให้พบในผู้ใหญ่ได้น้อย แต่นี่พักหลังท้องไส้ไม่ค่อยเหมือนชาวบ้านเท่าไหร่ โดนอะไรนิดหน่อยก็หนักเลย 😂😂😂
วันออกจากโรงพยาบาล หมอแซวว่า เดี๋ยวปลายปีมาดูกันว่าจะเป็นอีกรอบหรือเปล่า 555+
Thailand CTF 2018 – My password collection (Write-up)
ในข้อนี้โจทย์มีชื่อว่า My password collection สามารถดาวน์โหลดโจทย์ได้ที่ลิงค์นี้ >>> disk.zip
ขั้นแรกให้ทำการแตกไฟล์ออกมาก่อน โดยใช้คำสั่ง unzip disk.zip จะได้ไฟล์ disk.dd ออกมา
ลองเช็คประเภทของไฟล์ดูก่อน โดยใช้คำสั่ง file disk.dd
จะเห็นได้ว่า Partition เป็น MSDOS ซึ่งจากประสบการณ์ ใช้ 7Zip แตกไฟล์ในคอมพิวเตอร์โดยตรงเลยง่ายกว่า 555+
เมื่อแตกไฟล์ใน Windows ด้วย 7Zip ก็จะได้ไฟล์ประมาณนี้
ไฟล์ข้างในแต่ละ Folder ก็จะได้ประมาณนี้
ทำการไล่เช็คประเภทของไฟล์ใน Document (เนื่องจากไม่มี .extension ทำให้ไม่ทราบได้ว่าเป็นไฟล์ประเภทอะไร)
โดยใช้คำสั่ง for f in Documents/*; do file $f; done
จะเห็นได้ว่าน่าสนใจทุกไฟล์เลย 55+ แต่เราจะทำการเช็ค 2 ไฟล์กันก่อน คือไฟล์ g ที่เป็นไฟล์ pdf และไฟล์ w ที่เป็น textfile
เมื่อดูข้อมูลใน textfile จะพบข้อความ VyAtMzAwClAgMApSIDI= ซึ่งแน่นอนว่ามันคือ base64 หลังจาก decode ก็จะได้ผลลัพธ์ตามรูปด้านบน
กลับไปดูอีกไฟล์ที่เป็น pdf ซึ่งจริงๆมันเป็นคำใบ้ในการเอา key ในขั้นต่อไป (จำรูปภาพ และ filters ด้านล่างไว้ให้ดีๆ 😁)
ไปดูที่อีกโฟลเดอร์บ้าง ในโฟลเดอร์ Pictures นั่นเอง เห็นอะไรแปลกๆมั้ยครับ 🙃
ใช่เลยครับ รูปแรกนี่แหละ เมื่อลองเปิดรูปดู จะเห็นว่าเหมือนมีข้อความโดนหมุนเป็นเกลียวอยู่!
จำไฟล์ pdf ที่เปิดก่อนหน้าได้ไหมครับ นั่นแหละ! มันคือคำใบ้!! อ้อ textfile อักอัน
ก่อนอื่นให้เปิดรูปด้วย Gimp ก่อนครับ จากนั้นไปที่ Filters → Distorts → Whirl and Pinch เพื่อจะทำการหมุนภาพกลับ
ซึ่งไม่ต้องไปงมให้เมื่อยว่าแต่ละค่าต้องหมุนไปที่เท่าไหร่ เพราะมันบอกไว้แล้วใน textfile ที่เป็น base64
จะได้ 4XAktWZ3tH7AHsO9
กลับไปดูใน Documents อีกรอบ จะเห็นว่าเหลืออีก 2 ไฟล์คือ f: openssl และไฟล์ p: Keepass
โดยไฟล์ f เป็น Encryption file แล้วจะแกะยังไง ในเมื่อไม่มี passphase 😂
งั้นกลับไปดูอีกไฟล์กันก่อน อันนี้ยอมรับว่าไม่รู้จัก เท่าที่ไปถามอากู๋มา ได้ความว่าเป็น Password Management ซึ่งส่วนตัวรู้จักแค่ Dashlane, 1Password และ Lastpass 555+
ทำการโหลด Keepass แล้วเปิดไฟล์ p โลดดดด ซึ่งจะเจอหน้าถามหา Master Password = =”
ลองเอา key ที่ถอดมาได้จากรูปภาพใส่ดู แล้วก็โป๊ะเชะ!
ด้วยความที่ไม่เคยใช้ ก็เลยลองเอาเมาส์ไปชี้เล่นๆดู เอ๊ะตรงนี้คืออัลไล (,__, )a เก็บไว้ก่อน
ลองดับเบิลคลิกเข้าไปดูใน Text file ซะหน่อย จะเห็นว่าตรงช่อง Notes: มันว่างๆเหมือนไม่มีอะไร แต่ทำไมมันยาวววววว 😶
เมื่อเลื่อนไปดูล่างสุด เหมือนจะเจอ key อีกแล้ว แต่มันไม่ใช่ flag !!!
UzE0f6Sb2ZvUtvsD
ตอนนี้ใน Documents ก็เหลือไฟล์เดียวแล้ว คือไฟล์ f: openssl
จากที่บอกข้างต้นว่ามันเป็น Encryption data ต้องใช้ key ในการ Decryption ซึ่งแน่นอนเหลือ key เดียวแล้วที่ยังไม่ได้ใช้ และเพิ่งแกะออกมาได้
ซึ่งในการ Decryption ต้องรู้ก่อนว่าใช้ Algorithm อะไร และแน่นอนว่ามันคือ AES-256-CBC ที่โจทย์ได้ทำการใบ้ไว้ใน Keepass
เมื่อทำการ Decrypt แล้วก็จะได้ Flag ออกมา 😎
THCTF{Uu5AzrJD3mMKDG0z}
จอบอ. 😁
ประสบการณ์ดวงซวยรับปี 2018
3-5 Jan 2018
ปวดท้องทุรนทุราย ถ่ายเป็นเลือดบางเวลา สรุปกระเพาะ/ลำไส้อักเสบ
11 Jan 2018
โดนรถเอี้ยๆขับปาดขึ้นมาจอดบนทางเท้าต่อหน้าต่อตา มืดก็มืด เดินหลบไปลงหลุม เจ็บขาชิบหาย (https://t.co/r55KX7y4UQ)
20-25 Jan 2018
ท้องก็ไม่ดีอยู่แล้ว อยู่ดีๆถ่ายหนักมาก เพลียมาก โลกหมุนไปหมด ไข้ขึ้นสูง สุดท้ายโดน admit
กว่าจะหายล่อไป 40 รอบ+ อ้วกอีก 3 รอบ ในเวลา 5 วัน
ตรวจเลือด/ตรวจขี้/ตรวจเยี่ยว สรุปหมอวินิจฉัยติด Rotavirus พร้อมเซ็นต์เอกสารส่งข้อมูลให้กระทรวงสาธารณสุข
เรื่องอื่นๆก็มีประปรายเรื่อยๆ โดนมอไซต์สอยหลังบนทางเท้ามั่ง โดนเฉี่ยวบนทางเท้ามั่ง เดินบนทางเท้าแต่โดนบีบแตรด่าบิดาก็มีอยู่เรื่อยๆ จะเลี้ยวแต่ไม่เปิดไฟเลี้ยวหรือเปิดประชั้นชิดแล้วเกือบโดนชนก็บ่อย ใครจะตรัสรู้ว่าคุณจะเลี้ยววว
Microsoft Outlook : Read Yahoo, Gmail using IMAP
full explanation
for Gmail: https://support.google.com/mail/answer/7126229
for Yahoo: https://www.technipages.com/add-yahoo-mail-outlook
How to Install Let’s Encrypt on Hostinger
- Enable SSH access
– Click SSH Access button
– Toggle Disable button to Enable and click Update
- Installing ACME client and Composer
– connect to your hosting via SSH
ssh [email protected] -p 65002
– clone acme client from github
git clone https://github.com/kelunik/acme-client
– cd to acme folder
cd acme-client
– Download and install the composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');";
php composer-setup.php;
php -r "unlink('composer-setup.php');";
php composer.phar install --no-dev - Generating SSL Certificate
php bin/acme setup --server letsencrypt --email [email protected]
php bin/acme issue --domains yourdomain.com:www.youdomain.com --path /home/x123011738/public_html:/home/x123011738/public_html --server letsencrypt
cd /home/x123011738/acme-client/data/certs/acme-v01.api.letsencrypt.org.directory/yourdomain.com
cat fullchain.pem
cat key.pem - Installing Certificat
– click SSL button
– Paste contents from certificate.txt to Certificate:(CRT) and contents from privatekey.txt to Private Key:(KEY)
- Checking expiration date and renewing SSL certificate
php acme-client/bin/acme check --name yourdomain.com --server letsencrypt
– you can set cron job to run the following command every other month
php acme-client/bin/acme issue --domains yourdomain.com:www.yourdomain.com --path /home/x123011738/public_html:/home/x123011738/public_html --server letsencrypt
full explanation
https://www.hostinger.com/tutorials/ssl/how-to-install-free-ssl-from-lets-encypt-on-shared-hosting
for wordpress:
Really Simple SSL https://wordpress.org/plugins/really-simple-ssl/