BugkuCTF: web3 ; 域名解析
阿新 • • 發佈:2018-12-20
web3
開啟題目檢視原始碼:下面的註釋部分給出flag:
str = "KEY{J2sa42ahJK-HS11III}" str2 = "" dict = [] str3 = "" str2 += str.replace( '&#', '' ) dict = str2.split(';') for elem in dict: str3 += chr(int(elem)) print(str3)
指令碼提取字串中的數字後轉化為char型別得出flag
域名解析
域名解析是部署在世界各地的DNS伺服器乾的事(域名到IP地址的轉換)
但是本地機的host檔案:
Hosts是一個沒有副檔名的系統檔案,其作用就是將一些常用的網址域名與其對應的IP地址建立一個關聯“資料庫”,當用戶在瀏覽器中輸入一個需要登入的網址時,系統會首先自動從Hosts檔案中尋找對應的IP地址,如果沒有找到,系統會再將網址提交DNS伺服器進行IP地址的解析。
但是,Hosts檔案配置的對映是靜態的,如果網路上的計算機更改了IP地址,會造成不能訪問的錯誤。
hosts檔案位置:
Linux下:
/etc/hosts
windows下:
C:\Windows\System32\drivers\etc
所以找到hosts檔案,最後一行加入:
123.206.87.240 flag.baidu.com
得到: KEY{DSAHDSJ82HDS2211}
也可以修改頭資訊:用burpsuit抓包修改host頭資訊為flag.bugku.com
補充
http協議中Host頭的作用:
linux curl 命令:
curl [option] [url]
常用選項:
-A/--user-agent <string> 設定使用者代理髮送給伺服器
-b/--cookie <name=string/file> cookie字串或檔案讀取位置
-c/--cookie-jar <file> 操作結束後把cookie寫入到這個檔案中
-C/--continue-at <offset> 斷點續轉
-d/--data/--data-ascii <data> 指定POST的內容
-D/--dump-header <file> 把header資訊寫入到該檔案中
-e/--referer 來源網址
-f/--fail 連線失敗時不顯示http錯誤
-o/--output 把輸出寫到該檔案中
-O/--remote-name 把輸出寫到該檔案中,保留遠端檔案的檔名
-r/--range <range> 檢索來自HTTP/1.1或FTP伺服器位元組範圍
-s/--silent 靜音模式。不輸出任何東西
-T/--upload-file <file> 上傳檔案
-u/--user <user[:password]> 設定伺服器的使用者和密碼
-w/--write-out [format] 什麼輸出完成後
-x/--proxy <host[:port]> 在給定的埠上使用HTTP代理
-#/--progress-bar 進度條顯示當前的傳送狀態
-v/--verbose 用於列印更多資訊,操作失敗時看到警告資訊
-H/--header <header> 指定請求頭引數
--retry <num> 指定重試次數
-I/--head 僅返回頭部資訊,使用HEAD請求
-e/--referer <URL> 指定引用地址
使用:
curl -I "XXX" -H "host: 域名" -v
它與不指定host有時訪問的並不是同一個ip,同一個url根據不同的Host將同一個請求定向到不同主機(host),從而達到負載均衡的效果。