master是SQL server最重要的数据库,是整个数据库的核心,用户不能直接修改。里面数据库包括用户的登陆信息、用户所在的组、所有系统的配置选项、服务器中本地数据库的名称和信息、初始化方式等。
是SQL server创建数据库的模板,任何对model数据库中数据的修改都将影响所有使用模板创建的数据库。
提供SQL server Agent工作的信息,SQL server Agent是SQL server中的一个Windows服务,该服务用来运行制定的计划任务。
是一个临时数据库,存在临时对象或中间结果。SQL server关闭后,该数据库将被清空。
sys.databases:所有数据库名
INFORMATION_SCHEMA.TABLES:当前数据库中的表
INFORMATION_SCHEMA.COLUMNS:当前数据库中的列
sys.database_files:数据库数据文件
T-SQL语句的注释有两种:/**/和--,和oracle一样。
@@SERVERNAME:返回运行 SQL Server 的本地服务器的名称。
@@VERSION:返回当前的 SQL Server 安装的版本、处理器体系结构、生成日期和操作系统。
ALL:如果一组的比较都为True,那么为True
AND:如果两个布尔表达式都为True,则为True
ANY:如果一组的比较中任何一个为True,则为True
BETWEEN:如果操作数在某个范围内,那么为True
IN:如果操作数等于表达式列表之一,那么为True
LIKE:如果操作数与一种模式相匹配,则为True
NOT:对任何其他布尔运算的值取反
OR:如果两个布尔表达式中的一个为True,则为True
SOME:如果在一组比较中,有些为True,则为True
在SQL server中,没有MySQL中的LIMIT控制符,若要实现limit控制符功能则可以用top进行代替
select top (n-m+1) id from tablename
where id not in (
select top m-1 id from tablename
)
+号是字符串串联运算符:'aaa'+'bbb'='aaabbb'
ASCII()、CHAR()、LEFT(str,i)、RIGHT(str,i)、LEN(str)、SUBSTRING(str,i,n)
STR(i):将数值转换到字符数据
类型转换:
CAST(x AS type) :将一个类型转换到另一个类型 CAST(10 AS CHAR(3))
系统函数:
COL_LENGTH(table,column):返回表中指定字段的长度值
COL_NAME(table_id,column_id):返回表中指定字段的名称
DATALENGTH(exp):返回数据表达式的数据的实际长度
DB_NAME(database_id):返回当前数据库的名称
HOST_NAME():返回服务器计算机的名称
SUSER_SNAME():返回当前用户的登录名
USER_NAME():返回数据库用户名
test数据库下users表,Flag数据库下flag_table表
PHP代码
"sa","PWD"=>"admin","Database"=>"test");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if(!$conn){
die(sqlsrv_errors());
}
$id=$_GET['id'];
$sql="SELECT username,passwd FROM users WHERE id='{$id}'";
$query=sqlsrv_query($conn,$sql);
if($query === false){
$errors=sqlsrv_errors();
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."
";
echo "code: ".$error[ 'code']."
";
echo "message: ".$error[ 'message']."
";
}
exit;
}else {
$row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC);
if($row==NULL){
echo 'Empty record null';
}else {
echo "User:{$row['username']},PassWord:{$row['passwd']}";
}
}
sqlsrv_free_stmt($query);
}
?>
查看数据库版本信息和服务器名
查看当前数据库名及当前用户
查询所有数据库
查看当前数据库中所有表
查询当前数据中users表中的字段
查询字段值
修改PHP代码
"sa","PWD"=>"admin520","Database"=>"test");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if(!$conn){
die(sqlsrv_errors());
}
$id=$_GET['id'];
$sql="SELECT username,passwd FROM users WHERE id='{$id}'";
$query=sqlsrv_query($conn,$sql);
if($query === false){
$errors=sqlsrv_errors();
foreach( $errors as $error ) {
echo "SQLSTATE: ".$error[ 'SQLSTATE']."
";
echo "code: ".$error[ 'code']."
";
echo "message: ".$error[ 'message']."
";
}
exit;
}else {
$row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC);
if($row==NULL){
//echo 'Empty record null';
echo 'hello';
}else {
//echo "User:{$row['username']},PassWord:{$row['passwd']}";
echo 'hello';
}
}
sqlsrv_free_stmt($query);
}
?>
报错注入查询版本信息
报错查询数据库
修改PHP代码
"sa","PWD"=>"admin520","Database"=>"test");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if(!$conn){
die(sqlsrv_errors());
}
$id=$_GET['id'];
$sql="SELECT username,passwd FROM users WHERE id='{$id}'";
$query=sqlsrv_query($conn,$sql);
if($query === false){
$errors=sqlsrv_errors();
foreach( $errors as $error ) {
//echo "SQLSTATE: ".$error[ 'SQLSTATE']."
";
//echo "code: ".$error[ 'code']."
";
//echo "message: ".$error[ 'message']."
";
}
exit;
}else {
$row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC);
if($row==NULL){
echo 'Empty record null';
}else {
//echo "User:{$row['username']},PassWord:{$row['passwd']}";
echo 'hello';
}
}
sqlsrv_free_stmt($query);
}
?>
修改PHP代码
"sa","PWD"=>"admin520","Database"=>"test");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if(!$conn){
die(sqlsrv_errors());
}
$id=$_GET['id'];
$sql="SELECT username,passwd FROM users WHERE id='{$id}'";
$query=sqlsrv_query($conn,$sql);
if($query === false){
$errors=sqlsrv_errors();
foreach( $errors as $error ) {
//echo "SQLSTATE: ".$error[ 'SQLSTATE']."
";
//echo "code: ".$error[ 'code']."
";
//echo "message: ".$error[ 'message']."
";
}
exit;
}else {
$row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC);
if($row==NULL){
echo 'hello';
}else {
//echo "User:{$row['username']},PassWord:{$row['passwd']}";
echo 'hello';
}
}
sqlsrv_free_stmt($query);
}
?>
时间盲注