ããã®ã¨ãããããã¤ãã®SQL Injectionãã¼ã«ã«ã¤ãã¦èª¿ã¹ã¦ãã¾ãããä»æ¥ã¯ãã®çµæãæ¥è¨ã«æ¸ãã¦ã¿ããã¨æãã¾ãã
ã¯ããã«
SQL Injectionãã¼ã«ã¨ã¯
SQL Injectionèå¼±æ§ã®çºè¦ã¨ãçºè¦ããèå¼±æ§ãçªãã¦ã®DBå æ å ±ã®åå¾ãè¡ãªãããã®ãã¼ã«ã§ãã
ãã ããå¤ãã®ãã¼ã«ã§ã¯ãèå¼±æ§ã®çºè¦ãã¯ãã¾ãã§ãå¾è ã®DBå æ å ±ã®åå¾ã«ä¸»ç¼ãç½®ãã¦ãã¾ããä¸è¬çã«ã¯ãæ±ç¨ã®Webèå¼±æ§ã¹ãã£ããªã©ã§èå¼±æ§ãè¦ã¤ãã¦ããã®èå¼±æ§ã«å¯¾ãã¦ãã®æ¥è¨ã«æ¸ãã¦ãããããªãã¼ã«ã使ã£ã¦æ å ±ãåå¾ããã¨ãã使ãæ¹ããããã¨ãå¤ãã§ãããã
SQL Injectionãã¼ã«ã¯ãããããHackingãã¼ã«ã§ããèå¼±æ§æ¤æ»ãè¡ãªãè ãããããªããã°Crackingãè¡ãªãç¯ç½ªè ã使ããããã§ãä¸è¬ã®Webéçºè ãã¦ã¼ã¶ã®äººã使ãå¿ è¦ã«è¿«ããããã¨ã¯ç¡ãã§ãããã
ãã¼ã«ã®ä½¿ç¨ã«éãã¦ã¯ããã¼ã«ããã¼ã«ã使ç¨ããå´ã«ã¨ã£ã¦å®å ¨ãªãã®ã§ãããï¼ä¾ãã°æªæã®ããã³ã¼ããå«ã¾ãã¦ããªããï¼ãèªãã®ç®ã§ç¢ºèªããå¿ è¦ãããã¾ããåæã«ã使ç¨ãããå´ã«ã¨ã£ã¦å®å ¨ã§ãããï¼ä¾ãã°ãã¼ã«ãå±éºãªSQLæãçºè¡ãããããªããï¼ãè¦æ¥µããå¿ è¦ãããã¾ãã
ã¾ãããã¾ã§ãããã¾ãããããã¼ã«ä½è ã®å®ãã使ç¨æ¡ä»¶ã¨ãæ³å¾ã«å¾ã£ã¦ä½¿ç¨ããå¿ è¦ãããã¾ãã
調æ»å¯¾è±¡
以ä¸ã®15種é¡ã§ãã
1. sqlmap
2. SQLBrute
3. Absinthe
4. ISR-sqlget
5. NGSS SQL Injector
6. SQL Injection Brute-forcer
7. SQL Power Injector
8. OWASP SQLiX
9. sqlninja
10. BobCat
11. SQLIer
12. Sqlbftools
13. Automagic SQL Injector
14. Blind SQL Injection Perl Tool
15. SQL Injection Pen-testing Tool
å°ãåã«åºãsecurity-hacks.comã¨æ°ã¯åãã§ãããå°ãã ãé¡ã¶ãã¯éãã¾ãã
åºæ¬çã«Oracleã«å¯¾ãã¦ä½¿ç¨ã§ãããã®ã«ã¤ãã¦ã¯ã詳細ã調ã¹ã¦ãã¾ããOracleã§ä½¿ãããã®ã¯ãä¸è¨ã®1ã8ã§ãã
調æ»çµæã®ã¾ã¨ã
ä¸è¦§è¡¨ã«ã¾ã¨ãããã®ã以ä¸ã§ãã
- Oracle対応のツール(1-8)
âå²ã¨è©³ç´°ã¾ã§èª¿ã¹ã¦ãã¾ãã - Oracle非対応のツール(9-15)
âãã¼ã«ã対å¿ããDBMSããããã調ã¹ã¦ãã¾ããã - 上記表の見方
âä¸è¨ã®2ã¤ã®è¡¨ã®èª¬æã§ãã
Oracle対å¿ã®8ãã¼ã«ã«ã¤ãã¦ã¯ãæ¬ä¼¼çãªç°å¢ï¼Javaï¼Oracleã®ãããå½¹ã®ã¢ããªã±ã¼ã·ã§ã³ï¼ã§å®éã«ä½¿ã£ã¦è©¦ãã¦ã¿ã¾ããã
ãã®ææ³ã以ä¸ã«æ¸ãã¾ãï¼ããã¾ã§ãOracleåãã®æ©è½ã ãã使ã£ã¦è©ä¾¡ããã¦ãããã¨ã«ã注æä¸ããï¼ã
sqlmapï¼å人çãªè©ä¾¡ï¼Bï¼
- å²ã¨å¤ãæãããã¥ã¡ã³ããããã
- å ã ã¯MySQLåãã«ä½ã£ãã¨æããããä¸é¨Oracleã ã¨ãã¾ããããªãã
- Blindã¯ããã£ã¦æ®éã¨ããå°è±¡ã
- UNIONã§ã¯ã«ã©ã æ°ãéãæ¬å¼§ã®èª¿æ´ã¯èªåã§ãã£ã¦ãããããã®å ã®ãã¼ã¿ãåå¾ããã¨ããã§ãã¾ããããªãã£ãï¼ãã¸ãã¯ããã¾ããªãæãï¼ã
- Google dorkã§èå¼±ãªã¢ããªãæ¢ãæ©è½ãæãã
SQLBruteï¼å人çãªè©ä¾¡ï¼Cï¼
- ãµã¤ãä¸ã«å²ã¨å¤ãæã説æãããã
- DBMSã®Fingerprintæ©è½ã¯ç¡ãã
- åºæ¬çã«ã¯MSSQLç¨ã®ãã¼ã«ãMSSQLã§ã¯Timingææ³ãå©ç¨ã§ãããããã
- AND ... -- ã¿ãããªæååãæ¿å ¥ãããæ¿å ¥ç®æãæ¬å¼§ã®ä¸ã®å ´åãªã©ã¯ããã¼ã«ã®ä½¿ç¨è ãéãæ¬å¼§ã足ããªã©ã®é¢åãã¿ãªããã°ãªããªãã
- æåã« OR 1=1 -- ã¿ãããªæååãæ¿å ¥ããã®ã§ãæ´æ°ç³»ã®ã¯ã¨ãªã ã¨å±éºã
- Blindã®ææ³ãç¬ç¹ãçµæã7bitã®1æåãç¹å®ããã®ã«æ°ååãªã¯ã¨ã¹ããã¦ãã¦ã極ãã¦å¹çãæªããã¾ãä¸é¨ã®è¨å·ãå«ã¾ãã¦ããæååã¯åå¾ã§ããªãåé¡ãããã
- ç¾ç¶ã§ã¯ãå®ç¨ã¬ãã«ã«éãã¦ããªãã¨æãã
Absintheï¼å人çãªè©ä¾¡ï¼Aï¼
- GUIãå¤ãããããã¾ãé常ã«ç°¡åãªæä½ã§ã¹ãã¼ããDBãã¼ã¿ãåå¾ã§ããã
- ãã ãããã¼ã«ãæ³å®ããªãGUIæä½ãããã¨å¤ãªã¨ã©ã¼ãçºçãããã¨ãããã
- DBMSã®Fingerprintæ©è½ã¯ç¡ãã
- ASCIIé¢æ°ã®è¿ãå¤ã16bitã ã¨ä»®å®ãã¦ãããUTF16ç°å¢ãæ³å®ãã¦ããã®ã ããããASCII以å¤ã®ãã¼ã¿ã§ã¯ãã¾ããããã
- 16bitï¼ä¸æåç¹å®ããã®ã«å¸¸ã«16åã¢ã¯ã»ã¹ãããä»ã®å¤ãã®ãã¼ã«ã¯7bitã8bitã«æ±ºãæã£ã¦7ã8åã®ãªã¯ã¨ã¹ãã§1æåç¹å®ããã®ã§ãããã¨æ¯ã¹ãã¨éå¹çã
- Injection Options>Compared Toleranceã調æ´ããªãã¨ãã¾ãåããªãå ´åãããã
ISR-sqlgetï¼å人çãªè©ä¾¡ï¼Cï¼
- 使ãæ¹ãå¤ãã«ããã
- UNIONã ãããæ©è½ãç¡ãããUNIONã®ã«ã©ã æ°ãéãæ¬å¼§ã®èª¿æ´ãªã©ã¯ãã¼ã«ã®ä½¿ç¨è ãããªããã°ãªããªãã
- ã¾ããUNIONãããã¼ã¿ãã¬ã¹ãã³ã¹ä¸ã«åºåãããå ´æãªã©ãããã¼ã«ã®ä½¿ç¨è ãç´°ããæå®ããªããã°ãªããªãï¼ãã®ããæ¹ããããã«ããï¼ã
- è²ã ã¨ãã¼ã«ã®ä½¿ç¨è ããè³ç«ã¦ããã¦ãã£ã¦ããã£ã¨åãããããã«ãªãï¼DBMSã®Fingerprintæ©è½ãç¡ãï¼ãããããã°ãããã®ãçµå±ãã¾ãåãããªãã£ãã
- ç¾ç¶ã§ã¯ãå®ç¨ã¬ãã«ã«éãã¦ããªãã¨æãã
NGSS SQL Injectorï¼å人çãªè©ä¾¡ï¼Bï¼
- ããã¥ã¡ã³ãã¯å ¨ãã¨è¨ã£ã¦è¯ãã»ã©ç¡ãã
- ãããããã¨å¤ãæããã³ãã³ããªãã·ã§ã³ãªã©ã¯åççã«ã§ãã¦ããã
- INSERT VALUESå¥ãUPDATE SETå¥å ã®èå¼±æ§ãæ»ç¥ã§ããã®ã¯ããã®ãã¼ã«ã ãã¨è¨ã£ã¦ããã
- SSLã«å¯¾å¿ãã¦ããªãã®ãæ®å¿µã
- æå®ããã¯ã¨ãªã®å®è¡çµæãBlindã§åã£ã¦ãããã¨ãã§ãããã1è¡1ã«ã©ã ãè¿ãã¯ã¨ãªã®ã¿ããæå®ã§ããªãã
- åºæ¬çã«DBãã¼ã¿ãå¼ãåºãããã®æ©è½ãå°ãªããä¾ãã°ããã¼ãã«ä¸è¦§ãåå¾ãããããªãªãã·ã§ã³ã¯ç¡ãã
SQL Injection Brute-forcerï¼å人çãªè©ä¾¡ï¼Bï¼
- ããã¥ã¡ã³ãã¯ä½ãç¡ãï¼README.txtã ãï¼ã
- UNIONã§ã¯ã«ã©ã æ°ãéãæ¬å¼§ã®èª¿æ´ãèªåã§ãã£ã¦ãããããããããã®å ã®UNIONã§ãã¼ã¿ãåå¾ããæ©è½ã¯ä»ã®ã¨ããç¡ãã
- Blindæ©è½ã§ã¯ãã¬ã¹ãã³ã¹HTML解æã®èªååã«åãå ¥ãã¦ããã
- NGSS SQL Injectorã¨åãããDBãã¼ã¿ãå¼ãåºãããã®æ©è½ãå°ãªãï¼1è¡1ã«ã©ã ãè¿ãã¯ã¨ãªãæå®ããã¨ããã®ã¯ã¨ãªã®å®è¡çµæãåå¾ãã¦ãããæ©è½ã¯ããï¼ã
- 対å¿ãã¦ããDBMSã®ç¨®é¡ã¯å¤ãï¼10種é¡ï¼ã
SQL Power Injectorï¼å人çãªè©ä¾¡ï¼Bï¼
- PDFã®æ°åãã¼ã¸ã®ããã¥ã¢ã«ãããããèå¿ãªé¨åã®è¨è¿°ãå°ãªãã£ãããããåãããããã«ãªãã¾ã§æéãæããã
- ããã¥ã¢ã«ã«UNIONãªã©è²ã ã¨æ¸ãã¦ããããBlindã®æ©è½ã ãããã¨èãã¦ããã
- MSSQLã§ã¯Timingææ³ã使ãããããã
- ISR-Sqlgetã«ä¼¼ã¦ãã¦ããã¼ã«ã®å©ç¨è ããè³ç«ã¦ãããç¯å²ã大ããï¼DBMSã®Fingerprintæ©è½ãç¡ãï¼ã
- ããæ¹ãç解ãã¦ãè³ç«ã¦ããã¦ããã°ã大ä½ä½ã§ãã§ãããä¾ãã°INSERT VALUESå¥å ã®èå¼±æ§ããBlindã§ãã¼ã¿ãå¼ãåºããªã©ã
- NGSS SQL Injectorã¨åãããDBãã¼ã¿ãå¼ãåºãããã®æ©è½ãå°ãªãï¼1è¡1ã«ã©ã ãè¿ãã¯ã¨ãªãæå®ããã¨ããã®ã¯ã¨ãªã®å®è¡çµæãåå¾ãã¦ãããæ©è½ã¯ããï¼ã
OWASP SQLiXï¼å人çãªè©ä¾¡ï¼Cï¼
- ã¾ãã¾ãå¤ãããã説æãWebä¸ã«ããã
- BlindãErrorMsgãUNIONã使ããããUNIONã¨ErrorMsgã¯MSSQLã ãã
- ç価ãªSQLãæ¿å ¥ããã¨åãã¬ã¹ãã³ã¹ãè¿ã£ã¦ãããã¨ãåæã«ãã¦ãããä¾ãã°ãparam1=xxx 㨠param1=xxx' AND '1'='1 ã§ã¯å ¨ãåãã¬ã¹ãã³ã¹ãè¿ã£ã¦ãããã¨ãåæã¨ãªã£ã¦ããã
- ä»ã®ãã¼ã«ã¨ã¯éãããã®åæãå¤ããæ¹æ³ããªããããèå¼±æ§ããããªãããæ»ç¥ã§ããªãã±ã¼ã¹ãåºã¦ãããããèªç±åº¦ãä½ããã¼ã«ã
- NGSS SQL Injectorã¨åãããDBãã¼ã¿ãå¼ãåºãããã®æ©è½ãå°ãªãï¼1è¡1ã«ã©ã ãè¿ãã¯ã¨ãªãæå®ããã¨ããã®ã¯ã¨ãªã®å®è¡çµæãåå¾ãã¦ãããæ©è½ã¯ããï¼ã