development of web application’s developed with php and ......

50
Development of Web Application’s developed with PHP and database MySQL Vulnerability Detecting and Risk Assessment การพัฒนาโปรแกรมค้นหาช่องโหว่และประเมินความเสี่ยงในเว็บแอปพลิเคชั่น ที่พัฒนาด้วย PHP และใช้ ฐานข้อมูล MySQL วัชระ พงศ์ศรี Watchara Pongsri สารนิพนธ์ฉบับนี ้เป็นส่วนหนึ ่งของการศึกษา หลักสูตรวิทยาศาสตรมหาบัณฑิต สาขาวิชาวิศวกรรมเครือข่าย คณะวิทยาการและเทคโนโลยีสารสนเทศ มหาวิทยาลัยเทคโนโลยีมหานคร ปีการศึกษา 2555

Upload: others

Post on 27-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

Development of Web Application’s developed with PHP and database MySQL Vulnerability Detecting and Risk Assessment

การพฒนาโปรแกรมคนหาชองโหวและประเมนความเสยงในเวบแอปพลเคชน ทพฒนาดวย PHP และใช ฐานขอมล MySQL

วชระ พงศศร Watchara Pongsri

สารนพนธฉบบนเปนสวนหนงของการศกษา หลกสตรวทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมเครอขาย

คณะวทยาการและเทคโนโลยสารสนเทศ มหาวทยาลยเทคโนโลยมหานคร

ปการศกษา 2555

Page 2: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

I

หวขอโครงงาน การพฒนาโปรแกรมคนหาชองโหวและประเมนความเสยงในเวบ

แอปพลเคชนทพฒนาดวยภาษา PHP และใช ฐานขอมล MySQL นกศกษา นายวชระ พงศศร รหสนกศกษา 5417660054 ปรญญา วทยาศาสตรมหาบณฑต สาขา วทยาศาสตรมหาบณฑต สาขาวชาวศวกรรมเครอขาย พ.ศ. 2555 อาจารยควบคมโครงงาน อาจารย พงษสรย ลมมณวจตร

บทคดยอ

สารนพนธฉบบนน าเสนอเกยวกบการพฒนาโปรแกรมคนหาชองโหว และเสยงในเวบแอปพลเคชนทพฒนาดวย PHP และใชฐานขอมล MySQL ในโครงงานนจะพดถงรปแบบการคนหาชองโหวทเปน เอสควแอล อนเจคชน (SQL Injection) และ ครอสไซทสครปปง (Cross-site scripting)เพอใหรถงวธการโจมตในรปแบบตางๆ รวมถงน าไปใชปองกนและเพมประสทธภาพความปลอดภยของเวบแอปพลเคชน ในการศกษาโครงงานน จะใชโปรแกรมวชวลสตดโอ 2012 และภาษา C# ในการพฒนา

Page 3: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

II

Project Title Development of Web Application’s developed with PHP and database MySQL Vulnerability Detecting and Risk

Assessment Student Watchara Pongsri Student ID 5417660054 Degree Master of Science Program Network Engineering Year 2012 Thesis Advisor Pongsuree Limmaneewichid

ABSTRACT Thematic this presentation about the development of application vulnerabilities in web application development with PHP and database MySQL. In this project will discuss patterns of vulnerabilities as a SQL injection applications and Cross-site scripting in order to know how to attack in different ways. Fund to protect and enhance the security of web applications. In this project. To use Visual Studio 2012 and C#.NET development language.

Page 4: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

III

กตตกรรมประกาศ

การศกษาคนควาในการท าโครงงานครงนสาเรจลลวงไปไดดวยความอนเคราะหและชวยเหลอ

จากบคคลหลายๆทาน โดยเฉพาะอยางยง อาจารยทปรกษาโครงงาน อาจารยพงษสรย ลมมณวจตร ท กรณาใหค าแนะนาและขอเสนอแนะ อนเปนประโยชนตอการน าไปท าโครงงาน จนท าใหโครงงานนเสรจสมบรณ

นอกจากนขอมลจากเวบไซตตางๆ ซงผจดทาไดศกษาคนควาบนอนเตอรเนต ผจดท าตองขอ ขอบพระคณในความกรณาของทกทานดวย

สดทายนขอขอบพระคณอนยงใหญของบดา-มารดา ตลอดจนทกคนทใหการสนบสนน และเปนกาลงใจใหจนงานสาเรจลลวงไปไดดวยด

วชระ พงศศร

พฤษภาคม 2556

Page 5: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

IV

สารบญ หนา

บทคดยอภาษาไทย …………............................................................................................................I บทคดยอภาษาองกฤษ………………………………………………………………………………………II กตตกรรมประกาศ………………………………………………………………………………...………..III สารบญ ………................................................................................................................................IV สารบญรป ………………………………………………………………………………………………....VII สารบญตาราง ………………………………………………………………………………………………VI บทท 1 บทน า………………………………………………………………………………………………..1

1.1 กลาวน า………………………………………………………………………………………...1 1.2 ความเปนมาและความส าคญของปญหา………………………………………………………1 1.3 วตถประสงคโครงงาน………………………………………………………………………….1 1.4 ขอบเขตของโครงงาน………………………………………………………………………….2 1.5 ประโยชนทคาดวาจะไดรบ…………………………………………………………………….2

1.6 แผนเวลาโครงงาน……………………………………………………………………………..3 บทท 2 ทฤษฎและเทคโนโลยทเกยวของ…………………………………………………………………..4 2.1 ชองโหว Vulnerability…………………………………………………………………………4

2.2 การประเมนความเสยง (Risk Assessment)..………………………………………………..5 2.2.1 ระดบของความ (Risk Level)………………………………………………………5

2.3 ฐานขอมล (Database)………………………………………………………………………...5 2.3.1 ฐานขอมลมายเอสควแอล (MySQL)………………………………………………5 2.4 เวบเซรฟเวอร…………………………………………………………………………………..7

2.5 ภาษาพเอชพ (PHP Language)……………………………………………………………...8 2.6 ค าสงเอสควแอล………………………………………………………………………………..8 2.7 ชองโหว SQL Injection……………………………………………….…………………….....9 2.7.1 การปองกนการโจมต SQL injection แบบทวไป………………………………….9 2.7.2 การปองกนการโจมตดวย SQL Injection………………………………………..14

2.8 ชองโหวของ Cross-site scripting (XSS)…………………………….……………………..14 2.8.1 การปองกนการโจมตดวย Cross-site scripting (XSS)....................................17

Page 6: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

V

สารบญ (ตอ)

หนา บทท 3 การออกแบบโครงงาน…………………………………………………………………………….18

3.1 แนวทางการออกแบบระบบ………………………………………………………………….18 3.2 องคประกอบในการพฒนาโครงงาน…………………………………………………………18

3.3 คณสมบตของโปรแกรม……………………………………………………………………...20 3.4 ขนตอนการท างานของโปรแกรม…………………………………………………………….20

3.5 การออกแบบโปรแกรม……………………………………………………………………….21 3.6 โครงสรางตาราง……………………………………………………………………………...24 บทท 4 การทดลองและผลการทดลอง……………………………………………………………….……26 4.1 เครองมอทใชในการทดลอง……………………………………………………………….…26 4.2 การทดลอง…………………………………………………………………………………...26 4.2.1 คนหา URL ทงหมดของเวบเปาหมาย…………………………………………..27 4.2.2 คนหาฐานขอมลในระบบเวบแอปพลเคชน (Database Scanner)..…….……...27 4.2.3 คนหา Information ของฐานขอมล MySQL……………………………….…….28 4.2.4 คนหารหสผานของฐานขอมล MySQL…………………………………….…….29 4.2.5 คนหาตารางของฐานขอมล (Tables Scanner)…………………..…….……….30 4.2.6 คนหาคอลมน (Column Scanner……………………………………….……….31 4.2.7 คนหาขอมลจากฟวดขอมล (Data Scanner)…………………………………....32 4.2.8 คนหาขอมลจากไฟลทอยบนเวบเชอเวอร (Get Local file)………….………….33 4.2.9 รายงาน (Report)………………………………………………………………....34 บทท 5 สรปผลการด าเนนงาน…………………………………………………………………….………35 5.1 ผลการด าเนนโครงงาน……………………………………………………………….……...35 5.2 ปญหาและแนวทางแกไข…………………………………………………………….………35 5.2.1 ปญหา……………………………………………………………………………..35 5.2.2 แนวทางแกไข……………………………………………………………………..35 5.3 ขอเสนอแนะ…………………………………………………………………………………..35 เอกสารอางอง……………………………………………………………………………………………....36 ภาคผนวก ก. ……………………………………………………………………………………………...37 โครงสรางพนฐานของภาษา SQL ……………………………………………………………….38

Page 7: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

VI

สารบญตาราง

ตารางท หนา

1.1 แสดงระยะเวลาการด าเนนโครงงาน…………………………………………………………………...3

3.1 แสดงรายละเอยดผลการคนหาชองโหว (Project)…………………………………………………..24

3.2 แสดงรายละเอยดตารางในการเกบรปแบบการโจมตดวย SQLInjection (Sqlinj_Pattern)……….24

3.3 แสดงรายละเอยดตารางในการเกบคาคอนฟก (Path_configs)………………………………….....24

3.4 แสดงระดบของการประเมนความเสยง……………………………………………………………….25

Page 8: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

VII

สารบญรป

รปท หนา 2.1 ฐานขอมล MySQL………………...…………………………………………………………………....7 2.2 โครงสรางของเวบเชรฟเวอร…………………………………………………………………………....7 2.3 แสดงหนาตา Webserver ทรน PHP บน IIS.…………………………………………………………8 2.4 แสดงรปแบบค าสงทน าไปใชในการท า SQL Injection………………………………………………..9 2.5 แสดงตวอยางการสงค าสงเพอเรยกด Information ตางๆ ของ MySQL ผานทาง SQL Injection...12 2.6 แสดงผลลพธจากการใชค าสง SQL “LOAD_FILE” เพอท าการโหลดไฟลจากเครองเปาหมาย...…13 2.7 แสดงผลลพธจากการใชค าสง SQL “LOAD_FILE” เพอท าการโหลดไฟล /etc/password ……….14 2.8 แสดงจากการใชค าสง SQL “LOAD_FILE” เพออานไฟล Configuration บน Server ……………14 2.9 แสดงผลคกกทเรยกผานภาษา JavaScript…………………………………………………………..15 2.10 แสดงระดบของการโจมตผานชองโหว XSS…………………………………………….………….16 2.11 แสดงลกษณะตวอยาง Code ทฝ งไปหนาเวบเพจเพอขโมย Cookie ของผใชงาน……….……...16 3.1 โปรแกรมไมโครซอฟทเวอชวสตดโอ 2012…………………………………………………………..19 3.2 ชดพฒนาโปรแกรมใช .Net Framework 3.5 (Windows Application)……………………………..19 3.3 แสดงขนตอนการใชงานโปรแกรม…………………………………………………………………….20 3.4 แสดงหนาตาโปรแกรมหลก…………………………………………………………………………...21 3.5 โปรแกรมในสวนของ SQL Injection แบบ Manual…………………………………………………22 3.6 หนาออกรายงาน (Report)……………………………………………………………………………22 3.7 หนาตงคา Settings …………………………………………………………………………………..23 3.8 ฐานขอมล SQLite ทใชในโครงงาน…………………………………………………………………..23 3.9 แสดงรปแบบพารามเตอรทเกบในฐานขอมล SQLite………………………………………………..25 4.1 แสดงตวจดการ Webserver ทใชในการรนภาษา PHP……………………………………………...26 4.2 แสดงการคนหา Link ทงหมดทอยบนเวบเพจ……………………………………………………….27 4.3 แสดงการคนหาฐานขอมลทงหมดภายใตสทธของยสเซอร………………………………………….27 4.4 แสดงผลการคนหา Information ของ User ทเวบนนใชงานอย……………………………………..28 4.5 แสดง Headerทโปรแกรมสง Requestไปยงเวบเปาหมายเพอ Get Information…………………..28 4.6 แสดงผลการคนหา User และ Password ของฐานขอมล MySQL………………………………….29 4.7 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอ Get User/Pass ของ MySQL….29 4.8 แสดงผลการคนหา Tables จากฐานขอมลทไดท าการเลอกจากเมนดานชาย………………………30 4.9 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอคนหา Tables……………………30

Page 9: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

VIII

สารบญรป (ตอ)

รปท หนา 4.10 แสดงผลการคนหา Columns ทมการเลอก Tables จากเมนรายการดานชาย……………………31 4.11 แสดง Header ทสง Request ไปยงเวบเปาหมายเพอคนหา Columns…………………………..31 4.12 แสดงขอมลในฟวดทงหมดทไดท าการเลอก Columns รายการดานชาย…………………………32 4.13 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอคนหาฟวดขอมล………………..32 4.14 แสดงผลการโหลดไฟลทอยบน Webserver จากชองโหว SQLInjection…………………………33 4.15 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอ Load file บน Server ………...33 4.16 แสดงผลการหนาตาโปรแกรมในการออกรายงานผลการคนหาชองโหว …………………………34

Page 10: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

1

บทท 1 บทน ำ

1.1 กลำวน ำ (Overview)

เนองจากปจจบนมหลายๆองคกรนยมน าเวบแอปพลเคชน (Web Application) มาใชงานอยาง

กวางขวาง เพออ านวยความสะดวกส าหรบผทมาตดตอรวมถงธรกจตางๆ ตลอดจนการแลกเปลยนขาว

สารและโฆษณาประชาสมพนธตางๆกนยมใชเวบแอปพลเคชนมาตอบสนองความตองการของผทมาขอ

ใชงาน และบคคลภายนอกกสามารถเขาถงจากทไหนกได แนนอนวาเวบไซตกเปนอกชองทางทจะมผ

ไมหวงดนยมเขามาโจมตโตยอาศยขอผดพลาดทเกดจากการพฒนาโปรแกรมของผพฒนาเวบไซตนนๆ

หรออาจจะเปนชองโหวทตดมากบ Web Service เชน Apache, IIS หรอ Database Server เชน

MySQL, MSSQL, Oracle กมโอกาสเปนไปไดทงสน

1.2 ควำมเปนมำ ปญหำและแรงจงใจ (Problems and Motivation)

โดยจดออนของระบบขางตนทกลาวมานน อาจจะกอใหเกดความเสยหายใหแก Web Serve

ของผใหบรการทงสน ซงผดแลระบบอาจจะไมรตว หรอไมไดค านงถงเรองความปลอดภย (ตวอยางการ

โจมตทเปนทนยมในปจจบน เชน SQL Injection , JavaScript Injection , Remote Code Execution,

XSS ตางๆ) ดงนนทางผจดท าจะสราง Application นขนมาเพอทดสอบความปลอดภยของเวแอปพล

เคชน รวมถงการทดสอบการโจมต เพอใหเหนถงผลกระทบจากการโจมต และท าใหผดแลระบบใหความ

ใสใจในดานความปลอดภยมากขน

1.3 วตถประสงคโครงงำน (Objectives)

ท าการศกษาคนควาและพฒนาซอฟแวรในการคนหาจดออนของเวบแอปพลเคชนเพอใหรถง

วธการโจมตและน าไปปองกนและเพมความแขงแกรงของเวบแอปพลเคชน

Page 11: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

2

1.4 ขอบเขตของโครงงำน (Scope of Service)

1.4.1 สามารถคนหาชองโหวของเวบแอปพลเคชนทพฒนาดวยภาษา PHP

1.4.1.1 ตรวจสอบการโจมต SQL Injection

คนหาชองโหวของเวบทพฒนาดวยฐานขอมล MySQL

- Scan Data Base

- Scan Column

- Scan Data

- Load File in local

1.4.1.2 ตรวจสอบการโจมต Cross-site scripting

- คนหาและทดสอบ Cross-site scripting ทพฒนาดวยภาษา PHP

1.4.2 รองรบ HTTP Method : GET และ POST

1.4.3 รองรบการทดสอบรวมกบการใชงาน Cookie

1.4.4 สามารถออกรายงานชองโหวทท าการทดสอบในรปแบบ PDF

1.4.5 บนทกผลการ scan ลงบนฐานขอมล Data Base

1.4.6 สามารถท าการ scan ไดทง auto และ manual (ระบ parameter เอง)

1.4.7 โปรแกรมพฒนาดวยภาษา C# .NET และใช .NET Framework 3.5

1.5 ประโยชนทคำดวำจะไดรบ (Advantage)

1.5.1 ท าใหทราบถงชองโหวตางๆบนเวบแอปพลเคชนซงกอใหเกดความรายแรงตอการบกรก

ของผไมหวงด

1.5.2 ซอฟทแวรสามารถ เรยนร และสะดวกใชงานไดงาย

1.5.2 ลดคาใชจายในการทตองชอ Application Vulnerability Scan ในราคาทแพงมากๆ

1.5.3 สามารถรถงวธการโจมตในรปแบบตางๆ เพอน าไปใชปองกนและเพมประสทธภาพความ

ปลอดภยของเวบแอปพลเคชน

Page 12: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

3

1.6 แผนเวลำโครงงำน

ตำรำงท 1.1 แสดงระยะเวลาการด าเนนโครงงาน

กจกรรม ระยะเวลำ

พ.ค. ม.ย. ก.ค. ส.ค. ก.ย. ต.ค. พ.ย. ธ.ค. ม.ค. ก.พ. ม.ค. เม.ย. พ.ค.

ศกษาความเปนไปไดของโครงงาน

รวบรวมขอมลตางๆทเกยวของกบโครงงานน

ศกษาชองโหวตางๆทเกดขนจากเวบ และรปแบบการโจมต

ตดตงและจ าลองระบบเพอขนมาทดสอบ

ออกแบบโครงสรางของ Application

ออกแบบ Database , Class, GUI

พฒนา Application ทสามารถใชงานไดจรง

ทดสอบการใขงานและแกไขปรบปรง

จดท าเอกสารของระบบงาน น าเสนอโครงงาน 1 ขนตอนด ำเนนงำโครงงำน 2 ออกแอบโปรแกรมในการออกรายงาน

เขยนเทมเพลตรปแบบรายงาน รวบรวมขอผดพลาดและปรบปรงแกไข

นาเสนอโครงงาน 2

Page 13: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

4

บทท 2 ทฤษฎพนฐำนทเกยวของกบกำรท ำโครงงำน

ในการพฒนาโปรแกรมคนหาชองโหวและประเมนความเสยงในเวบแอปพลเคชนทพฒนาดวย

PHP และใชฐานขอมล MySQL นน จะตองรถงเทคโนโลยทเกยวของหลายอยาง เชน ชองโหวขอภาษา

PHP ทน ามาพฒนาเวบแอปพลเคชน , ฐานขอมล (Database) MySQL, และค าสง SQL ซงจะมผไม

หวงดใชในการโจมตชองโหวเวบแอปพลเคชน และรวมถง Parameter ตางๆ ทสามารถ Bypass เขามา

ท าการ query ขอมล และท าใหเกดความเสยหายแกระบบ ซงในโครงงานนนจะใหความส าคญทฤษฏ

หลกๆ ทเกยวของดงน

1. ฐานขอมล (Data Base)

2. เวบเซรฟเวอร (Web Server)

3. ยอารเอล (URL)

4. ภาษาพเอชพ (PHP Language)

5. ค าสงเอสควแอล (SQL Command)

6. ภาษาจาวาสครปต (Java Script)

7. รปแบบการโจมตเอสควแอลอนเจคชน (SQL Injection)

8. วธปองกนการโจมต SQL injection ของ PHP

9. รปแบบการโจมตแบบครอสไซทสครปป (Cross-site scripting : XSS)

10. วธปองกนการโจมด Cross-site scripting

2.1 Vulnerability ชองโหว (Information Security)

Vulnerability (Information Security) หมายถง ชองโหวหรอจดออนตางๆ ทเกดขนในระบบ ใน

มมมองทางดาน Information Security นน ชองโหวเหลานอาจจะเกดจากหลายสาเหต เชน ชองโหวหรอ

ขอบกพรองจากระบบปฏบตการ ซอฟตแวรแอปพลเคชน หรอการตงคา Configuration ของอปกรณทาง

ดานเครอขาย และชองโหวเหลานอาจท าความเสยหายแก ขอมล และทรพยสน

ในการคนหาเพอระบถงจดออน หรอ Vulnerability ของระบบนน อาจจะตองใชเทคนคตางๆเขา

มาชวย เชน การท า Vulnerability Assessment เปนตน ซงในโครงงานนนกจะตระหนกชองโหวของ

Web Application เปนหลก และสามารถทจะน าไปประยคตแกไขใหระบบคอมพวเตอรหรอเครอขายม

ความมนคงและปลอดภยมากยงขน

Page 14: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

5

2.2 Risk Assessment (กำรประเมนควำมเสยง)

ความเสยง (Risk) ทางดาน Information Security นนจะหมายถง การประเมนความเสยงและ

วธการจดการดานความเสยง รปแบบตางๆ รวมถงการตรวจสอบขอบเขตของความเสยงทเกดขนและ

ควบคมเพอลดหรอก าจดความเสยทอาจจะกอใหเกดผลกระทบความเสยหายตอขอมล

2.2.1 ระดบของควำมเสยง (Risk Level)

โดยปกตระดบของความเสยงจะพจารณาจาก 2 ปจจย คอ

ควำมนำจะเปน (Probability) ในการทจะเกดภยคกคามใดๆ ขน และกอใหเกดความ

เสยหายตอขอมลและทรพยสน ขององคกร ซงโดยปกตจะค านวณคาโดยพจารณาจากการวเคราะหภย

คกคาม / จดออน (Threat / Vulnerability Assessment) ทมตอขอมลและทรพยสนขององคกร รวมกบ

การพจารณาถงวธการควบคม / แกไขความเสยง ทมอยในปจจบน (Existing Control)

ควำมรนแรง (Severity) ของความเสยหายทอาจเกดขน ซงโดยปกตจะค านวณคาโดย

การพจารณาจาก ระดบความส าคญ ของขอมลหรอทรพยสนนนๆ ทมตอองคกร

2.3 ฐำนขอมล (Data Base)

Database (ฐานขอมล) เปนกลมของขอมล ทมการจดการเพอท าให เขาถง จดการและปรบปรง

ไดงาย ซงปจจบนมการใชงานอยางแพรหลายอยางมาก ไมวาจะเปนในองคกรณ หรอธรกจตางๆ ใน

ฐานขอมลนนจะมการเกบขอมลในรปแบบเรคคอรด หรอไฟล เชน รายการผลตภณฑ รายการการขาย

คลงสนคา หรอรายละเอยดตางๆ เกยวกบลกคา เปนตน และขอมลตายๆ สามารถน ามาวเคราะหและ

จดการไดสะดวกอกดวย

ในระบบฐานขอมลนนจะใชภาษา SQL (Structured Query Language) ซงเปนภาษามาตรฐาน

ส าหรบการสรางควรหรอเรยกดแฟมขอมลนนๆๆ ซงปจจจบนมฐานขอมลอยหลายคาย เชน IBM's,

DB2, Microsoft Access , Sybase , Oracle, Microsoft SQL Server, SQLite, MySQL ในโครงงานนน

จะกลาวถงฐานขอมล MySQL และ SQLite ทท าการรวมกบภาษา PHP เปนหลก

2.3.1 ฐำนขอมล MySQL (มำยเอสควแอล)

เปนระบบจดการฐานขอมลเชงสมพนธ (Relational Database Management System) ทได

ระบบความนยมอยางมากและมการน าไปใชงานแพรหลายในปจจบน อกทงยงเปนซอฟตแวรโอเพน

ซอรส แตแตกตางจากซอฟตแวรโอเพนซอรสทวไป โดยมการพฒนาภายใตบรษท MySQL AB ใน

Page 15: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

6

ประเทศสวเดน โดยจดการ MySQL ทงในแบบทใหใชฟร และแบบทใชในเชงธรกจ และปจจบนบรษท

ซนไมโครซสเตมสไดชอกจการของ MySQL AB ไปบรหารตอเปนทเรยบรอย

ชนดของขอมลทสนบสนนของฐานขอมล MySQL

ชนดขอมลท MySQL สนบสนนแบงเปนสามประเภทหลกใหญๆ

ชนดขอมลทเปนตวเลข

- BIT (มใชไดกบ MyISAM, InnoDB, Memory)

- TINYINT

- SMALLINT

- MEDIUMINT

- INT

- BIGINT

- Float

ชนดขอมลทเกยวกบวนทและเวลา

- DATETIME

- DATE

- TIMESTAMP

- TIME

- YEAR

ชนดขอมลทเกยวกบตวอกษร

- CHAR

- VARCHAR

- BINARY

- VARBINARY

- BLOB

- TEXT

- ENUM

- SET

Page 16: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

7

รปท 2.1 ฐานขอมล MySQL

2.4 เวบเซรฟเวอร (Web Server)

เวบเซรฟเวอร (Web Server) ความหมาย คอ เครองคอมพวเตอรแมขายทใหบรการขอมล และ

ท าหนานประมวลผลและรอรบขอมลจากผใช (Client) เพอเรยกชมผานหนาเวบไซตโดยใชโพรโทคอล

HTTP (Hypertext Transfer Protocol) แลผใชสามารถดผานทางเวบเบราวเซอร หรอให Application มา

เรยกขอใชงาน ซงภาษา PHP จะท าการไดกตองพงพาเวบเซรฟเวอรอกดวย ในโครงงานนจะเนนเฉพาะ

ภาษา PHP เปนหลก

รปท 2.2 โครงสรางของเวบเชรฟเวอร

Page 17: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

8

2.5 ภำษำพเอชพ (PHP Language)

พเอชพ (PHP) คอ ภาษาคอมพวเตอรในลกษณะเซรฟเวอร-ไซด สครปต และเปนภาษาทอยใน

ลขสทธของโอเพนซอรส (Open source) ปจจบนนยมน าภาษาพเอชพมาใชในการพฒนาเวบไซต นอก

จากจะงายตอการพฒนาและสามารถโตตอบไดรวดเรว อกทงยงสามารถท างานรวมกบระบบปฏบตการ

ไดเกอบทก Platform เชน Windows , Unix (Linux) , Mac เปนตน และจะท าการแสดงผลออกมาในรป

แบบ HTML เพอใหผใชงานสารถเรยกแสดงผลผานไดเวบบราวเซอร ในภาษา PHP นนจะมรากฐาน

โครงสรางค าสงมาจากภาษา ภาษาซ ภาษาเพรล และ ภาษาจาวา ซงงายตอการเรยนร ซงในโครงงาน

นจะกลาวถงภาษาพเอสพ (PHP)

รปท 2.3 แสดงหนาตา Webserver ทรน PHP บน IIS

2.6 ค ำสงเอสควแอล (SQL Command)

เอสควแอล (SQL) คอ ภาษาในการจดการขอมลอยางมโครงสราง มการพฒนภาษคอมพวเตอร

และโปรแกรมฐานขอมลทรองรบมากมาย เพราะจดการขอมลไดงาย เชน Oracle, MySQL, MSSQL,

PostgreSQL และ MS Access เปนตน ส าหรบโปรแกรมฐานขอมลทไดรบความนยมในการน ามาใชใน

เวบแอบพลเคชน คอ MySQL ซงเปนระบบฐานขอมล Open Source ทใชงานไดทงใน Mac, Unix,

Linux และ Windows และในการจดการขอมลของฐานขอมลนนจะแบงการท างานออกเปน 4 ประเภท

คอ SELECT, UPDATE, INSERT, DELETE

Page 18: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

9

2.7 ชองโหว SQL Injection

SQL Injection หมายถงการใสค าสง SQL แฝงเขาไปในสวนของ HTTP Request อาจจะเปนได

ทง GET และ POST กได เพอท าการ Execute ค าสง SQL เชน select, insert, update, delete , drop

หรออนๆ เพอกระท ากบฐานขอมลหรอกระบวนการท างานของ Server

ในการเขยนโปรแกรมทไมไดค านงถงความปลอดภยเปนสาเหตหลกทท าใหการโจมตแบบ SQL

Injection นส าเรจและสรางความเสยหาย ซงสวนใหญแลวชองโหวนจะพบในเวบทไมไดท าการกรองหรอ

ตรวจสอบอนพต (Validate Input)

รปท 2.4 แสดงรปแบบค าสงทน าไปใชในการท า SQL Injection

2.7.1 กำรโจมต SQL Injection แบบทวไป

ตวอยาง สมมตวา เราเขยนโปรแกรมเพอท าการ Login เขาสระบบ ดงน

$sql=”SELECT * FROM users WHERE username= ‘”.$_POST['username'].”‘

AND password= ‘”.$_POST['password'].”‘”;

$result=mysql_query($sql);

Page 19: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

10

จากโปรแกรมจะเหนวาการท างานตามปกต โปรแกรมสามารถตรวจสอบการ Login ไดไมมปญ

หา แตหากผใชกรอกขอมลในลกษณะนเขามาจะเกดอะไรขน

เมอสงขอมลใหกบโปรแกรม ผลลพธของ SQL Command จะมลกษณะดงน

จะเหนวา query จะมเงอนไขเปนจรงเสมอ ท าให ผลลพธทไดคอขอมลของ user ทกคนจาก table ชอวา

users และอาจแยกวานนคอโปรแกรมอาจคดวาเปนการ login ทส าเรจท าใหผไมหวงดสามารถเขาใช

งานระบบได จะสงเกตไดวา เมอมการเทยบกบ Record แตละ Recordแลว ไมวา Condition แรกจะเปน

จรงหรอไม แต Condition สดทาย จะเปนจรงเสมอ

ตวอยำงรปแบบกำรโจมตดวย SQL Injection

ตวอยางนจะเปนวธการไดสทธของผใชงาน หรอผดแลระบบในการเขาใชงานระบบ

ดวยวธ SQL Injection แบบ Line comments โดยชดค าสงทใชในการประมวลผลจะเปนดงน

เมอท าการใสขอมล user และ pass ลงไป ชดค าสงนจะ query ขอมลตาม condition ท match ไวคอ

ตองม record ทม username และ password ตามทเราระบไวทงค และวธการ bypass password

สามารถท าไดโดยการใสเปน ชอ user‘-- (ตามดวยเวนวรรค) หรอ ชอ user‘# ชดค าสงจะเปลยนเปน

ดงน

ซงค าสงนจะไปหาขอมลทม username เปน admin แตถาไมทราบ user กสามารถสงให match

condition เปนจรงเสมอไดดวยการใสขอมลลงในชอง user วา ‘ or ’x’ = ’x’-- (ตามดวยเวนวรรค) หรอ

‘ or ’x’ = ’x’# ซงผลของรปแบบค าสงกจะไดเปนดงน

username = xʼ OR ʻxʼ=ʼx

password = xʼ OR ʻxʼ=ʼx

SELECT * FROM users WHERE username=’x’ OR ‘x’='x’ AND password=’x’ OR ‘x’='x’;

SELECT * FROM `users` WHERE username='$user' AND password='$pass'

SELECT * FROM `users` WHERE username='admin’-- ' AND password=''

SELECT * FROM `users` WHERE username=’’ or ‘x’=’x’-- ' AND password=''

Page 20: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

11

จากค าสงดานบนจะท าใหเงอนไขเปนจรง จงท าใหสามารถทจะ Bypass เขาสระบบได

กำรใชงำนค ำสง Union Injections

เปนลกษณะการใชงานค าสง Union เพอใชในการประมวลผลขามตาราง ผลลพธของขอมลแถว

ทไดจะรวมตารางทเราใช Union เขาไปดวย เชน

ผลลพธของการ query ค าสงนจะเปนการ น าขอมลจากตาราง news และตาราง members มา

เปนผลลพธของการ query และหากตองการท าใหเกด Error Based เพอทจะคนหาชอคอลมน สามารถ

ใชค าสง HAVING เขามาชวยกไดเชนเดยวกน

จากค าสงนจะใชการคนหาคอลมนไปตามล าดบ โดยเปนล าดบดงน และจะท าการ Request ไป

เรอยๆ จนกระทง หากไมขน error หมายความวาคอลมนมเทานโดย columnfromerror1 หมายถงชอ

column แรกทปรากฏใน error เมอใชค าสงแรก และหมายเลขถดไปเรอยๆ นอกจากนหากตองการท าให

เกด Error Base เพอท าการคนหาจ านวนคอลมน (Number of Columns) กสามารถใชค าสง ORDER

BY เขามาชวยดงค าสง SQL ดานลาง

หากตองการทจะทราบถง Information ตางๆ ของฐานขอมล MySQL ผานทางชองโหว SQL

Injection เชน อยากจะทราบวาฐานขอมลในเวบนนใช Version ไหน ใช User อะไรในการเชอมตอ และ

ชอฐานขอมลอะไร กอาจจะใชค าสงเบองตนดงนเชน

SELECT title, picture FROM news UNION ALL SELECT name, pass FROM members

' HAVING 1=1 --

' GROUP BY table.columnfromerror1 HAVING 1=1 --

' GROUP BY table.columnfromerror1, columnfromerror2 HAVING 1=1 --

' GROUP BY table.columnfromerror1, columnfromerror2, columnfromerror(n) HAVING 1=1 --

ORDER BY 1--

ORDER BY 2--

ORDER BY N--

Page 21: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

12

- version() เปนค าสงในการเรยกด Version ของฐานขอมล MySQL

- user() เปนค าสงในการเรยกด user ทใชงานอยเปนฐานขอมลนน

- database() ค าสงในการเรยกดชอฐานขอมล

- @@hostname เปนค าสงในการเรยกดชอเครอง Computer Name

- @@datadir เปนค าสงในการเรยกด path ทเกบขอมลทตดตงใน MySQL

- @@version_compile_os เปนค าสงในการเรยกด version ของ MySQL ทตดตงบนระบบ

ปฏบตการนนๆ

รปท 2.5 แสดงตวอยางการสงค าสงเพอเรยกด Information ตางๆ ของ MySQL ผานทาง SQL

Injection

นอกจากนหากตองการทจะอานไฟลบนเวบเปาหมาย กสามารถใชค าสง LOAD_FILE ได ค าสง

นจะเปนค าสงในการอานไฟลบน Server แตมขอจ ากดเรองสทธการเขาถงขอมล (Permission) หรอไฟล

ทจะอาน และรวมไปถงสทธของฐานขอมล MySQL ทจะเปนตวก าหนดวา user ไหนท าอะไรไดบาง แต

ถาหากผพฒนาโปรแกรม หรอผดแลระบบน า user ทมสทธดงกลาวมาใชงาน กอาจจะท าใหเกดความ

เสยงนดวย และ user ของ MySQL ทมสทธดงกลาวนกคอ user ชอ root นนเอง ซงสทธการอานไฟลน

จะก าหนดใน tables “user” ทอยในฐานขอมล MySQL และถาหากตองการตรวจสอบสทธดงกลาวก

สามารถ Query ขอมลดได

Page 22: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

13

รปท 2.6 แสดงผลลพธจากการใชค าสง SQL “LOAD_FILE” เพอท าการโหลดไฟลจากเครองเปาหมาย

เมอ Privilege File เปน Y กแสดงวา user ทใชในการเชอมตอนน สามารถอานไฟลบน Server

ได และผไมหวงดจะใชค าสง load_file ได

จากค าสงน ถาหากน าเขามารวมกบค าสง union แลว กจะสามารถผานไฟลบน server แลว

แสดงผลผานทางหนาจอได

รปท 2.7 แสดงผลลพธจากการใชค าสง SQL “LOAD_FILE” เพอท าการโหลดไฟล /etc/password

' union select s1,load_file('/etc/passwd'),3,4 -- -

Page 23: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

14

รปท 2.8 แสดงจากการใชค าสง SQL “LOAD_FILE” เพออานไฟล Configuration บน Server

2.7.2 กำรปองกนกำรโจมตดวย SQLInjection

1. เขยนโปรแกรมใหรดกมมากขน โดยเลอกใชเครองมอตางๆ ทแตละภาษามไวใหเพอ

ชวยในการคดกรองความผดปกต เชน ค าสง mysql_real_escape_string() สามารถใชกบภาษา PHP ท

ท างานรวมกบ MySQL Database จะชวยเราคดกรองอกขระตางๆ ทสอเคาการละเมดได ฉะนนกอนน า

คาทสงมาจากผใชไปใชงาน ควรน ามาผานขนตอนนกอน เปนตน

$username=mysql_real_escape_string($_POST['username']);

$password=mysql_real_escape_string($_POST['password']);

2. การกรองขอมลจะตองท าทกครงกอนน าไปใชงาน ตวอยางตนทางทควรตองกรอง

เชน Form Input ,users, parameters URL, Values from Cookie

3. กรณขอมลทเปนตวเลข ควรท าการตรวจสอบโดยการแปลงคาใหเปนตวเลข หรอใช

ฟงกชน ISNUMERIC เพอตรวจสอบการเปนตวเลขจรงๆ

4. ดแลเกยวกบสทธของผใช ทสามารถ Login เขาส Database ใหอยในวงจ ากด ไม

เปดมากเกนไป และไมความเอา user ทมสทธเปน root มาใชงาน เพราะถาหากเกดชองโหวแลวผไม

หวงดสามารถใชสทธของ user นนท าความเสยหายตอระบบมากขน

5. กรองตวอกขระทเขาขายการละเมดออกจากขอมล input เชน double quote, single

Page 24: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

15

quote, slash, back slash, semi colon, extended character like NULL, carry return, new line และ

อนๆ ทไมควรจะเปนขอมลทใชในระบบ

6. ควรก าหนดและตรวจสอบความยาวของขอมลทสงมาทกครง เพอปองกนการแฝง

ค าสงอนๆ เขามาในฟลดขอมลปกต

7. ใชเครองมอชวยตรวจจบและกรองขอมล เชน โปรแกรมประเภท Web Application

Firewall หรอระบบ IPS (Intrusion Prevention System) วธการนอาจตองแลกดวย Performance ท

ลดลงเนองมาจากการดกจบขอมลและการตรวจสอบ

2.8 ชองโหวของ Cross-site scripting (XSS)

Cross-site Scripting (XSS) เปนชองโหวของเวบแอปพลเคชนอกชองทางหนง โดยผไมหวงด

จะฝงโคดหรอสคปตเขาไปกบหนาเวบเพจทมชองโหว โดยสวนใหญผไมหวงดจะใชภาษาทเปน Client

Script เชน JavaScript/jQuery และเมอเหยอหรอผใชงานเขามาเยยมชมหนาเวบนน กอาจจะถกขโมย

ขอมลตางๆไปได เชน cookie, username, password หรอ redirect ไปยงเวบประสงครายได

รปท 2.9 แสดงผลคกกทเรยกผานภาษา JavaScript

Page 25: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

16

วธกำรโจมตแบบ XSS อำจจะแบงไดเปน 2 ประเภทคอ

O Stored XSS เปนการโจมต ทผไมหวงดจะฝง JavaScript code เขาไปในเวบแอป

พลเคชน ผานทางชองกรอกอนพตตางๆ เชน คอมเมนต, กระทเวบบอรด ฯลฯ เมอมการเปดเขาใชงาน

กจะถกโจมตดวย XSS ไดทนท

O Reflected XSS: เปนการโจมตทผไมหวงดมกจะฝง script ไวใน CGI Parameters

ของ URL แลวท าการสง link ดงกลาวไปใหเหยอ ซงเมอเหยอหลงเปดลงกกอาจจะถกโจมตดวย XSS

ไดเชนกน

Hacker VictimYour

webpagewww

Infect with script

Visit

Inject Script

Do somethings bed

รปท 2.10 แสดงระดบของการโจมตผานชองโหว XSS

รปท 2.11 แสดงลกษณะตวอยาง Code ทฝ งไปหนาเวบเพจเพอขโมย Cookie ของผใชงาน

ในปจจบนมรปแบบการโจมตผานทาง XSS อยหลากหลายรปแบบ ซงในโครงงานนนจะยกตว

อยางรปแบบการโจมตทนยมใชในปจจบน และในบางครงการโจมตดวย XSS อาจจะไมจ าเปนตองใส

<script></script> กสามารถใส script ไดโดยการแนบลงไปใน attribute ได เชน

<body onload=alert(document.cookie)>

Page 26: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

17

2.8.1 กำรปองกนกำรโจมตดวย Cross-site scripting (XSS)

การปองกนปญหาความปลอดภยทเกดจากชองโหวของ XSS อาศยการกรอง

อนพตพารามเตอรจากผใชงานเปนหลก โดยอนพตพารามเตอรตางๆ ไมควรถกน ามาใชงานในทนทและ

ควรจะตองการกรองกอนทกครง เพอไมใหผใชไมสามารถวางสครปตใดๆ ลงในเวบได ซงคาความ

ปลอดภยเรมตนของ CMS หรอเวบส าเรจรปหลายๆ ตวมกตงคาความปลอดภยส าหรบ XSS ไวเปน

อยางดอยแลว และฝ ง Client หรอผใชงานสามารถปองกนเบองตนไดโดยใชเครองมอในการทองเวบ

ไซดอยางเชน Firefox ซงในตว Browser Firefox นนจะม Add-on ตวนงทชอ No-Script ซงท าหนาท

ปองกน Script ทเกดจากชองโหว XSS ไดเชนเดยวกน

ปจจบนมระบบปองกนจ าพวก Intrusion Detection System (IDS) หลายตวมความสามารถใน

การตรวจจบวาผใชพยายามโพสสครปตเขามายงเวบหรอไม ท าใหสามารถแจงเตอนไดแตเนนๆ วาม

ความพยายามทดสอบวาเวบมการรกษาความปลอดภยทด

Page 27: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

18

บทท 3 กำรออกแบบโครงงำน

การออกแบบพฒนาโปรแกรมคนหาชองโหวและประเมนความเสยงในเวบแอปพลเคชนทพฒนาดวย PHP และใช ฐานขอมล MySQL นนจะใชหลกการของ HTTP Request/Response เพอ Scan หาจดบกพรองของเวบ รวมถงสงค าสงหรอสครปบางอยางเขาไปทดสอบเพอใหเวบเกดขอผดพลาดแลวแสดงผลออกมาทางหนาจอโปรแกรม ซง Application ทจะพฒนาขนมานนจะใชภาษา C# .NET และใชเครองมอคอ Visual Studio 2012 ในการพฒนาโปรแกรม 3.1 แนวทำงกำรออกแบบระบบ ในโครงงานนน จะมการเขยนโปรแกรมในสวนของฟงกชนในการคนหาชองโหวผานทาง SQL Injection ซงจะสามารถคนหาชองโหว ตางๆ 3.1.1 คนหาและรวบรวมขอมลเปาหมาย (Information Gathering) 3.1.1.1 Detect IP (แสดง IP จาก URL ทท าการคนหาชองโหว) 3.1.1.2 Detect OS (ตรวจสอบระบบประฏบตการ) 3.1.1.3 Detect MySQL Information - Current User (แสดง User ของ MySQL ทใชในการดงขอมลมาแสดงผล) - Count Data Base (แสดงจ านวนฐานขอมล) - Installation path & Data path (Path ทตดตงและ Path ทอย Data Base) - Privilege Read/Write MySQL (สทธในการอาน/เขยนไฟล) - Database version (เวอรชนของ MySQL ทใชงาน) - คนหาชองโหวทอาจกอใหเกดการโจมตแบบ Cross-site scripting 3.1.2 คนหาฐานขอมล (Find Database Schemata) 3.1.3 คนหาเทเบล (Find Tables Schemata) 3.1.4 คนหาคอลมน (Find Columns) 3.1.5 แสดงขอมล (Show Data) 3.1.5.1 สามารถกรองขอมลได (Filter Data) 3.1.5 ตงคา Configurations ตางๆ 3.1.6 ออกรายงานเพอประเมนความเสยงของชองโหวทตรวจพบ 3.2 องคประกอบในกำรพฒนำโครงงำน สามารถแยกออกไดเปน 2 สวน คอ ชดพฒนาโปรแกรม และดานโปรโตคอล ดงน 3.2.1 องคประกอบดานชดพฒนาโปรแกรม

Page 28: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

19

3.2.1.1 โครงงานการพฒนาโปรแกรมคนหาชองโหวและประเมนความเสยงในเวบแอปพลเคชนทพฒนาดวย PHP และใช ฐานขอมล MySQL จะใชชดพฒนาโปรแกรมไมโครซอฟทเวอชวสตดโอ 2012 (Microsoft Visual Studio 2012) โดยเลอกใชภาษา C# .NET Framework 3.5 ซงเปน Windows Application เปนเครองมอในการพฒนาโครงงาน ดงแสดงในรปท 3.1และ 3.2

รปท 3.1 โปรแกรมไมโครซอฟทเวอชวสตดโอ 2012

รปท 3.2 ชดพฒนาโปรแกรมใช .Net Framework 3.5 (Windows Application)

Page 29: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

20

3.3 คณสมบตของโปรแกรม 3.3.1 สามารถคนหาชองโหวของเวบแอปพลเคชนทพฒนาดวยภาษา PHP

3.3.1.1 ตรวจสอบการโจมต SQL Injection

คนหาชองโหวของเวบทพฒนาดวยฐานขอมล MySQL

Scan Data Base (คนหาฐานขอมลจากชองโหว)

Scan Column (คนหาคอลมนฐานขอมลจากชองโหว)

Scan Data (คนหาขอมลทอยในฐานขอมล MySQL)

Load File in local (โหลดไฟลคอนฟกบน Server)

3.3.1.2 ตรวจสอบคนหาชองโหวทอาจกอใหเกดการโจมตแบบ Cross-site scripting

3.4 ขนตอนกำรท ำงำนของโปรแกรม โครงงานนเปนโปรแกรมซงสามารถแสดงเปนแผนภมโครงสรางขนตอน การท างานไดดงน

Scan for attack patterns

Attack Pattern

Found?

Store attack information

into database

Process Normally

Start

End

Get Content URL (link)

Yes

No

Check authen

information gathering

YesLoad Cookie Bypass authen

No

รปท 3.3 แสดงขนตอนการใชงานโปรแกรม

Page 30: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

21

3.5 กำรออกแบบโปรแกรม ในการออกแบบโปแกรมจะท าการจดวางหนาตาใหสะดวกตอการใชงาน โดยในสวนของ หนาแรกของโปรแกรมมการแบง Function การใชงานอย 4 สวนดวยกน คอ 3.5.1 SQL Injection Scan คอการ Scan Link ทงหมดในเวบ เพอคนหาชองโหวทเกดขนในหนาตางนจะแสดงผลการ Scan รวมถงชองโหวทตรวจพบ โดยหลกท าการท างานคอจะเขยนโปรแกรมเพอรองขอ HTTP Request (GET) แลวน าผลทไดมาท าการ Filter เอาเฉพาะ URL โดยใช Regular Expression ในหนาตางน หากกรณตอง Login กอน เพอทจะใหโปรแกรมเขาถงกสามารถท าการ Load Cookie แลวท าการ Login เพอใหได Cookie มาท าการ Bypass เขาไป Scan ขางในอกท

รปท 3.4 แสดงหนาตาโปรแกรมหลก

จากรปท 3.4 นนจะเปนหนาหลกในการคนหา link ทงหมดทเพอท าการวน loop เพอคนหาขอผดพลาดของเวบแอปพลเคชน

Page 31: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

22

รปท 3.5 โปรแกรมในสวนของ SQL Injection แบบ Manual จากรปท 3.5 หนาตางนเจาของโครงงานไดออกแบบเพอทดสอบ SQL Injection เจาะจงเพอทดสอบชองโหว ซงสามารถท าการคนหา Information ตางๆ รวมถงคนหา Data Base, Tables, Column, Data รวมถงสามาถอานไฟลจาก Server ได กรณท User ของ MySQL ม Privilege ในการอานไฟล

รปท 3.6 หนาออกรายงาน (Report)

Page 32: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

23

จากรปท 3.6 เมอไดท าการคนหาชองโหวเรยบรอย สามารถทจะออกรายงานเพอประเมนความผดพลาดทงหมดได และสามารถทจะเลอกเงอนไขในการคนหารายงานชองโหวไดตามวนทและประเภท

รปท 3.7 หนาตงคา Settings

จากรปท 3.10 หนาตางนจะเปนหนาในสวนของการตงคาทงหมดของโปรแกรมและคาท Config จะถกเกบลงใน Database และ Database ทใชในโครงงานนจะใช SQLite เนองจากใชงาย ไมตองตด ตงและสามารถน า Library API Connector for .NET ของ SQLite มาเรยกใชงานไดเลย

รปท 3.8 ฐานขอมล SQLite ทใชในโครงงาน

จากรปท 3.11 หนาตางนจะเปนในสวนฐานขอมลทน ามาเกบคา Configuration ตางๆ รวมไปถง

เกบรายงาน และสามารถเขยนโปรแกรมไปเรยกใชงานตามเงอนไขทตองการไดงายและรวดเรว

Page 33: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

24

3.6 โครงสรำงตำรำง

ตำรำงท 3.1 แสดงรายละเอยดผลการคนหาชองโหว (Project) ชอฟวด ชนดขอมล ควำมยำว คย ควำมหมำย

proj_id INTERGER PK หมาเลขล าดบของผลการคนหาชองโหว proj_url VARCHAR 1000 ลงคของเวบเปาหมายจากผลการแสกน proj_risk VARCHAR 2 ประเภทของความเสยงทเขาถง proj_create DATETIME วนทท าการคนหาชองโหวจากโปรแกรม pro_found VARCHAR 500 คาทไดจากการคนหา (Request) proj_status VARCHAR 1 สถานะของชองโหวทพบ proj_name VARCHAR 200 ชอ Project ทจะท าการคนหาชองโหว

ตำรำงท 3.2 แสดงรายละเอยดตารางในการเกบรปแบบการโจมตดวย SQLInjection (Sqlinj_Pattern)

ชอฟวด ชนดขอมล ควำมยำว คย ควำมหมำย pattern_id INTERGER PK หมาเลขล าดบของรปแบบเอสควเอล pattern_type INTERGER 1 ประเภทของการคนหาชองโหว pattern_create DATETIME วนทท าการเพม/แกไข รปแบบ pattern_cfg VARCHAR 1000 พารามเตอรรปแบบตางๆในการโจมต pattern_active INTERGER 1 สถาณะใชงาน

ตำรำงท 3.3 แสดงรายละเอยดตารางในการเกบคาคอนฟก (Path_configs)

ชอฟวด ชนดขอมล ควำมยำว คย ควำมหมำย path_id INTERGER PK หมาเลขล าดบของคาคอนฟก path_os_type INTERGER 1 ประเภทของพารามเตอรในการคอนฟก path_url VARCHAR 1000 พาทของคาคอนฟก pattern_active INTERGER 1 สถาณะใชงาน

Page 34: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

25

รปท 3.9 แสดงรปแบบพารามเตอรทเกบในฐานขอมล SQLite

ตำรำงท 3.4 แสดงระดบของการประเมนความเสยง

ประเภทของกำรคนหำชองโหว ระดบควำมเสยง ควำมหมำย

Cross-site scripting (XSS) 3 ความเสยงทสามารถเขาถงขอมลของผใชงานผานชองโหว XSS

SQL INJECTION Information gathering 1 ความเสยงทท าใหผไมหวงดสามารถ

เขาถงคาคอนฟกบางอยางบนฐานขอมล Database Attack 2 ความเสยงทท าใหผไมหวงดสามารถด

ลสตรายชอฐานขอมล Tables Attack 3 ความเสยงทท าใหผไมหวงดสามารถอาน

ขอมลเทเบลในฐานขอมล Columns Attack 3 ความเสยงทท าใหผไมหวงดสามารถอาน

ขอมลคอลมนในฐานขอมล Data Attack 4 ความเสยงทท าใหผไมหวงดสามารถอาน

เรคคอรขอมลในฐานขอมล Read/Write File Attack 5 ความเสยงทท าใหผไมหวงดสามารถ

เขาถงไฟลบนเซฟเวอร

Page 35: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

26

บทท 4 กำรทดลองและผลกำรทดลอง

4.1 เครองมอทใชในกำรทดลอง

ในการทดลองนน จ าเปนตองสรางสภาพแวดลอมขนมาเพอท าการ ทดสอบการคนหาชองโหว

ของเวบแอปพลเคชนทพฒนาดวยภาษา PHP และใชฐานขอมล MySQL โดยจะมรายละเอยดดงน

4.1.1 ท าการตดตง Webserver ทสามารถรน PHP ซงจะใช Apache, XAMPP, IIS กได ในการ

ทดลองน จดท าโครงงานจะใช IIS เปน Webserver ในการรน PHP

4.1.2 ชดโปรแกรมทออกแบบและพฒนาโดยใชภาษา C# .NET ซงเปน Windows Application

4.1.3 เวบทใชในการทดสอบ ในการทดลองน ผจดท าโครงงานจะใช เวบส าเรจรปทเปนทนยม

ใชงานหรอเรยกสนๆ วา “CMS” ในการทดสอบคนหาชองโหวของ SQL Injection ทพฒนาดวยภาษา

PHP และใชฐานขอมล MySQL

4.2 กำรทดลอง

หลงจากทท าการตดตง PHP แลวท าการตงคา Config Webserver (IIS) ใหสามารถใชงาน

ภาษา PHP เรยบรอยแลว ในการทดลองท าการเปดโปรแกรมขนมา จากนนระบเปาหมายทจะท าการ

คนหาชองโหว ตรงน ถาหากตองการเกบขอมลผลการคนหาเพอท ารายงานดวย กจะตองสราง New

Project แลวตงชอ Project Name กอน จากนนคอยด าเนนการสแกนคนหาชองโหวขนตอน

ถดไป

รปท 4.1 แสดงตวจดการ Webserver ทใชในการรนภาษา PHP

Page 36: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

27

4.2.1 คนหำ URL ทงหมดบนเวบเปำหมำย

ในการทดลองน ใหท าการกรอก URL เขาไปในชอง Victim จากนนกดปมสเขยว เพอ

ท าการคนหา Link ทงหมดอยอยในหนาเวบ จากภาพจะท าการการคนหา Information gathering เพอ

ใหรวาเวบททดสอบใชระบบปฏบตการ หมายเลขไอพแอดเดรส และจ านวน Link ทจะเอาน ามาเขาส

กระบวนการตรวจสอบ

รปท 4.2 แสดงการคนหา Link ทงหมดทอยบนเวบเพจ

4.2.2 คนหำฐำนขอมลในระบบเวบแอพลเคชน (Database Scan)

ในสวนนเปนขนตอนการคนหาฐานขอมลทงหมดภายภายใตสทธของยสเซอร MySQL

รปท 4.3 แสดงการคนหาฐานขอมลทงหมดภายใตสทธของยสเซอร

Page 37: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

28

4.2.3 คนหำ Information ของฐำนขอมล MySQL

โปรแกรมจะท าการคนหาขอมลทตางๆ เชน Database Version, Current’s User, Path

Install (ทอยทตดตง), Path Data (ทอยของไฟลฐานขอมล) และ Version Compile ของฐานขอมล

รปท 4.4 แสดงผลการคนหา Information ของ User ทเวบนนใชงานอย

รปท 4.5 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอ Get Information

Page 38: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

29

4.2.4 คนหำรหสผำนของฐำนขอมล MySQL (กรณสทธของ User นนเปน root)

โปรแกรมจะท าการทดสอบ SQL Injection เพอทจะดงเอา Username และ Password

ของฐานขอมลออกมา แตโปรแกรมจะดง Username และ Password ออกมาได User ของฐานขอมล

ของเวบเปาหมายนนตองมสทธเทยบเทา root นนกคอ Admin ของฐานขอมล MySQL นนเอง

รปท 4.6 แสดงผลการคนหา User และ Password ของฐานขอมล MySQL

รปท 4.7 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอ Get User/Pass ของ MySQL

Page 39: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

30

4.2.5 คนหำตำรำงของฐำนขอมล (Tables Scanner)

ในขนตอนนโปรแกรมจะท าการยง SQL Injection เพอท าการคนหาตารางจากฐานขอ

มลทเลอก Checkbox ระบบจะคนหาและท าการ Highlight สแดง ถาหากชอ Tables เปนทนาสนใจดงท

ตงคาไวในขนตอนการ Config โปรแกรม

รปท 4.8 แสดงผลการคนหา Tables จากฐานขอมลทไดท าการเลอกจากเมนดานชาย

รปท 4.9 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอคนหา Tables

Page 40: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

31

4.2.6 คนหำคอลมน (Column Scanner)

ในขนตอนนโปรแกรมจะท าการยงค าสง SQL Injection เพอทการคนหา Column ทง

หมดจากการเลอก Table และถาหากชอ Column เปน key word ทไดท าการตงคาไว โปรแกรมกจะท า

การ Highlight สแดงใหดวย

รปท 4.10 แสดงผลการคนหา Columns ทมการเลอก Tables จากเมนรายการดานชาย

รปท 4.11 แสดง Header ทสง Request ไปยงเวบเปาหมายเพอคนหา Columns

Page 41: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

32

4.2.7 คนหำขอมลจำกฟวดขอมล (Data Scanner)

ในขนตอนนโปรแกรมจะท าการคนหาขอมลภายในฟวดขอมลอยไดท าการเลอกคอลมน

ไว โดยการเลอกชอคอลมนทตองการดทโปรแกรมฝ งชาย จากนนกดปม Get Data

รปท 4.12 แสดงขอมลในฟวดทงหมดทไดท าการเลอก Columns รายการดานชาย

รปท 4.13 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอคนหาฟวดขอมล

Page 42: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

33

4.2.8 คนหำขอมลจำกไฟลทอยบนเวบเชอเวอร (Get Local file)

ถาหากเวบเปาหมายมการตงคาโดยใช User ของฐานขอมล MySQL ทมสทธในการ

อานไฟล โปรแกรมกสามารถยงค าสง SQL Injection เพอท าการ Load file ตางๆ ทอยบน Webserver

ออกมาอานได เชนไฟล Seting.php, Config.php เปนตน ท าใหผไมหวงดรถง User และ Password

ของฐานขอมลและผไมหวงดสามารถทจะน า User และ Password ดงกลาวเขาไปกระท ากบฐานขอมล

ใน Server ผาน phpMyAdmin หรอชองทางอนๆ โดยตรงได ซงชองโหวนถอวารายแรงอยางมาก

รปท 4.14 แสดงผลการโหลดไฟลทอยบน Webserver จากชองโหว SQLInjection

รปท 4.15 แสดง Header ทโปรแกรมสง Request ไปยงเวบเปาหมายเพอ Load file บน Server

Page 43: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

34

4.2.9 รำยงำน (Reports)

หลงจากทโปรแกรมไดท าการคนหาชองโหวเรยบรอยแลว หากตองการทจะแสดงผล

รายงาน กสามารถ Search หาชอ Project หรอถาหากรวนทกสามารถระบเงอนไข และอาจจะเพมเงอน

ไขประเภทของการโจมต (Type Inject) กสามารถเลอกทจะคนหาผลการแสกนซองโหวทผานมาได โดย

เมอท าการเลอกเงอนไขเสรจ คลกทปม Export Report เพอทจะดผลรายงาน รวมถงรายละเอยดในราย

งานกจะมคาระบผลการของประเมนใหทราบอกดวย

รปท 4.16 แสดงผลการหนาตาโปรแกรมในการออกรายงานผลการคนหาชองโหว

Page 44: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

35

บทท 5

สรปผลกำรด ำเนนงำน

5.1 ผลกำรด ำเนนโครงงำน

จากการศกษาและพฒนาโปรแกรมในการคนหาชองโหวของเวบแอปพลเคชนทพฒนาดวย

ภาษา PHP และใชฐานขอมล MySQL นน ท าใหสามารถน าผลทได ไปตรวจสอบ ปองกนและแกไขให

เวบแอปพลเคชนมความปลอดภยยงขน และยงเปนโปรแกรมทใชงานสะดวกและงายตอการใชงาน

สามารถน าไปพฒนาตอไดในอนาคต

5.2 ปญหำและแนวทำงแกไข

5.2.1 ปญหำ

5.2.1.1 ดานการพฒนาโปรแกรมนน ขบวนการท างานจะไปท าการ Request ขอมลท

อยบน Webserver และท าการคนหา URL ทงหมดทอยในพาทของ Webserver ท าใหใชเวลานานเพราะ

ในบางทเวบเปาหมายทจะท าการ Scan เพอคนหาชองโหวนนเปนเวบทเนอหา (Content) คอนขางเยอะ

กอาจจะท าใหมความลาชาในการทดสอบ

5.2.1.2 เนองจากโปรแกรมทพฒนาขนนน ในขนตอนการสรางรายงานจะใช Library

ของ iTextSharp ชงเปน Open source ฟร และใชงานคอนขางล าบาก เพราะไมมเครองมอในการออก

แบบหนาตารายงานเลย จงจ าเปนตองเขยนฟงกชนในการออกรายงานคอนขางมาก

5.2.2 แนวทำงแกไข

5.2.2.1 ในการแกไขปญหา HTTP Request Content เยอะๆ นน ท าใหโปรแกรมทได

พฒนาขนมาคอนขางชาและเกดการคางบอย จงไดท าการแกไขปญหานโดยการพฒนาโปรแกรมใหรอง

รบ Multithread และใช Background Worker มาชวยจดการเรอง Thread ท าใหการแสดงผลรวดเรว

ยงขน

5.3 ขอเสนอแนะ

ควรพฒนาโปรแกรมใหรองรบรปแบบการโจมตหลายๆ แบบ และรวมไปถงความสามารถในการ

คนหาชองโหวควรจะครอบคลมภาษาอนๆ นอกเหนอจากภาษาพเอสพ (PHP) ดวย

Page 45: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

36

เอกสำรอำงอง

[1] Vulnerability, [Online]. Available: http://en.wikipedia.org/wiki/Vulnerability

[2] SQL Injection (OWSAP), [Online]. Available: https://www.owasp.org/index.php/SQL_Injection

[3] SQL Injection Attacks, [Online]. Available: http://www.unixwiz.net/techtips/sql-injection.html

[4] Cross-site Scripting (XSS), [Online]. Available: http://www.yannarak.com/node/2

[5] SQL Injection Tutorial, [Online]. Available: http://hackertarget.com/sql-injection/

[6] สภชย สมพานช, “คมอ ASP.NET 2.0 ฉบบสมบรณ”, Infopress Developer Book

[7] Google XSS Flaw in Website Optimizer Scripts explained, [Online]. Available:

http://www.acunetix.com/blog/web-security-zone/articles/google-xss-website-optimizer-scripts/

[8] INJECTION IN SQL - PHP BY REVEAL CODES, [Online]. Available:

http://alokrajmca.blogspot.com/2009/06/injection-in-sql-php-by-reveal-codes.html

[9] .NET Framework, [Online]. Available: http://en.wikipedia.org/wiki/.NET_Framework

[10] Justin Clarke, SQL Injection - Attacks and Defense, Syngress Publishing, Inc.

[11] Detecting Persistent Cross-site Scripting, @2010 eEye Digital Security.

[12] Varian Luong, Intrusion Detection And Prevention System: SQL Injection Attacks

[13] ดร.บรรจง หะรงษ, “Plan-Do-Check-Act ตามมาตรฐาน ISO/IEC 27001”, [Online]. Available:

http://www.tnetsecurity.com/content_audit/pdca_qa.php

[14] Cross-site scripting,[Online]. Available: https://en.wikipedia.org/wiki/Cross-site_scripting

[15] XSS Filter Evasion Cheat Sheet, [Online]. Available :

https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet

[16] SQL Injection Cheat Sheet : http://ferruh.mavituna.com/sql-injection-cheatsheet-oku/

[17] OWASP Cross-site Scripting (XSS) : https://www.owasp.org/index.php/Cross-

site_Scripting_%28XSS%29

[18] SQL Injection Using MySQL LOAD_FILE() : http://blog.rootcon.org/2012/03/sql-injection-

using-mysql-loadfile-and.html

Page 46: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

ก-1

ภาคผนวก ก.

โครงสรางพนฐานของภาษา SQL

Page 47: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

ก-2

1. โครงสรางพนฐานของภาษา SQL แบงออกเปน 3 กลมใหญๆ คอ

SQL = Structured Query Language ภาษากลางทใชในการเรยกคนและจดการฐานขอมลโดย

เฉพาะอยางยงฐานขอมลประเภท RDBMS (Relational Database Management System)

- กลม Data Definition Language (DLL) ใชจดการโครงสรางของฐานขอมล เชนการ

สรางตาราง, ปรบปรงโครงสรางฐานขอมล, เพมหรอลบตารางในฐานขอมล

- กลม Data Manipulation Language (DML) ใชจดการขอมล การแสดงขอมล, เพม,

ลบ, แกไข

- กลม Aggregate Functions หรอ Built-in-Function ใชในการหาผลรวมของเรคคอรด,

การหาคาสงสด, คาต าสด, การก าหนดจ านวนเรกคอรดทตองการแสดง (เปนประโยชนอยางยงทชวยไม

ใหเขยนจดการ Code เอง)

- Primary Key คอ คาไมซ า

- Foreign Key คอ Column หรอชดของ Column ทใชในการเชอมโยงขอมลหรอแสดง

ถงความสมพนธระหวางขอมล (ตารางอน)

1.1 ตวด าเนนการ Operators ในภาษา SQL

= เทากบ (Equal)

<> ไมเทากบ (Not Equal)

< นอยกวา (Less Than)

> มากกวา (Greater Than)

<= นอยกวาหรอเทากบ (Less Than or Equal To)

>= มากกวาหรอเทากบ (Greater than or Equal To),

LIKE เปนการเปรยบเทยบโดยใชอกษรพเศษ (Wild Card Character) เชน * ? %

* ตวด าเนนการดานตรรกะ (Logical Operator) ทนยมใชจะมอย 3 ตวคอ AND, OR, NOT

1.2 ล าดบเครองหมายของภาษา SQL

1. *

2. /

3. +

Page 48: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

ก-3

4. -

ขอมลเรยงตามล าดบ ตามน และจะค านวน จาก ชาย ไป ขวาเสมอ

1.3 กลมฟงกชน Aggregate ในภาษา SQL เปนกลมฟงกชนทใชค านวณดาน

คณตศาสตร

AVG() หาคาเฉลยของฟวลจากเรคคอรดทงหมด

COUNT() นบจ านวนเรคคอรด

FIRST() หาคาของขอมลทอยในล าดบแรก

LAST() หาคาของขอมลทอยในล าดบสดทาย

MAX() หาคาสงสดของขอมล

MIN() หาคาต าสดของขอมล

SUM() ค านวนผลรวมทงหมดของฟลด

STDDEV() หาคาสวนเบยงเบนมาตฐาน ของ Column ทระบ

1.4 พนฐานการใชงานกลมค าสง DDL (Data Definition Language)

- CREATE สราง Database Object

- ALTER เปลยนแปลง Database Object

- DROP ลบ Database Object

1.5 พนฐานการใชงานกลมค าสง DCL (Data Control Language)

เปนค าสงส าหรบก าหนดหรอถอนสทธ

- GRANT ใหสทธแกผใช

- REVOKE ถอนสทธของผใช

1.6 พนฐานการใชงานกลมค าสง Transaction Command

COMMIT ยนยนการท ารายการ

ROLLBACK ยกเลกการท ารายการ

Page 49: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

ก-4

1.7 พนฐานการใชงานกลมค าสง DML ทง 4

1.7.1 ค าสง DELETE เปนค าสงในการลบขอมลหรอลบเรคคอรดใดๆ ออกจากตาราง

เชน DELETE * FROM ชอตาราง

DELETE FROM ชอตาราง WHERE ชอฟวล < 100 ตองการลบขอมลในตาราง โดย

ชอฟวสใดๆ มคานอยกวา 100 ออก

DELETE FROM ชอตาราง WHERE GPA < 1.5 OR Point < 10 ลบเรกคอรดทม

GPA ต ากวา 1.5 หรอ Point ต ากวา 10

เราสามารถใส () ในเงอนไขได เชน DELETE FROM ชอตาราง WHERE (GPA < 1.5) OR

(Point <10 ) เพองายตอการเขาใจและเรายงสามารถใชตวด าเนนการดานตรรกะเชน AND หรอ OR

มาระบเงอนไขไดอกดวย

1.7.2 ค าสง INSERT เปนค าสงเพมขอมลหรอเพมเรคคอรดเขาไปในตาราง เชน

INSERT INTO ชอตาราง ( ฟลด1, ฟลด2 ....) VALUES (ฟลด1, ฟลด....)

หมายเหต ถาเปนขอมลประเภทตวอกษรตาง (Text) อาจจะเปนขอความธรรมดาหรอตวเลขท

อยในลกษณะตวเลข (Nvarchar) จะใชเครองหมาย ' ' ก ากบไวดวย และถาเปนตวเลขสามารถใสคาเขา

ไปไดเลย ถาเปนขอมลประเภทวนท (Date/Time) ถาเปน Access จะใช # ถาเปน SQL Server จะใช ' '

1.7.3 ค าสง UPDATE เปนค าสงทใชส าหรบแกไขหรอเปลยนแปลงขดชอมลในเรก

คอรดทมอยในตาราง

UPDATE ชอตาราง SET ชอฟลด = คาทก าหนด, ชอฟลด2 = คาทก าหนด WHERE

ตามดวยเงอนไข

หมายเหต เปนขอมลประเภทตวอกษรตาง (Text) อาจจะเปนขอความธรรมดาหรอตวเลขทอย

ในลกษณะตวเลข (Nvarchar) จะใชเครองหมาย ' ' ก ากบไวดวย และถาเปนตวเลขสามารถใสคาเขาไป

ไดเลย และถาเปนขอมลประเภทวนท (Date/Time) ถาเปน Access จะใช # ถาเปน SQL Server จะใช

เครองหมาย ' '

UPDATE Test SET ID=6, Name='Malee' GPA=0.9, Point=90 WHERE ID = 1

เปนการแกไข Name =Malee และ GPA = 0.9 Point = 90 โดยเงอนไขแกเฉพาะเรคคอรท ID =1

UPDATE Test SET Point=40 WHERE Point < 20

Page 50: Development of Web Application’s developed with PHP and ... การพัฒนาโปรแกรม... · II Project Title Development of Web Application’s developed with

ก-5

เปนการแกไขขอมลทอยในฟลด Point โดยมเงอนไขวา Point ตองนอยกวา 10 เทานน

1.7.4 ค าสง SELECT เปนค าสงทท าหนาทเลอกหรอดงขอมล (Retrieve Data)

SELECT * FROM ชอตาราง

ถาในกรณทชอฟลดมชองวางจะตองใช [ ] ก ากบไวดวย เชน First Name จะเปน select [First

Name] From .

หมายเหต ถาตองการเรยงล าดบขอมลใหใช ORDER BY ถาเราไมระบ มนจะเรยงจาก นอย

ไปมาก แตถาตองการเรยงจาก มากไปนอยใหใช DESC

เชน SELECT Name from test ORDER by Name DESC

SELECT * from test where Point < 50

SELECT * from test where Point BETWEEN 30 AND 90

เปนค าสงในการดงขอมลในชวงทตองการ