实验吧貌似有点难
知識點:empty()函數;HTTP請求頭中偽造客戶端IP地址
X-Forwarded-For繞過指定IP地址,方法:HTTP頭添加X-Forwarded-For:1.1.1.1
?
?
?
(1)PHP empty()函數?用于檢查一個變量是否為空
empty() 判斷一個變量是否被認為是空的。當一個變量并不存在,或者它的值等同于 FALSE,那么它會被認為不存在。
empty() 并不會產生警告,哪怕變量并不存在。 這意味著?empty()?本質上與?!isset($var) || $var == false?等價。
當 var 存在,并且是一個非空非零的值時返回 FALSE 否則返回 TRUE。
(2)_SERVER的問題
https://www.cnblogs.com/rendd/p/6182918.html
?
看到這幾行代碼,我們不難發現,如果要的到flag,那么IPs=="1.1.1.1,而此時我們輸出的結果是“錯誤!你的IP不在訪問列表之內!”,
顯然我們的IP不是1.1.1.1.那么我們就應該想辦法修改IP地址為1.1.1.1,這樣便能得到結果。
首先查看是否存在$_SERVER["HTTP_CLIENT_IP"],如果存在IP就是它,
否則接下來看$_SERVER["HTTP_X_FORWARDED_FOR"],
最后看$_SERVER["REMOTE_ADDR"],如果以上三個變量都不存在的話則返回0.0.0.0。
?
X-Forwarded-For
當我們用代理服務器的時候,X-Forwarded-For這個值記錄的是我們客戶端原本的IP地址,而非代理服務的IP,簡言之就是用來識別經過HTTP代理后的客戶端IP地址。X-Forwarded-For在頭信息中對應的就是X-Forwarded-For,是可以進行偽造的。
?
首先我們來講講偽造X-Forwarded-For的方法,我們可以直接使用Firefox的X-Forwarded-For header來實現,操作非常的簡單:
?
設置好后,刷新頁面,
?
二:
用Burpsuite 抓包
?
?右鍵發送到Repeater
添加一個X-Forwarded-For:1.1.1.1或者Client-ip:1.1.1.1,然后GO
?
?右邊返回里
?
轉載于:https://www.cnblogs.com/liqik/p/10611181.html
總結
- 上一篇: 【读书】《非暴力沟通》
- 下一篇: Flatten Binary Tree