Archive

Archive for January, 2016

เปิดซิง sql injection

January 21st, 2016 Comments off

จริง ๆ น่าจะเรียกได้ว่าเป็นภาค 6 เอฟเฟ็คมากกว่าครับเผื่อใครไม่รู้ละกันตามข่าว นี้
ซึ่งผมเดาว่าละกันว่าโดน sql injection ถามว่าทำไมคงเป็นเพราะ ง่าย ไม่ต้องคิดอะไรมาก
แค่ใช้ sqlmap scan เจอก็ทำได้ตั้งแต่ dump database ไปจนถึง spawn shell ขึ้นมา
คือโคตรง่ายเด็ก ป.6 ก็ทำได้ ทีนี้สงสัยว่าเว็บที่ทำงานมีบ้างรึเปล่า ลอง scan ดู
อ้าว มีเหมือนกันแฮะมันโหว่ตรง

http://www.mysite.co.th/base.php?page=readmore&id=2095&section=news

โหว่ตรงไอ้ id นี่เลยครับช่องโหว่นี้มันเกิดเพราะหนึ่งใช้ function mysql() แทนที่จะใช้ mysqli
ได้ mysqli นี่มันกัน sql injection ครับแต่ mysql ธรรมดาไม่ได้กันครับ
ถามว่าผมแก้ยังไง ผมแค่แปลงเป็น int ครับ intval($_REQUEST[‘id’]) ขี้เกียจแก้เป็น mysqli
พอแปลงเป็น int แล้วจะใส่ UNION มาต่อท้ายหรืออะไรก็ไม่ผลละครับก็รอดไปแบบบ้าน ๆ

แต่จากเหตุการณ์นี้ทำให้ผมรู้ว่าไอ้การใช้ lamp เนี่ยเพื่อความปลอดภัยมันควรจะ

1. ปิดฟังก์ชั่นด้าน security ของ php ให้หมดครับ exec เทือกนั้นอย่าเปิดทิ้งไว้ไม่งั้นเค้าจะ spawn shell ได้
2. ใช้ mysqli เสมอ
3. user ที่ connect เข้า mysql อย่าใช้ root ให้สิทธิเท่าที่จำเป็น
4. folder html สิทธิควรเป็น 755

แต่บอกตามตรงครับ sql injection เป็นอะไรที่โคตรง่ายครับ แล้วเว็ปราชการไทยเป็นเยอะ
ใครมีเว็ปกลัวว่าจะโดนผมแนะนำให้เอา sqlmap มา scan ดูเลยครับ

Categories: Security, sql injection Tags: