php4fun找出PHP漏洞小遊戲

php4fun是一個很好玩的PHP資訊安全小測試的網站,提供8道不同的題目,您要從出現的訊息以及原始碼中找到漏洞進而解答取得目標。

以第一題為例,頁面上出現Invalid password!。

看一下原始碼

[html]

<!–
#GOAL: get password from admin;
error_reporting(0);
require ‘db.inc.php’;

function clean($str){
if(get_magic_quotes_gpc()){
$str=stripslashes($str);
}
return htmlentities($str, ENT_QUOTES);
}

$username = @clean((string)$_GET[‘username’]);
$password = @clean((string)$_GET[‘password’]);

$query=’SELECT * FROM users WHERE name=\”.$username.’\’ AND pass=\”.$password.’\’;’;
$result=mysql_query($query);
if(!$result || mysql_num_rows($result) < 1){
die(‘Invalid password!’);
}

$row = mysql_fetch_assoc($result);

echo "Hello ".$row[‘name’]."</br>";
echo "Your password is:".$row[‘pass’]."</br>";
–>
Invalid password!
[/html]

了解是要取得admin…..接下來就要思考透過sql injection的技巧去解題了。
php4fun

http://php4fun.sinaapp.com/

作者: 林壽山

目前任職於軟體公司研究開發部門,擔任專業處長,專注於.NET C# 開發,並具備豐富的POS 收銀系統與金流整合開發經驗。我精通各類支付系統的設計與開發,包含第三方支付(如綠界、藍新、歐付寶、速買配、馬來西亞 ePay/HappyPay、台新 One 碼)、行動支付(悠遊卡、一卡通、支付寶、微信支付、街口支付)、以及信用卡支付(聯合信用卡)。 熟悉多種開發技術,擅長PHP 網頁開發(CodeIgniter、Laravel 框架)、Delphi 程式設計、資料庫設計、C# WinForm/WebForm 應用開發、ASP.NET MVC、API 串接設計,並具備LINE 串接開發的豐富經驗。 除了技術開發之外,我也熱衷於技術分享,曾擔任台中學校產業學院講師 5 年,培育新一代的軟體開發人才,致力於推動軟體技術的應用與創新。 我對技術充滿熱忱,始終保持學習與探索的心態,期望透過軟體開發為企業與社會創造更大的價值。