过年啦过年啦,祝表哥们新年快乐~
新的一年赚个金钵满盆 ~
深夜不适合玩阴阳师,连抽了两张R卡之后现在正在怀疑世界中 T^T
直接上漏洞文件
/framework/www/usercp_control.php
页面是这样的
所以可以修改的地方只有姓名和性别,所以$ext_list是包含着两个信息的数组,往下看完能发现,只有 $extlist[] = $this->lib(‘form’)->format($value); 存在过滤输入的函数(当时以为format是内置函数。。。所以一直没找到过滤函数,尴尬癌都要犯了~)
跟踪函数format() —>/framework/init.php
因为$msg是数组,进入循环

 

执行
这是一步递归的回溯
进入
因为现在回溯的是key,但是回溯结束后$type=”system”;
继续往下执行
所以可以看出
这一步执行的也是
所以并没有对双引号过滤~
本地测试
直接在input标签里面进行闭合
payload:”> onmousemove=”alert(1)” “
进入后台的用户管理界面
尝试着打了一下cookie
如果有不对的地方还请表哥们指出来~新年快乐~ ^_^
后台地址:http://localhost/phpok/admin.php?c=index

漏洞文件:/application/member/controller/index.class.php
/*
*
* 用户修改资料
*/
public function account(){
        if(isset($_POST['dosubmit'])){
            if(!is_mobile($_POST['mobile'])) showmsg('手机号不正确!');
            unset($_POST['userpic'], $_POST['guest']);
            $res = D('member_detail')->update($_POST, array('userid'=>$this->userid));
            if($res){
                showmsg('更新资料成功!','',1);
            }else{
                showmsg(L('data_not_modified'));
            }
        }
        yzm_base::load_sys_class('form','',0);
        $memberinfo = $this->memberinfo;
        extract($memberinfo);
        if($area){
            list($cmbProvince,$cmbCity,$cmbArea) = explode('|',$area); //分配地区
        }else{
            $cmbProvince = $cmbCity = $cmbArea ='';
        }       
        include template('member', 'account');
    }
模块方法对应的url以及其页面如下:
http://localhost/Yzmcms/index.php/member/index/account.html
除了昵称是默认的以外,别的都可以随意填写,从上面的方法可以看出,只对手机号的输入做了限制,然后就直接进入数据库了。。。
$res = D('member_detail')->update($_POST, array('userid'=>$this->userid));
于是尝试观察是否在前端进行了过滤
<tr><td>昵称:</td><td><input type="text" name="nickname" value="{$nickname}"  class="input"><span class="red">*</span></td></tr>
       <tr><td>性别:</td><td>
       <label><input class="radio" type="radio" name="sex" value="男" {if $sex != '女'}checked="checked"{/if}>男</label>
       <label><input class="radio" type="radio" name="sex" value="女" {if $sex == '女'}checked="checked"{/if}>女</label>
       </td></tr>
       <tr><td>QQ:</td><td><input type="text" name="qq"  value="{$qq}" class="input"><span class="red">*</span></td></tr>
       <tr><td>手机:</td><td><input type="text" name="mobile"  value="{$mobile}" class="input"><span class="red">*</span></td></tr>
       <tr><td>电话:</td><td><input type="text" name="phone" value="{$phone}" class="input"></td></tr>
       <tr><td>生日:</td><td>{form::datetime('birthday', $birthday)}</td></tr>
       <tr><td>行业:</td><td><input type="text" name="industry" value="{$industry}" class="input"></td></tr>
       <tr><td>所在地:</td><td>
       <select id="cmbProvince"></select><select id="cmbCity"></select><select id="cmbArea"></select>
       <input type="hidden" name="area" id="area" value="{$area}">       
好吧,并没有。。尴尬了
直接插入啦~~~
playload:"><script>alert(1)</script>
个人主页
进入后台
尝试着打cookie