
نوشته اصلی توسط
amirazizi
سلام دوستان
خسته نباشید
بنده در قسمت کاربران چت رومم یک قسمت برای جستجو کاربر قرار دادم.
کد بصورت زیر می باشد :
کد:
<?php
if (isset($_POST['search'])){
$posted_name = trim($_POST['search']);
$result2 = mysql_query("SELECT * FROM db1_etchat_user where etchat_username = '$posted_name' and etchat_userprivilegien != 'gast' order by emtiyaz desc");
$num_rows = mysql_num_rows($result2);
if ($num_rows > 0){
echo '
<table cellspacing="0">
<tr>
<th>مدت زمان ØØ¶ÙˆØ±</th>
<th>امتیــاز</th>
<th>درجــه</th>
<th>نــام کـاربر</th>
<th>رتبه</th>
</tr>';
$ss = 0;
while($row = mysql_fetch_array($result2))
{
$ss = $ss +1;
$time = $row['emtiyaz'];
$usrmode = $row['etchat_userprivilegien'];
if ($usrmode=="user"){
$usrpic = "img/user_i.png";
}elseif ($usrmode=="user2"){
$usrpic = "img/user2_i.png";
}elseif ($usrmode=="user3"){
$usrpic = "img/user3_i.png";
}elseif ($usrmode=="user4"){
$usrpic = "img/user4_i.png";
}elseif ($usrmode=="parast"){
$usrpic = "img/parast_i.png";
}elseif ($usrmode=="mod"){
$usrpic = "img/mod_i.png";
}elseif ($usrmode=="moaven"){
$usrpic = "img/mymoaven.png";
}elseif ($usrmode=="admin"){
$usrpic = "img/admin_i.png";
}
echo '
<tr>
<td> دقیقه '.$time.'</td>
<td>'.$time.'</td>
<td><img border="0" src="'.$usrpic.'"></td>
<td>'.$row['etchat_username'].'</td>
<td>'.$ss.'</td>
</tr>' ;
echo'</table>';
}
}else{
echo '
<br />
<div style="font-family:tahoma;font-size:8pt;text-align: center">
<span style="color:red">کـاربری با این نام ÛŒØ§ÙØª نشد </span>
</div>
';
}
}
?>
حالا یک سری آدم بیکار میان و کد زیر را در کارد سرچ وارد می کنن و رمز کاربرارو بدست میارن.
کد:
' union select 1,2,3,4,5,6,7,8,9,10,group_concat(etchat_username,0x3a,etchat_userpw),12,13,14,15,16,17 from db1_etchat_user where etchat_userprivilegien='admin'-- and 'x'='x
دوستان عزیز ممنون میشم کمکم کنن.
با تشکر
با اجازه ی صاحب تاپیک .
دوست عزیز شما باید همه ی مقدار ها قبل از اینکه به صورت کوئری در بیاد از فیل-تر بدی و یک سری محدود قرار بدی یا اینکه از PDO استفاده کن
روش آخر هم از تابع stristr میتونی جلوی این کار رو بگیری.
در رابطه با اینکه گفتم از فیل-تر عبور بدی از این تابع میتونی استفاده کنی :
کد PHP:
<?php
function anti($value) {
if( get_magic_quotes_gpc() ){
$value = stripslashes( $value );
}
if( function_exists( "mysql_real_escape_string" ) ){
$value = mysql_real_escape_string( $value );
}
else{
$value = addslashes( $value );
}
return $value;
}
?>