Linux
apache 不提供包含“/bin/sh”模式的文件名
我一直在追踪一個錯誤,我已將其簡化為以下情況。我們有一個執行 apache 的網路伺服器,它不提供包含伺服器所在校園之外的“/bin/sh”模式的文件名(例如
www.example.com/some/sub/folders/bin/show.html
。可能相關的是,https
開頭的相同 url 而不是http
沒有一旦您跳過認證錯誤就會出現問題。很難在我們的應用程序中更改所有此類文件名,因此我正在嘗試解決此問題。我該如何進一步調試?日誌文件
/etc/httpd/logs/access_log
顯示GET
此文件名的不相關請求 URL。其他文件名按原樣顯示。我檢查了下的配置文件/etc/httpd/conf
,/etc/httpd/conf.d
但我看不到任何相關的東西,雖然我不熟悉這些配置文件。Apache版本如下:
# httpd -v Server version: Apache/2.0.52 Server built: Oct 29 2008 09:20:05
有任何想法嗎?
編輯
來自校園內的日誌消息(響應 304 用於正常記憶體瀏覽器視窗,響應 200 用於私有非記憶體瀏覽器視窗):
(ip addr) - - [27/Apr/2017:13:06:45 +0300] "GET /appserv/bin/sh.html HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0" (ip addr) - - [27/Apr/2017:13:06:54 +0300] "GET /appserv/bin/sh.html HTTP/1.1" 200 154 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0"
來自校園外的日誌消息(使用 tor 和各種 vps 節點測試):
(ip addr) - - [27/Apr/2017:13:08:08 +0300] "GET /cosbiom/component/option,com_extcalendar/Itemid,99999999/extmode,day/date,2031-02-04/ HTTP/1.1" 200 28936 "-" "Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)"
如果這在校園內有效,但在外部無效,那麼這似乎不太可能是網路伺服器配置的問題(可能是,但我懷疑這種配置會非常明顯)。
在我看來,基於簡單正則表達式匹配的校園網路邊緣有某種基於檢查的防火牆似乎更有可能。這不會(通常)影響 https 流量(因為它是加密的,因此不接受檢查)。
您需要與負責校園網路連接的任何人交談(我假設您已經嘗試過多個外部連接,因此您確定問題出在伺服器端)。