Xpath Injection Attack Security // Cshoner

Cshoner

Uzman üye
6 Ocak 2012
1,202
0
TURKIYE
Xpath İnjection Nedir?

Bir web sitesi XML veri için bir XPath sorgusu oluşturmak için kullanıcı tarafından sağlanan bilgiler kullanır SQL Injection benzer, XPath Injection saldırıları meydana gelir.

Web sitesine kasten hatalı bilgi göndererek, bir saldırganın kendisine, normalde erişimi olmayabilir XML verilerin nasıl yapılandırıldığını bularak Injection yapılır


Hatta XML veri doğrulama (örneğin, XML tabanlı kullanıcı dosyası gibi) için kullanılmakta ise web sitesinde kendi ayrıcalıkları yükseltmek mümkün olabilir.

Sorgulama XML XPath, XML sorgu bir bilgi bulmak için sağlar basit açıklayıcı bir tür ile yapılır.

SQL gibi, bulmak için belirli nitelikler belirtebilirsiniz ve desenler eşleşecek.

Bir web sitesi için XML kullanırken bu sayfada bulmak ve görüntülemek için içeriğe tanımlamak için sorgu dizesinde giriş çeşit kabul etmek yaygındır.

Bu giriş bir XPath sorgusu karmaşası olmadığını doğrulamak ve yanlış veri döndürmek için dezenfekte edilmelidir.

XPath standart bir dildir; gösteriminin / sözdizimi her zaman saldırı otomatik olarak uygulanması anlamına gelir bağımsız olduğunu.

Bu SQL databeses istekleri gerçekleşir diye farklı lehçeleri vardır.

Hiçbir seviyesi erişim kontrolü olmadığı için bu belgenin tamamını almak mümkündür.

Biz SQL enjeksiyon saldırıları Bildiğiniz gibi biz herhangi bir sınırlama ile karşılaşmıyorsunuz.

Attack:

Örnek için Xml Parçacıgı kullanıcaz


<?xml version="1.0" encoding="utf-8"?>

<Employees>

<Employee ID="1">

<FirstName>Arnold</FirstName>

<LastName>Baker</LastName>

<UserName>ABaker</UserName>

<Password>SoSecret</Password>

<Type>Admin</Type>

</Employee>

<Employee ID="2">

<FirstName>Peter</FirstName>

<LastName>Pan</LastName>

<UserName>PPan</UserName>

<Password>NotTelling</Password>

<Type>User</Type>

</Employee>




Kullanıcıların giriş yapmak için bu tür bir veri dosyası kullanılan bir web sayfasında bir kullanıcı kimlik doğrulama sistemi olduğunu varsayalım. Kullanıcı adı ve şifre temin edilmiştir sonra yazılım, kullanıcının aramak için XPath kullanabilirsiniz:

Normal bir kullanıcı adı ve şifre ile bu XPath çalışır, ancak saldırgan, kötü bir kullanıcı adı ve şifre göndermek ve bu gibi, kullanıcı adı veya şifre bilmeden seçilen bir

VB:

Dim FindUserXPath as String

FindUserXPath = "//Employee[UserName/text()=’" & Request("Username") & "’ And

Password/text()=’" & Request("Password") & "’]"

C#:

String FindUserXPath;

FindUserXPath = "//Employee[UserName/text()=’" + Request("Username") + "’ And

Password/text()=’" + Request("Password") + "’]";

XML düğümü alabilirsiniz:

Username: BecKer’ or 1=1 or ’a’=’a

Password: test

FindUserXPath becomes //Employee[UserName/text()=’BecKer’ or 1=1 or

’a’=’a’ And Password/text()=’test’]

Logically this is equivalent to:

//Employee[(UserName/text()=’Cshoner’ or 1=1) or

(’a’=’a’ And Password/text()=’test’)]


Bu durumda, XPatha göre sadece birinci bölümü doğru olması gerekir.Şifre kısmı önemsiz olur ve Username bölümünde 1=1 kısmı dogrular.

Uygulama bunları kullanıyorsa Sadece SQL enjeksiyon gibi, kendinizi korumak için tek tırnak filtrelemesine gidilebilir.


Security:

VB:


Dim FindUserXPath as String

FindUserXPath = "//Employee[UserName/text()=’" & Request("Username").Replace("’", "’") & "’ And

Password/text()=’" & Request("Password").Replace("’", "’") & "’]"

C#:


String FindUserXPath;

FindUserXPath = "//Employee[UserName/text()=’" + Request("Username").Replace("’", "’") + "’ And

Password/text()=’" + Request("Password").Replace("’", "’") + "’]";
 
Ü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.