normis_161 Posted September 17, 2012 Report Posted September 17, 2012 (edited) 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 September 17, 2012 by normis_161 Quote
zintis8789 Posted September 17, 2012 Report Posted September 17, 2012 (edited) http://www.unixwiz.n...-injection.html Un jautājums kapēc tu mācies injekcijas? Bet fakts: Kā var aizsargāt lapu, ja nezini kā viņu nogāzt.. Edited September 17, 2012 by zintis8789 Quote
normis_161 Posted September 17, 2012 Author Report Posted September 17, 2012 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. Quote
zintis8789 Posted September 17, 2012 Report Posted September 17, 2012 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; --'; Quote
krikulis Posted September 17, 2012 Report Posted September 17, 2012 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 :)). Quote
Kemito Posted September 18, 2012 Report Posted September 18, 2012 Loģiski veido vienu vaicājumu, ar apakšvaicājumiem? Quote
codez Posted September 18, 2012 Report Posted September 18, 2012 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ā. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.