• php代码审计-下载站系统Simple Down v5.5.1 xss跨站漏洞分析


    author:zzzhhh

    一、        跨站漏洞

    利用方法1,直接在搜索框处搜索<script>alert(/xss/)</script>//',再次刷新,跨站语句将被带入数据库,并直接在热门搜索处输出。

    漏洞产生原因,因为未对输入变量进行编码,跨站语句未经转换直接存储入数据库中。见图1,


    图1

    二、代码分析
    先看index.php  53-54行代码是这么写的,javascript获取ID为search的input表单传参到tools.php文件中的seacher变量中。。。

            <input  type="text" id="search" maxlength="64" style="400px; height:26px;" placeholder="点击搜索按钮查看结果" value=""/>
            <button type="button" style="80px;height:35px" onClick="javascript:send_request('tools.php?seacher='+document.getElementById('search').value);">搜索</button>  
           。。。。省略N行
          //63-65行代码
           <?php echo $row['SEACHERDATA']; ?> //输出变量SEACHERDATA
                <span class='hover-animate-left'></span><span class='hover-animate-right'></span></a>  
          <?php } ?>

    那我们根据seacher,SEACHERDATA两个变量在 ools.php文件中进行搜索后 ,关键代码34-61行代码,好吧,我把整段选择结构的代码发过来吧

    if (empty($seacher))      
    {
            $result=mysql_query("SELECT * FROM HBDX_BLUE ".$show);    
            $num_max=mysql_num_rows($result); 
    
            $result=mysql_query("SELECT * FROM HBDX_BLUE ".$show." ORDER BY TOP ".$hot." LIMIT $startCount,$perNumber"); 
    }
    else
    {        
            $datetime = date("Y-m-d H:i:s");
            $seacherresult = mysql_query("SELECT * FROM HBDX_SEACHER WHERE SEACHERDATA = '".$seacher."'"); /*查询SEACHERDATA表内的内容输出到seacherresult变量*/
            $seachernum = mysql_num_rows($seacherresult);  /*统计搜索次数*/
            if($seachernum == 0)
            {
                    mysql_query("INSERT INTO HBDX_SEACHER (SEACHERDATA,SEACHERNUM,DATETIME) VALUES ('$seacher',1,'$datetime')");  /*查询热门搜索关键词次数为0后,将该关键字写入表SEACHERDATA内*/
            }
            else
            {
                    $row = mysql_fetch_array($seacherresult);  /*遍历seacherresult变量结果赋值到row中*/
                    mysql_query("UPDATE HBDX_SEACHER SET SEACHERNUM = '".($row['SEACHERNUM'] + 1)."' WHERE SEACHERDATA = '".$seacher."'");
            }
    
            $result=mysql_query("SELECT * FROM HBDX_BLUE WHERE FILETITLE LIKE '%".$seacher."%'"); 
            $num_max=mysql_num_rows($result); 
    
            $result=mysql_query("SELECT * FROM HBDX_BLUE WHERE FILETITLE LIKE '%".$seacher."%' OR FILETAG LIKE '%".$seacher."%' ORDER BY TOP,ID DESC LIMIT $startCount,$perNumber"); 
            $num=mysql_num_rows($result); 
    }

     http://www.wooyun.org/bugs/wooyun-2010-037204  
    wooyun 这篇关于此系统的漏洞提交迟迟不公开。小弟打算开个下载站,选择了Simple Down v5.5.1这个系统,无奈只能自己亲自动手,才疏学浅,哪位兄弟可随我一同继续深入分析此系统漏洞?

  • 相关阅读:
    现代操作系统读书笔记 2
    java8 中 ImageIO 读取 tiff 格式的图片失败
    word 转 pdf,c#代码
    spring 技术内幕读书笔记1
    操作系统精髓与设计读书笔记1
    手把手教你WEB套打程序开发
    WEB打印控件Lodop使用体会
    listview下拉刷新 上拉(滑动分页)加载更多
    如何解析android访问webservice返回的SoapObject数据(可用)
    统计子串在另一个字符中出现的次数
  • 原文地址:https://www.cnblogs.com/17bdw/p/3466767.html
Copyright © 2020-2023  润新知