Anti-armenia.ORG - Forumlar - Php admin paneli düzəltmək



Istifadəçi
    2013-02-22 21:11 GMT                 

TheLock



Gold
Mesaj Sayı : 412
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   18  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Salam əziz userlər.İndi sizlərlə admin paneli düzəltmək üçün başlanğıc kodlarını paylaşacam...
İlk səhifəmiz admin.php olsun:
Kod:
[B]<?php[/B]
[B]$user = "admin";[/B]
[B]$pass = "123456";[/B]
[B]?>[/B]
[B][/B]

Giriş etmək üçün bizə bir form lazımdır.Form düzəltək,səhifəmizin adı index.php olsun:
Kod:
[B]<form action="giris.php" method="POST">[/B]
[B]<table align="center">[/B]
[B]<tr>[/B]
[B]<td>İstifadəçi:</td>[/B]
[B]<td>:</td>[/B]
[B]<td><input type="text" name="user"></td>[/B]
[B]</tr>[/B] [B]<tr>[/B]
[B]<td>Şifrə:</td>[/B]
[B]<td>:</td>[/B]
[B]<td><input type="password" name="pass"></td>[/B]
[B]</tr>[/B]
[B]<tr>[/B]
[B]<td></td>[/B]
[B]<td></td>[/B]
[B]<td><input type="submit" value="Giriş"></td>[/B]
[B]</tr>[/B]
[B]</table>[/B]
[B]</form>[/B]
[B][/B]
/code]
Yuxarıda giris.php adlı bir səhifə istifadə etdik,indi giris.php adlı səhifəni yarataq:
Kod:
[B]<?php[/B]
[B]include("admin.php");[/B]
[B]session_start();[/B]
[B]ob_start();[/B]
[B]if(($_POST["user"]==$user) and ($_POST["pass"]==$pass)){[/B]
[B]$_SESSION["login"] = "true";[/B]
[B]$_SESSION["user"] = $user;[/B]
[B]$_SESSION["pass"] = $pass;[/B]
[B]header("Location:control.php");[/B]
[B]}else{[/B]
[B]echo "İstifadəçi adı vəya şifrə yanlışdır!";[/B]
[B]header("Refresh: 2; url=index.php");[/B]
[B]}[/B]
[B]ob_end_flush();[/B]
[B]?>[/B]
[B][/B]
/B][/code]
Səhifəyə daxil olundu,indi şifrənin doğru vəya yanlış olduğunu bilmək üçün control.php adlı səhifə yaratacağıq:[code]
[B]<?php[/B]
[B]include("admin.php");[/B]
[B]session_start();[/B]
[B]if(!isset($_SESSION["login"])){[/B]
[B]echo "Bu səhifəni görüntüləmə icazəniz yoxdur!";[/B]
[B]}else{[/B]
[B]echo "Admin səhifəsi<br>";[/B]
[B]echo "<a href=\"logout.php\">Çıxış</a>";[/B]
[B]}[/B]
[B]?>[/B]
[B][/B][/code]
Və son olaraq admin paneldən çıxış etmək üçün logout.php səhifəsini yaradaq:[code]
[B]<?php[/B]
[B]session_start();[/B]
[B]ob_start();[/B]
[B]session_destroy();[/B]
[B]echo "Çıxış etdiniz.Ana səhifəyə yönləndirilirsiniz";[/B]
[B]header("Refresh: 2; url=index.php");[/B]
[B]ob_end_flush();[/B]
[B]?>[/B]
[B][/B]
[B][/B][/code]
Bugünlük bu qədər,sağolun.

http://s017.radikal.ru/i404/1202/c6/a2947080a3c4.png
Anti-armenia.ORG
    

Istifadəçi
    2013-02-23 02:57 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Birincisi admin logini+parolu statik faylda yazmaq riskdir.Məsləhət görülmür.Özü də parol MD5 ən azından olmalı idi amma səndə orda plaintextdir.
İkincisi giris.php də session_start() çalışmalısanki ən birinci sətrdə olsun.
Ümumiyyətlə session_start() -ı həmişə çalışmaq lazımdır skriptin ən başlanğıında olsun.
Ona görə ki session_start() mız mızadır.Ondan öncə nəsə output olanda aləmi qatır biri birinə.

Kod:
ssher@ubuntu:~/13$ cat -n 9.php
     1  <?php
     2  echo 'UNICODE VAR BURDA';
     3  session_start();
     4
     5  ?>
ssher@ubuntu:~/13$ php -l 9.php
No syntax errors detected in 9.php
ssher@ubuntu:~/13$ php 9.php
UNICODE VAR BURDAPHP Warning:  session_start(): Cannot send session cookie - headers already sent by (output started at /home/ssher/13/9.php:2) in /home/ssher/13/9.php on line 3
PHP Warning:  session_start(): Cannot send session cache limiter - headers already sent (output started at /home/ssher/13/9.php:2) in /home/ssher/13/9.php on line 3


Fikir verdin?
İndi fikirləşki admin.php -ni save edənsə UTF8+BOM-la save etmisən.
yuxarıdakı erroru görəcəksən+sessiya başlamayacaq.


3-cüsü
Kod:
if(($_POST["user"]==$user) and ($_POST["pass"]==$pass))

Bu özü də riskdir.
md5()-a görə yoxla.



4-cüsü
Kod:
$_SESSION["pass"] = $pass


Bundan ümumiyyətlə danımıram.
XSS-olsa bilirsən nə olacaq?Avtomatik parolun attackerdə olacaq.
Yaxud kimsə shared serverdə session_save_path-dən (/tmp)
oxusa sessiyanı parolun getdi o halda da.


Həmçinin logout.php də sadəcə session_destroy() eləmək kifayət deyil.
session_destroy() dan əvvəl sən unset etməlisən session variebleləri.

unset($_SESSION["login"]);
unset($_SESSION["user"]);
unset($_SESSION["pass"]);
sonda isə session_destroy();



logout.php özü də burda CSRF-dir.
+
formda heç bir antibruteforce yoxdur (ANTİCSRF etsən köməyin olar)


Çalış əsas secure codingi öyrənəsən ki,sonra əziyyət çəkməyəsən.

Ana VƏTƏN!
Anti-armenia.ORG
    

Istifadəçi
    2013-02-23 08:47 GMT                 

TheLock



Gold
Mesaj Sayı : 412
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   18  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Məsləhətlərin üçün çoxsağol.

http://s017.radikal.ru/i404/1202/c6/a2947080a3c4.png
Anti-armenia.ORG
    

Istifadəçi
    2013-02-23 21:16 GMT                 

LocaL



Gold
Mesaj Sayı : 141
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   2  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Badu Kubə
Ölkə :
Məslək : ....
Yaş :
Mesaj :

Mövzunu Paylaş!


təşəkkür edirəm. bunu daha qısada formada eləməkdə mümkündü.

Çakıl taşlı yollar yordu beni, keşke yürüse yanımda bişr-i hafi...
Anti-armenia.ORG
    

Istifadəçi
    2013-02-23 21:25 GMT                 

TheLock



Gold
Mesaj Sayı : 412
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   18  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Dəyməz.

http://s017.radikal.ru/i404/1202/c6/a2947080a3c4.png
Anti-armenia.ORG
    

Istifadəçi
    2013-02-26 14:36 GMT                 

ThEnD



Banned
Mesaj Sayı : 97
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   0  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş : 10
Mesaj :

Mövzunu Paylaş!


əla gözəl iş

Anti-armenia.ORG
    

Istifadəçi
    2013-03-25 14:26 GMT                 

Wolf-Hack



İstifadəçi
Mesaj Sayı : 8
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   0  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : Baku\Yeni qala qəsəbəsi
Ölkə :
Məslək : HTML Master
Yaş : 27
Mesaj :

Mövzunu Paylaş!



Shimits and Shaggy
Anti-armenia.ORG
    

Istifadəçi
    2013-08-07 22:47 GMT                 

substring



VIP
Mesaj Sayı : 73
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   3  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər :
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


Mövzunu xortladacam
Burda
Kod:
$_SESSION["login"] = "true";
yazmısan

boolean -yetimin onsuzda aldığı 2 dənə dəyəri var onu da doublequote "true" verib eləmisən string )))
boolean -> TRUE,FALSE

birdə burda
Kod:
[B]<?php[/B]
[B]include("admin.php");[/B]
[B]session_start();[/B]
[B]if(!isset($_SESSION["login"])){[/B]
[B]echo "Bu səhifəni görüntüləmə icazəniz yoxdur!";[/B]
[B]}else{[/B]
[B]echo "Admin səhifəsi<br>";[/B]
[B]echo "<a href=\"logout.php\">Çıxış</a>";[/B]
[B]}[/B]
[B]?>[/B]
[B][/B]
[B][/B][/code]

[code]if(!isset($_SESSION["login"])){
echo "Bu səhifəni görüntüləmə icazəniz yoxdur!";} [/code]

burda belədi başqa cür olar kodlama olar aşağıda da for,while tsikllərindən biri olar qırmarsan kodu kruqlaya kruqlaya gedər

ona görə ya die() ya da exit() verib sonlandırmaq daha məqsədəuyğun olar

[code]if(!isset($_SESSION["login"])){
die("Bu səhifəni görüntüləmə icazəniz yoxdur!");} [/code]

Ümumiyyətlə belə spagetti fason kodlama ancaq türk forumlarında,bloglarında olur )))

atalar sözü var yaponların mənə balıq vermə balıq tutmağı öyrəd

onlarda da elədi hamısı balıq verir

Stepin yazdıqlarını oxuyun,parse eləyin beynivizdə,gül kimi Azərbaycan dilində mənbədi aznetdə heç yoxdu belə disclosure verən




Anti-armenia.ORG
    

Istifadəçi
    2013-08-07 23:01 GMT                 

BlackMinD



Pr0grammer
Mesaj Sayı : 1677
Mövzu Sayı :
Rep Ver : 
Rep Sayı :   62  
Indi Saytda : Durum
Cinsiyyət : Oğlan
Şəhər : KARABAKH IS AZERBAIJAN!
Ölkə :
Məslək :
Yaş :
Mesaj :

Mövzunu Paylaş!


@substring
Respect bro

Ana VƏTƏN!
Anti-armenia.ORG