Less-3
注入点闭合的问题
首先先讲讲闭合符的问题
一般注入点闭合无非是 ‘ , “ , ‘) , “)等各种组合(逗号是分隔符)
一般的代码:$id=$_GET[‘id’];
$sql=”SELECT * FROM users WHERE id=’$id’ LIMIT 0,1”;
就是这里,对id进行了修饰,用’(单引号)把id括了起来。所以我们构造语句的时候,一是要把我们构造的语句‘逃逸’出来,二是要把结构进行补全或者适当的注释。
注释可以用–+;– -;#把后面的’或者多余的修饰符注释掉
less1--根据注入位置数据类型可将sql注入分为:数字型和字符型。用 ?id=1 和?id=1’ 探测是否存在SQL注入。发现前者返回正常,后者会出现mysql语法错误。
错误: ’ ‘1’’ LIMIT 0.1 ’
SQL: select login_name,password from admin where id=‘id’ limit 0,1;
less2–
错误: ’ ’ LIMIT 0,1 ’
SQL: select login_name ,password from admin where id=id limit 0,1;
less3–
错误 : ’ ‘1’’) LIMIT 0,1 ’
SQL: select login_name,password from admin where id=(‘id’) limit 0,1;
构造闭合:?id=1’) –+ 或者 ?id=1’) –%20 //–+表示注释后面的内容
less-4– 双引号绕过:
错误:‘ “1\”) LIMIT 0,1 ’ 或者 ’ “ 1””) LIMIT 0,1 ’ //这里的\对 “ 进行了转义. //这里 “ ” 使里面的单引号转化为 1
SQL: select login_name,password from admin where id=(“ID”) limit 0,1
构造闭合: ?id=1”) –+ 或者 ?id=1”) –%20
正片开始
输入?id=1’
出现报错,可知加‘)注意是’ 不是 ‘
接下来就是和前面的关一样了。
Less-4
和第三关一样
知道要加“)
其他就和上面一样
ye