sworddancing is the best one
阿新 • • 發佈:2018-12-10
今天在南郵上做了一個關於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抓包即可得到結果。