Jump to content
php.lv forumi
normis_161

MySQL injekcijas - kā radīt vidi, lai redzētu to darbību.

Recommended Posts

Diemžēl nevarēju atrast atbildi šajā topikā, un tāpēc veidoju jaunu. Situācija ir tāda, ka tagad lasu, kā tiek veidotas MySQL injekcijas un gribējās arī prakstiski izmēģināt tās. Bet problēma radās ar to, ka nezinu kādu vidi nepieciešams izveidot, lai varētu izmēģināt pēc iespējas dažadāka veida MySQL injekcijas. Uz doto brīdi studēju šo rakstu. Pagaidām ir sanācis izmēģināt tikai viena veida MySQL injekciju. Izmantotais kods ir sekojošs:

<form action = "index.php" method = "post">
<table>
<tr><td>Uzvārds:</td><td><input type = "text" name = "surname"/></td></tr>
<tr><td>Parole:</td><td><input type = "password" name = "password"/></td></tr>
<tr><td><input type = "submit" name = "login" value = "Ienākt"/></td></tr>
<tr><td><input type = "submit" name = "epasts" value = "Aizmirsta parole"/></td></tr>
<tr><td><input type = "submit" name = "register" value = "Reģistrēties"/></td></tr>
</table>
</form>
<?php
if(isset($_POST['login'])){
$uzvards = $_POST['surname'];
$parole = $_POST['password'];
$query = mysql_query("SELECT * FROM lietotaji WHERE uzvards = '$uzvards' AND parole = '$parole'");
$count = mysql_num_rows($query);
if($count){ echo "Sveiks $uzvards";}
else {echo "nepareizs lietotajs";}
}
?>

Kā redzams nekādas pārbaudes netiek veiktas. Pagaidām ir sanācis izveidot vienu veiksmīgu MySQL injekciju, kad ievadlaukā laukā tiek ievadīta sekojoši dati:

' or '1' = '1

Bet ja vēlētos jau šādu variantu, piemēram, izmantot:

$query = mysql_query("SELECT * FROM lietotaji WHERE parole = 'c'; DROP TABLE lietotaji;")

Tad jau rodas problēma ar to, ka mysql_query neatbalsta divu vaicājumu izveidošanu vienā. Šī iemesla dēļ rodas jautājums, kādu vidi vislabāk izmantot, kuru būtu pēc iespējas būtu tūvāka reālai dzīvei, lai varētu nodemonstrēt kā strādā MySQL injekcijas izmantojot tādus ievadlaukus, kas man piemēra ir parādīti?

Edited by normis_161

Share this post


Link to post
Share on other sites

Lai labāk izprastu šo tēmu, un man ir jāizstrādā darbs par datu bāžu drošību mācību nolūkos. Šī iemesla dēļ man radās ideja, ka varētu izveidot vidi, kur varētu nodomonstrēt kā strādā šīs injekcijas. Bet pie paša vnk piemēra, nesanāk visu reālizēt kā gribētos.

Share this post


Link to post
Share on other sites

salidzini: mysql_query("SELECT * FROM lietotaji WHERE parole = 'c'; DROP TABLE lietotaji;")

 

Un: SELECT email, passwd, login_id, full_name

FROM members

WHERE email = 'x'; DROP TABLE members; --';

Share this post


Link to post
Share on other sites

Nu ... variants, kad uztaisa DROP TABLE īsti nav IRL redzēts.

Reālāks keiss ir discloure ar UNION SELECT (SELECT no informaction_schema palīdz atrast DB struktūru).

Palasi bugtraq pameklē open source PHP appu exploitus un papēti tos :)).

Share this post


Link to post
Share on other sites

Liels paldies par skaidrojumu , tagad es nedarīšu šādu kļūdu .

Gaidu to brīdi, kad boti sāks iesaistīties arī flamewar diskusijās un pie tam spēs pateikt arī kaut ko sakarīgu. Tad cilvēks savu laiku būs nokalpojis un varēs paiet malā.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...