sql字符型型

部分源码如下:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);

	if($row)
	{
  	echo "<font size='5' color= '#99FF00'>";
  	echo 'Your Login name:'. $row['username'];
  	echo "<br>";
  	echo 'Your Password:' .$row['password'];
  	echo "</font>";
  	}
	else 
	{
	echo '<font color= "#FFFF00">';
	print_r(mysql_error());
	echo "</font>";  
	}
}
	else { echo "Please input the ID as parameter with numeric value";}

?>

由源码可知,此处没对传入的值进行过滤,且查询语句是字符型,所以可以用 ’ 闭合前面的单引号,后面跟上所要查询的语句

1)首先判断有几个字段 ’ order by 1–+ (数字代表字段的个数,#,–+代表注释符后面的 LIMIT 0,1 语句不用执行了),字段正确页面正常,否则不正常,此处字段有三个。
在这里插入图片描述

在这里插入图片描述

2)然后跟上想查询的语句 union select 1,user(),3–+(要让语句先报错,在回显数字的地方写查询语句)
在这里插入图片描述

注意点:
在这里插入图片描述
字符型查询语句,’'引号内的所有内容都将看成一个整体,如果数据库中有匹配则将其查询出来,如果没有,mysql会将 2 and 1=2 转换成2查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值