PHP Üzerinden Python Kodları Çalıştırmak

LosT

Yaşayan Forum Efsanesi
5 Şub 2015
8,117
31
-
PHP Üzerinden Python Kodları Çalıştırmak

Merhabalar. Bu yazıda PHP üzerinden Python Script çalıştırmayı anlatacağım. Bunu kuru kuruya anlatmak yerine bir kurgu oluşturmak istedim. Çok fazla detaya girip uğraşmayacağım.

Kullanılacaklar:
» jQuery (ajax kullanacağız)
» Python3
» PHP kullanmak için Xampp/Wampserver vb..

Dosyalarımız:

i7zGCT.png


Şimdi uzatmadan konuya geçelim.

4dKDtQ.png


Öncelikle index.php veya index.html doyası oluşturalım. Bu dosyaya bir buton, girdi ve çıktı için de textarea ekleyelim. Daha sonra jQuery dosyamızı ve index.js dosyamızı ekleyelim.

7b8WaK.png


index.php/index.html:
Kod:
<html>
<head>
    <title>Online Python Debugger</title>
</head>
<body>
    <table>
        <tr>
            <td>
                <button id="run">Çalıştır</button>
            </td>
        </tr>
        <tr>
            <td>
                <textarea name="" id="girdi" cols="30" rows="10"></textarea>
            </td>
        </tr>
        <tr>
            <td>
                <textarea name="" id="cikti" cols="30" rows="10" readonly></textarea>
            </td>
        </tr>
    </table>
    <script src="jquery.js"></script>
    <script src="index.js"></script>
</body>
</html>

4dKDtQ.png


Şimdi ise index.js dosyamıza gelelim. Burada AJAX ile sayfa yenilenmeden PHP dosyamızı çalıştıracağız. Ben #run elementine tıklama event'i ekledim daha sonra da içerisinde veriyi çekerek AJAX ile PHP dosyamıza POST ettim. PHP dosyamızdan dönen değeri ise #cikti elementine yazdırıyoruz.

yPY0gj.png


index.js:
Kod:
$(d ocument).ready(function() {
    $("#run").click(function() {
        var veri = $("#girdi").val();
        $.ajax({
            method: "POST",
            url: "debugpython.php",
            data: { veri: veri },
            success: function(gelen) {
                $("#cikti").val(gelen);
            },
        });
    });
});

4dKDtQ.png


Sırada PHP dosyamız var. Zaten asıl konumuz burasıydı. PHP dosyamızda "shell_exec()" kullanarak terminal komutlarını çalıştırabiliyoruz. O zaman biz "shell_exec()" içerisine "python3 script.py" yazarsak script.py dosyamızı çalıştıracaktır. "shell_exec()" aynı zamanda terminaldeki çıktıları bize geri yansıttığı için çalışan kodları kullanıcıya gösterebileceğiz. Basit bir PHP dosya işlemi ile Python dosyamızın içeriğini de girersek alın size Online Python Debugger :trl Dizin içerisine deneme.py isimli bir dosya oluşturup devam edelim.

3kN5hQ.png


debugpython.php:
Kod:
<?php

$girdi = $_POST["veri"];
$dosya = fopen('deneme.py', 'w-');
$sonuc = fwrite($dosya, $girdi);
fclose($dosya);


$komut = escapeshellcmd('python3 deneme.py'); // escapeshellcmd() fonksiyonu ile güvenlik sağlayalım. Buranın içeriğini dışarıdan almadığımız için sorun olmaz ama yine de ben yazdım.
$cikti = shell_exec($komut); // shell_exec() fonksiyonu ile komutu çalıştırdık ve ardından terminalden dönen değeri $cikti değişkenine atadık.
echo $cikti; // AJAX'a geri değer dönderiyoruz.

İşlem bu kadar. Şimdi test edelim.

4dKDtQ.png


» Kodlarımızı yazalım:

QsAgOG.png


» "Çalıştır" butonuna tıklayalım ve sonuç:

u1lFpR.png


» Yine test amaçlı farkı bir kod ve çıktısı:

1wjhNn.png


4dKDtQ.png


Umarım işinize yaramıştır :)

CckryH.gif
 
Son düzenleme:

C 0 D E R

Katılımcı Üye
21 May 2020
429
48
SIFIR6
Bütün hostinglerde çalıştıramazsınız shell kodları güvenlik nedeni ile kapatılıyor. Linux sunucu (vps) alıp domaine bağlamak lazım kullanılması için.
 

LosT

Yaşayan Forum Efsanesi
5 Şub 2015
8,117
31
-
eline sağlık kardeşim

ellerine sağlık , eyw

Ellerinize sağlık dostum

Elinize sağlık LosT hocam

Teşekkür ederim :)

Bütün hostinglerde çalıştıramazsınız shell kodları güvenlik nedeni ile kapatılıyor. Linux sunucu (vps) alıp domaine bağlamak lazım kullanılması için.

Zaten normal Hosting'lerde Py kurulu gelmez o yüzden VDS/VPS gerekiyor. Bu tamamen bir yol gösterici bir konu Python Debugger ile alakası yok :) Ve güvenlik açığı dolu.
 

C 0 D E R

Katılımcı Üye
21 May 2020
429
48
SIFIR6
Teşekkür ederim :)



Zaten normal Hosting'lerde Py kurulu gelmez o yüzden VDS/VPS gerekiyor. Bu tamamen bir yol gösterici bir konu Python Debugger ile alakası yok :) Ve güvenlik açığı dolu.

Bende zaten py kodları için söylemedim. Shell kodlarını kullanabilmeleri için sunucu gerektiğini belirttim. Yol gösterici kısmına gelince ona bir lafım yok teşekkürler güzel anlatım :)
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.