2015-05-07 68 views
0

我用掃描儀維加測試我的web應用程序,它發現可以通過輸入命令,像這樣被發現了一些Shell注入漏洞:如何使用web.config防止Windows IIS上的shell注入和盲目計時?

GET /http:/mywebsite.com/?s="%20%3B%20/bin/sleep%2031%20%3B 

GET /http:/mywebsite.com/http:/http:/mywebsite.com/?s="%20%3B%20/bin/sleep%2031%20%3B 

我運行Windows Server的IIS和PHP。我的web.config文件的一部分是在這裏:

 <requestFiltering> 
      <denyUrlSequences> 

       <add sequence="module" /> 
       <add sequence="engine" /> 
       <add sequence="tpl(\.php" /> 
       <add sequence="profile" /> 
       <add sequence="Root" /> 
       <add sequence="Tag" /> 
       <add sequence="Template" /> 
       <add sequence="Repository" /> 
       <add sequence="code-style" /> 
       <add sequence="GET /?p=/./" /> 
       <add sequence="/?p=/./" /> 
       <add sequence="/?" /> 
       <add sequence="/?p=/./ HTTP/1.1" /> 
       <add sequence="/bin/sleep" /> 
       <add sequence="sleep" /> 
       <add sequence="bin" /> 
       <add sequence="{" /> 
       <add sequence="}" /> 
       <add sequence=";" /> 
       <add sequence="|" /> 
       <add sequence="~" /> 

      </denyUrlSequences> 
      </requestFiltering> 

我試圖做的是從正在使用的使用web.config文件阻止這些類型的查詢。我上面有什麼應該阻止惡意查詢,但它似乎沒有工作,即使更新web.config和重新掃描。任何人都可以給我如何繼續的建議嗎?非常感謝你!

+0

這些看起來像誤報,可能是由服務器響應緩慢導致掃描器認爲其「睡眠」命令成功。如果你在Windows上,你將不會有'/ bin/sleep'。此外,列入黑名單很少有辦法 - 通常有其他方法來構建相同的命令。 – SilverlightFox

回答

0

嘗試在這種情況下,根據您的例子中,有效載荷的查詢來不段使用denyQueryStringSequences因爲,例如(並添加分部,以及只是櫃面)

​​