1. 程式人生 > >sworddancing is the best one

sworddancing is the best one

今天在南郵上做了一個關於sql注入的題目:

題目s如下:

 這是一個關於sql注入的問題,打來題目連結:

 點選 提交查詢

提示未登陸,如下圖:

 點選source,彈出來一個頁面如圖

 這是php的mysql程式碼審計問題,

對程式碼進行逐行分析:

if($_POST[user] && $_POST[pass]) {

如果上傳兩個變數user pass  則繼續執行if下面的程式碼

mysql_connect(SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT,SAE_MYSQL_USER,SAE_MYSQL_PASS);

連結sae的mysql資料庫

 mysql_select_db(SAE_MYSQL_DB);

選擇要修改的資料表

$user = trim($_POST[user]);
$pass = md5(trim($_POST[pass]));

去掉上傳的user pass前後的空格,並對pass進行MD5加密

 $sql="select user from ctf where (user='".$user."') and (pw='".$pass."')";
    echo '</br>'.$sql;

從特定的表中取出user並複製給$sql

$query = mysql_fetch_array(mysql_query($sql));

對$sql進行查詢,並將結果陣列化,並賦值給$query

if($query[user]=="admin") {
      echo "<p>Logged in! flag:******************** </p>";
  }

滿足條件就會輸出flag

用brupsuit抓包即可得到結果。