有一php文件如下
<?php
 include_once("../lib/connect.inc.php");
 mysql_web(1);
 mysql_select_db("photo");
$file = $_GET['photo'];
    $sql2="select picname from pic where sn=$file";
    $ans2 = mysql_query($sql2);
    $rec1=mysql_fetch_row( $ans2);  
  $f = "pic/".$rec1[0];
  $image = fread( fopen( $f, 'r' ), filesize( $f ) ); 
 echo $image;
?>
现想通过union控制$rec1[0],读取../lib/connect.inc.php,但是由于picname字段长度只有10,不足以存储../lib/connect.inc.php,问可有方式能解决?测试语句如:xx.php?photo=-1 union select '../lib/connect.inc.php' /*
谢谢!

解决方案 »

  1.   

    测试语句如:xx.php?photo=-1 union select '../lib/connect.inc.php' /* 这是什么意思?
      

  2.   

    上面的php文件名叫做xx.php,如果不出意外,xx.php?photo=-1 union select '../lib/connect.inc.php' /*将会读出connect.inc.php的内容。
      

  3.   

    别用url 操作数据 ,这样的你数据库没什么安全可言
      

  4.   

    mysql只能执行单条查询,多条查询要用存储过程的,一般来说,这种注入方法是没有用的,你可以直接在数据库操作里将注入代码写入进行测试,结果是无法完成注入的。
      

  5.   

    不是单条的问题。应该是通过union能不能突破字段长度限制