Jak zademonstrować wtrysk SQL Second Order?

Próbowałem więc replikować wtrysk SQL drugiego rzędu. Oto przykładowy szablon dwóch witryn opartych na php, które przygotowałem. Nazwijmy to po prostu formularzem rejestracji wyborców. Użytkownik może się zarejestrować, a następnie możesz sprawdzić, czy jesteś zarejestrowanym wyborcą, czy nie.

insert.php

<?php

$db_selected = mysql_select_db('canada',$conn);
if (!db_selected)
    die("can't use mysql: ". mysql_error());

$sql_statement = "INSERT into canada (UserID,FirstName,LastName,Age,State,Town)
                    values ('".mysql_real_escape_string($_REQUEST["UserID"])."',
                    '".mysql_real_escape_string($_REQUEST["FirstName"])."',
                    '".mysql_real_escape_string($_REQUEST["LastName"])."',
                    ".intval($_REQUEST["Age"]).",
                    '".mysql_real_escape_string($_REQUEST["State"])."',
                    '".mysql_real_escape_string($_REQUEST["Town"])."')";

echo "You ran the sql query=".$sql_statement."<br/>";
$qry = mysql_query($sql_statement,$conn) || die (mysql_error());
mysql_close($conn);
Echo "Data inserted successfully";
}
?>

select.php

<?php


$db_selected = mysql_select_db('canada', $conn);
if(!db_selected)
    die('Can\'t use mysql:' . mysql_error());
$sql = "SELECT * FROM canada WHERE UserID='".addslashes($_POST["UserID"])."'";
echo "You ran the sql query=".$sql."<br/>";
$result = mysql_query($sql,$conn);
$row=mysql_fetch_row($result);

$sql1 = "SELECT * FROM canada WHERE FirstName = '".$row[1]."'";
echo "The web application ran the sql query internally=" .$sql1. "<br/>";
$result1 = mysql_query($sql1, $conn);
$row1 = mysql_fetch_row($result1);

mysql_close($conn);
echo "<br><b><center>Database Output</center></b><br><br>";

echo "<br>$row1[1] $row1[2] , you are a voter! <br>";

echo "<b>VoterID: $row[0]</b><br>First Name: $row[1]<br>Last Name: $row[2]
    <br>Age: $row[3]<br>Town: $row[4]<br>State: $row[5]<br><hr><br>";
}
?>

Dlatego celowo uczyniłem tę lukę podatną na pokazanie, jak działa wtrysk SQL z drugiego rzędu, użytkownik może wpisać kod w sekcji imienia (gdzie obecnie utknąłem, próbowałem wielu różnych sposobów, ale wydaje się, że nie mogę dostać to zrobić cokolwiek). Następnie, gdy osoba chce aktywować kod, który wstawił do sekcji imienia, musi tylko wpisać identyfikator użytkownika i kod zostanie wstawiony.

Na przykład: wpiszę stronę insert.php jako: userid = 17

firstname = (muszę tu coś wstrzyknąć)

lastname = ..

wiek = ..

town = ..

state = ..

Następnie, gdy sprawdzę moje dane i wpiszę 17, wstrzyknięty skrypt SQL zostanie aktywowany. Czy mogę uzyskać kilka przykładów na temat luk, które mogę przez to pokazać?

questionAnswers(2)

yourAnswerToTheQuestion