开发人员通常直接使用或连接潜在的易受攻击的输入与文件,或假设输入文件是有效的。如果未正确检查数据,则可能导致Web服务器处理或调用易受攻击的内容。
一些经典的例子包括 -
.jsp
文件上传到Web目录中。.gif
进行调整大小。.exe
文件上传到Web目录中。第1步 - 启动WebGoat并导航到恶意文件执行部分。如下所示-
第2步 - 为了测试演示,我们需要在上述位置上传guest.txt。
第3步 - 我们创建一个jsp
文件,以便在执行jsp时创建guest.txt
文件。由于我们执行jsp来创建文件,因此jsp在此上下文中没有任何显示。
<HTML> <% java.io.File file = new java.io.File("C:\\Users\\username$\\.extract\\webapps\\WebGoat\\mfe_target\\guest.txt"); file.createNewFile(); %> </HTML>
第4步 - 这里将上传jsp文件并在上传后复制相同的链接位置。上传期望的是图片,但这里上传的一个jsp文件。
第5步 - 通过导航到jsp文件,将不会向用户发送任何消息。
第6步 - 现在刷新已上传jsp文件的会话,将收到消息“* Congratulations. You have successfully completed the lesson”。
- 使用网站权限保护网站。
- 采用Web应用安全对策。
- 了解IIS 7.0中的内置用户和组帐户。