/tmp/$mysid.$evalname 目錄,目錄若不存在,必須自行建立,其中變數 $mysid 為自己的學號,$evalname 為評分程式名稱不加附檔名。
........ 依要求填入 mysql 語法。
<?php
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = '123qwe';
$conn = mysqli_connect($dbhost, $dbuser, $dbpass)
or die(mysqli_connect_error().PHP_EOL);
mysqli_select_db( $conn, 'dbi' )
or die('Error: '.mysqli_error($conn).PHP_EOL);
$sql = "SELECT * FROM ......";
$retval = mysqli_query( $conn,$sql )
or die('Error: '.mysqli_error($conn).PHP_EOL);
while($row = mysqli_fetch_array($retval, MYSQLI_NUM)) {
echo "{$row[0]}\t{$row[1]}\n";
}
mysqli_free_result($retval);
mysqli_close($conn);
?>
$_GET['plang'] 由網址加問號取得內容,如以下範例變數 plang=python。
http://kvm3.deyu.wang/sqlinj1.php?plang='python'
$_GET['plang']。
$_GET['plang'] 以單引號括起來。
%20 取代。
plang='a' or 1。
plang=a' or 'a'='a。
$_GET['plang'] 中的單引號、雙引號、倒斜線等符號,加上倒斜線跳脫其功能,並使用 echo "$plang\n" 在 mysqli_query 查詢命令之前印出變數 $plang 內容。
preg_match 函式限制變數 $_GET['plang'] 只能非空白字元,否則印出 "Not Match"。
preg_match 函式限制變數 $_GET['plang'] 必須是小寫英文字母,否則印出 "Not Match"。
curl -sN http://kvm3/pmatch1a.php?"plang='ruby'"
preg_match 函式限制變數 $_GET['plang'] 必須是 1 到 6 個小寫英文字母,否則印出 "Not Match"。
curl -sN http://kvm3/pmatch1c.php?"plang=ruby"
mod_security 模組並完成規則設定。
mod_security 模組。
mod_security 模組版本,並導向到 mod_security.info.txt。
mod_security 模組安裝的檔案,並導向到 mod_security.list.txt。
mod_security 模組中。