|
|
|
Website โดนแฮ็ก ทุกอาทิตย์ ใครพอมีวิธีปรับแก้ Source code บ้าง |
|
|
|
|
|
|
|
Hack ยังไงครับ อะไรตรงไหนที่โดน Hack ลองดูพวกไฟล์แปลก ๆ ช่องโหว์ เช่น Upload / SQL Injection และพวก FTP / User/ Password หรือยังครับ
|
|
|
|
|
Date :
2013-08-13 09:02:24 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
hack เข้าไปในระบบ control panel เพื่อแก้ไขข้อมูลครับ
website msp.agro.ku.ac.th
ผมใช้ SQL Injection แบบธรรมดาเลยครับ
|
|
|
|
|
Date :
2013-08-13 09:17:01 |
By :
kantarasukan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขั้นตอนลองตรวจสอบดูก่อนครับว่า มีการเข้าทางไหน เช่น เก็บ Log ตอนที่ Login สำหรับ SQL Injection เขียนง่าย ๆ ก็ลองดูตัวนี้ครับ
Code (PHP)
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
OR die(mysql_error());
// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($password));
?>
|
|
|
|
|
Date :
2013-08-13 09:24:20 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองตรวจสอบดู code การ login ของผมให้หน่อยครับ
Code (PHP)
<?php
session_start();
include "connect.php";
$strSQL = sprintf(
"SELECT * FROM `member` WHERE `Username` = '%' AND `Password` = '%s'",
mysql_real_escape_string($_POST['username']),
mysql_real_escape_string($_POST['password']));
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
if(!$objResult)
{
echo "<script type='text/javascript'>";
echo "alert('user and password wrong input try me again!'); location.href='loginadmin.php';";
echo "</script>";
}
else
{
$_SESSION["UserID"] = $objResult["UserID"];
$_SESSION["Status"] = $objResult["Status"];
$_SESSION["Name"] = $objResult["Name"];
session_write_close();
if($objResult["Status"] == "admin")
{
echo "<script type='text/javascript'>";
echo "alert(' Welcome to System Tool Menager '); location.href='main.php';";
echo "</script>";
}
else
{
echo "<script type='text/javascript'>";
echo "alert('user and password wrong input try me again! '); location.href='loginadmin.php';";
echo "</script>";
}
}
mysql_close();
?>
อยากทราบว่าจะต้องตรวจสอบยังไง
|
|
|
|
|
Date :
2013-08-14 08:24:30 |
By :
kantarasukan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สร้าง Log เก็บไว้น่ะครับ แล้วในหน้าอื่น ๆ ได้มีการเช็คค่า Session หรือเปล่าครับ
|
|
|
|
|
Date :
2013-08-14 08:32:15 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มีการเช็ค SESSION ทุก page ครับ เมื่อวานลองตรวจสอบดูใน Folder myfile พบไฟล์ที่ถูกนำมาวางชื่อ index.php และไฟล์ program.rar เมื่อเจอก็ลบทิ้งเลย ครับ
|
|
|
|
|
Date :
2013-08-14 08:37:02 |
By :
kantarasukan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูครับ อาจไม่ใช่วิธีที่ดีที่สุด สิ่งที่ควรเพิ่ม(ถ้าทำได้)
- เพิ่ม Captcha เผื่อมันใช้โปรแกรมยิงมา
- เก็บ Log ทุกอย่างที่สามารถเก็บได้ตั้งแต่ส่งฟอร์ม login มา โดยสร้างตารางฐานข้อมูลใหม่ เพื่อเก็บครับ ลองดูว่าเราควรเก็บอะไรบ้าง เช่น
user , pass, refer, ip ,post ,เบราเซอร์ ,เวลา ฯลฯ
- หรือไม่ก็ลองเปลี่ยน part โฟล์เดอร์ต่างๆ(ถ้าไม่กระทบกับส่วนอื่นมากนัก)
คิดไม่ออกละ
ลองปรับดูนะครับ
Code (PHP)
<?php
session_start();
include "connect.php";
#------------------Function Clean Input เพื่อตัดค่าแปลกปลอม--------------------#
function clean_input($input){
$input = trim($input);
if(get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
#ตัด html tag
$input = strip_tags($input);
return mysql_real_escape_string($input);
}
#-------------End Function---------------#
if($_SERVER['HTTP_REFERER'] <> 'http://msp.agro.ku.ac.th/loginadmin.php'){ #เช็ค Refer ว่ามีการส่งฟอร์มมาจากหน้า Login ที่เราสร้างจริงไม๊
echo "<script type='text/javascript'>";
echo "alert('user and password wrong input try me again!'); location.href='loginadmin.php';";
echo "</script>";
} else {
$strSQL = sprintf(
"SELECT * FROM member WHERE Username = '%s' AND Password = '%s' ",
clean_input($_POST['username']),
clean_input($_POST['password'])
);
$objQuery = mysql_query($strSQL);
if(mysql_num_rows($objQuery) <= 0){ #ถ้าเช็คแล้วไม่มี User และ pass ที่ตรงกัน ก็ให้ล็อคอินใหม่
echo "<script type='text/javascript'>";
echo "alert('user and password wrong input try me again!'); location.href='loginadmin.php';";
echo "</script>";
} else {
$objResult = mysql_fetch_array($objQuery);
if(!$objResult)
{
echo "<script type='text/javascript'>";
echo "alert('user and password wrong input try me again!'); location.href='loginadmin.php';";
echo "</script>";
} else {
$_SESSION['UserID'] = $objResult['UserID'];
$_SESSION['Status'] = $objResult['Status'];
$_SESSION['Name'] = $objResult['Name'];
session_write_close();
if($objResult['Status'] == 'admin')
{
echo "<script type='text/javascript'>";
echo "alert(' Welcome to System Tool Menager '); location.href='main.php';";
echo "</script>";
}
else
{
echo "<script type='text/javascript'>";
echo "alert('user and password wrong input try me again! '); location.href='loginadmin.php';";
echo "</script>";
}
}
}
} #จบการเช็ค Refer
mysql_close();
?>
|
|
|
|
|
Date :
2013-08-14 09:06:28 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|