SQL 注锟斤拷

锟杰讹拷 web 锟斤拷锟斤拷锟斤拷没锟斤拷注锟解到 SQL 锟斤拷询锟角匡拷锟皆憋拷锟桔改的o拷锟斤拷锟斤拷锟� SQL 锟斤拷询锟斤拷锟斤拷锟斤拷锟斤拷锟轿碉拷锟斤拷锟筋。锟解不知锟斤拷锟斤拷SQL 锟斤拷询锟斤拷锟斤拷锟狡匡拷锟斤拷锟绞匡拷锟狡o拷锟接讹拷锟狡癸拷锟斤拷锟斤拷锟街わ拷锟饺拷藜锟介。锟斤拷锟斤拷锟斤拷锟竭o拷锟叫匡拷锟斤拷通锟斤拷 SQL 锟斤拷询去锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷系统锟斤拷锟斤拷锟斤拷锟筋。

直锟斤拷 SQL 锟斤拷锟斤拷注锟斤拷锟斤拷枪锟斤拷锟斤拷叱锟斤拷玫锟揭伙拷执锟斤拷锟斤拷锟斤拷薷锟斤拷锟斤拷锟� SQL 锟斤拷锟侥硷拷锟斤拷锟斤拷锟接讹拷锟斤到取锟斤拷锟斤拷锟斤拷锟斤拷锟捷o拷锟津覆盖关硷拷锟斤拷值锟斤拷锟斤拷锟斤拷执锟斤拷锟斤拷锟捷匡拷锟斤拷锟斤拷锟斤拷锟斤拷系统锟斤拷锟斤拷锟侥匡拷摹锟斤拷锟斤拷锟酵拷锟接︼拷贸锟斤拷锟饺★拷锟斤拷没锟斤拷锟斤拷氩拷刖蔡拷锟斤拷锟斤拷锟较筹拷 SQL 锟斤拷询锟斤拷实锟街的★拷锟斤拷锟芥将锟斤拷锟斤拷锟揭恍╋拷锟绞碉拷锟斤拷锟斤拷印锟�

锟斤拷锟斤拷锟斤拷缺锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷萁锟斤拷锟斤拷锟街わ拷锟斤拷锟斤拷锟绞癸拷锟斤拷顺锟斤拷锟斤拷没锟斤拷锟斤拷锟斤拷锟斤拷锟饺拷锟斤拷锟斤拷锟斤拷没锟斤拷锟斤拷锟斤拷菘锟斤拷屎锟斤拷锟斤拷锟斤拷樱锟斤拷锟斤拷锟斤拷呖锟斤拷锟斤拷锟斤拷锟斤拷菘锟斤拷锟斤拷陆锟揭伙拷锟斤拷锟斤拷锟斤拷没锟斤拷锟�

Example #1 一锟斤拷实锟斤拷锟斤拷锟捷凤拷页锟斤拷示锟侥达拷锟斤拷......也锟斤拷锟皆憋拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟矫伙拷锟斤拷PostgreSQL系统锟斤拷锟斤拷

<?php

$offset 
$argv[0]; // 注锟解,没锟斤拷锟斤拷锟斤拷锟斤拷证锟斤拷
$query  "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";
$result pg_query($conn$query);

?>
一锟斤拷锟斤拷没锟斤拷锟斤拷锟� $offset 锟窖憋拷锟斤拷值锟斤拷"锟斤拷一页"锟斤拷"锟斤拷一页"锟斤拷锟斤拷锟接★拷原锟斤拷锟斤拷锟斤拷只锟斤拷锟斤拷为 $offset 锟斤拷一锟斤拷锟斤拷值锟斤拷然锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷顺锟斤拷园锟斤拷锟斤拷锟斤拷锟斤拷锟饺撅拷锟斤拷 urlencode() 锟斤拷锟斤拷然锟斤拷锟斤拷锟経RL锟叫的伙拷锟斤拷
0;
insert into pg_shadow(usename,usesysid,usesuper,usecatupd,passwd)
    select 'crack', usesysid, 't','t','crack'
    from pg_shadow where usename='postgres';
--
锟斤拷么锟斤拷锟酵匡拷锟皆达拷锟斤拷一锟斤拷锟斤拷锟斤拷锟矫伙拷锟剿★拷注锟斤拷锟角革拷 0; 只锟斤拷锟斤拷锟斤拷为锟斤拷锟结供一锟斤拷锟斤拷确锟斤拷偏锟斤拷锟斤拷锟皆便补锟斤拷锟斤拷锟斤拷原锟斤拷锟侥诧拷询锟斤拷使锟斤拷锟斤拷要锟斤拷锟斤拷锟斤拷选锟�

Note:

-- 锟斤拷 SQL 锟斤拷注锟酵憋拷牵锟揭伙拷锟斤拷锟斤拷使锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 SQL 锟斤拷锟斤拷锟斤拷锟斤拷锟皆猴拷锟斤拷锟斤拷锟戒。

锟斤拷锟斤拷示锟斤拷锟斤拷锟斤拷锟斤拷锟揭筹拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷艿玫锟斤拷锟斤拷锟侥匡拷锟叫办法锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷要锟斤拷锟斤拷只锟斤拷锟斤拷锟斤拷锟揭筹拷锟斤拷些锟结交锟斤拷去锟侥憋拷锟斤拷锟斤拷锟斤拷锟斤拷 SQL 锟斤拷洳拷掖锟斤拷锟斤拷锟斤拷摹锟斤拷锟斤拷锟斤拷锟侥憋拷锟斤拷通锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 SELECT 锟斤拷询锟叫碉拷锟斤拷锟斤拷锟斤拷洌拷锟� WHERE, ORDER BY, LIMIT 锟斤拷 OFFSET锟斤拷锟斤拷锟斤拷锟斤拷菘锟街э拷锟� UNION 锟斤拷锟斤拷幕锟斤拷锟斤拷锟斤拷锟斤拷呋锟斤拷锟斤拷芑锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷 SQL 锟斤拷询锟斤拷锟接碉拷原锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷员锟斤拷锟斤拷锟斤拷锟斤拷锟捷憋拷锟叫得碉拷锟斤拷锟诫。锟斤拷耍锟斤拷锟斤拷锟斤拷锟斤拷侄渭锟斤拷锟斤拷呛锟斤拷锟揭拷摹锟�

Example #2 锟斤拷示锟斤拷锟斤拷......锟皆硷拷一些锟斤拷锟诫(锟轿猴拷锟斤拷锟捷匡拷系统锟斤拷

<?php

$query  
"SELECT id, name, inserted, size FROM products
                  WHERE size = '
$size'
                  ORDER BY 
$order LIMIT $limit$offset;";
$result odbc_exec($conn$query);

?>
锟斤拷锟斤拷锟斤拷原锟斤拷锟侥诧拷询锟侥伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟� SELECT 锟斤拷询锟斤拷锟斤拷锟斤拷锟斤拷耄�
'
union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from usertable;
--
锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷洌ㄊ癸拷锟� ' 锟斤拷 --锟斤拷锟斤拷锟斤拷锟诫到 $query 锟叫碉拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟侥伙拷锟斤拷锟斤拷么锟斤拷锟介烦锟剿★拷

SQL 锟叫碉拷 UPDATE 也锟斤拷锟杰碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟街诧拷询也锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟津附硷拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟襟。碉拷锟角癸拷锟斤拷锟竭革拷愿锟斤拷锟� SET 锟接撅拷锟斤拷锟街o拷锟斤拷锟斤拷锟斤拷锟角就匡拷锟皆革拷锟斤拷锟斤拷锟捷憋拷锟叫碉拷一些锟斤拷锟捷★拷锟斤拷锟斤拷锟斤拷锟斤拷卤锟斤拷锟揭拷锟斤拷锟斤拷菘锟侥结构锟斤拷锟斤拷锟睫改诧拷询锟缴癸拷锟斤拷锟叫★拷锟斤拷锟斤拷通锟斤拷锟斤拷锟较的憋拷锟斤拷锟斤拷锟斤拷锟街段斤拷锟叫猜测,锟斤拷锟竭斤拷锟叫憋拷锟斤拷锟狡解。锟斤拷锟节达拷锟斤拷没锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟街段o拷锟斤拷锟斤拷锟侥凤拷锟斤拷锟斤拷锟斤拷锟洁。

Example #3 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷......锟斤拷锟斤拷酶锟斤拷锟饺拷蓿锟斤拷魏锟斤拷锟斤拷菘锟较低筹拷锟�

<?php
$query 
"UPDATE usertable SET pwd='$pwd' WHERE uid='$uid';";
?>
锟斤拷锟角讹拷锟斤拷锟斤拷没锟斤拷锟斤拷 ' or uid like'%admin%'; -- 锟斤拷为锟斤拷锟斤拷锟斤拷值锟结交锟斤拷 $uid 锟斤拷锟侥憋拷 admin 锟斤拷锟斤拷锟诫,锟斤拷锟竭帮拷 $pwd 锟斤拷值锟结交为 "hehehe', admin='yes', trusted=100 "锟斤拷锟斤拷锟斤拷锟叫革拷锟秸革拷去锟斤拷酶锟斤拷锟斤拷权锟睫★拷锟斤拷锟斤拷锟斤拷锟侥伙拷锟斤拷锟斤拷询锟斤拷锟绞碉拷锟斤拷暇捅锟斤拷锟剿o拷
<?php

// $uid == ' or uid like'%admin%'; --
$query "UPDATE usertable SET pwd='...' WHERE uid='' or uid like '%admin%'; --";

// $pwd == "hehehe', admin='yes', trusted=100 "
$query "UPDATE usertable SET pwd='hehehe', admin='yes', trusted=100 WHERE
...;"
;

?>

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷碌锟斤拷锟斤拷咏锟斤拷锟斤拷锟绞撅拷锟斤拷锟斤拷某些锟斤拷锟捷匡拷锟斤拷执锟斤拷系统锟斤拷锟筋。

Example #4 锟斤拷锟斤拷锟斤拷锟捷匡拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥诧拷锟斤拷系统锟斤拷MSSQL Server锟斤拷

<?php

$query  
"SELECT * FROM products WHERE id LIKE '%$prod%'";
$result mssql_query($query);

?>
锟斤拷锟斤拷锟斤拷锟斤拷峤� a%' exec master..xp_cmdshell 'net user test testpass /ADD' -- 锟斤拷为锟斤拷锟斤拷 $prod锟斤拷值锟斤拷锟斤拷么 $query 锟斤拷锟斤拷锟斤拷
<?php

$query  
"SELECT * FROM products
                    WHERE id LIKE '%a%'
                    exec master..xp_cmdshell 'net user test testpass /ADD'--"
;
$result mssql_query($query);

?>
MSSQL 锟斤拷锟斤拷锟斤拷锟斤拷执锟斤拷锟斤拷锟斤拷 SQL 锟斤拷洌拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷歉锟斤拷锟斤拷锟斤拷锟较低筹拷锟斤拷锟矫伙拷锟斤拷锟斤拷锟筋。锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 sa 锟斤拷锟叫讹拷 MSSQLSERVER 锟斤拷锟斤拷锟斤拷锟斤拷锟姐够锟斤拷权锟睫的伙拷锟斤拷锟斤拷锟斤拷锟竭就匡拷锟皆伙拷锟揭伙拷锟较低筹拷屎锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷恕锟�

Note:

锟斤拷然锟斤拷锟较碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥骋伙拷囟锟斤拷锟斤拷锟斤拷菘锟较低筹拷模锟斤拷锟斤拷锟斤拷獠拷锟斤拷锟斤拷锟斤拷芏锟斤拷锟斤拷锟斤拷锟斤拷菘锟较低呈凳╋拷锟斤拷频墓锟斤拷锟斤拷锟绞癸拷貌锟酵拷姆锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷菘舛硷拷锌锟斤拷锟斤拷锟斤拷辍�

预锟斤拷锟斤拷施

也锟斤拷锟斤拷锟剿伙拷锟斤拷锟揭帮拷慰锟斤拷说锟斤拷锟斤拷锟斤拷要知锟斤拷锟斤拷锟捷匡拷峁癸拷锟斤拷锟较拷锟斤拷锟绞凳╋拷锟斤拷锟侥癸拷锟斤拷锟斤拷没锟斤拷确实锟斤拷恕锟斤拷锟矫伙拷锟斤拷鼙锟街わ拷锟斤拷锟斤拷锟揭伙拷锟斤拷貌锟斤拷锟斤拷锟叫╋拷锟较拷锟揭伙拷锟斤拷锟斤拷堑玫锟斤拷耍锟斤拷锟斤拷菘锟斤拷锟叫孤讹拷锟轿o拷铡锟斤拷锟斤拷锟斤拷锟斤拷锟矫匡拷锟斤拷源锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟捷库,锟斤拷锟斤拷锟斤拷坛锟斤拷锟津,癸拷锟斤拷锟竭就猴拷锟捷得碉拷锟斤拷锟斤拷氐拇锟斤拷搿o拷锟斤拷锟斤拷些锟斤拷锟斤拷锟斤拷撇锟斤拷锟斤拷幕锟斤拷锟斤拷锟斤拷站透锟斤拷锟斤拷恕锟�

锟斤拷些锟斤拷锟斤拷锟斤拷锟角斤拷锟斤拷锟节凤拷锟斤拷全锟斤拷识锟斤拷强锟侥达拷锟斤拷锟较的★拷锟斤拷锟皆o拷锟斤拷远锟斤拷要锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟捷o拷锟截憋拷锟斤拷锟斤拷锟斤拷锟节客伙拷锟剿的o拷锟斤拷锟斤拷选锟斤拷颉⒈锟斤拷锟斤拷锟斤拷锟斤拷 cookie锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷牡锟揭伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷牟锟窖诧拷锌锟斤拷锟斤拷锟斤拷锟斤拷锟窖★拷

  • 锟斤拷远锟斤拷要使锟矫筹拷锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟绞猴拷去锟斤拷锟斤拷锟斤拷锟捷库。要锟斤拷权锟睫憋拷锟较革拷锟斤拷锟狡碉拷锟绞号★拷
  • 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟角凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷莞锟绞斤拷锟絇HP 锟叫很讹拷锟斤拷锟斤拷锟斤拷诩锟斤拷锟斤拷锟斤拷暮锟斤拷锟斤拷锟斤拷蛹虻サ锟�锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟街凤拷锟斤拷锟酵猴拷锟斤拷锟斤拷锟斤拷锟斤拷 is_numeric()锟斤拷ctype_digit()锟斤拷锟斤拷锟斤拷锟接碉拷 Perl 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷式锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
  • 锟斤拷锟斤拷锟斤拷锟饺达拷锟斤拷锟斤拷一锟斤拷锟斤拷锟街o拷锟斤拷锟皆匡拷锟斤拷使锟斤拷 is_numeric() 锟斤拷锟斤拷椋拷锟斤拷锟街憋拷锟绞癸拷锟� settype() 锟斤拷转锟斤拷锟斤拷锟斤拷锟斤拷锟酵o拷也锟斤拷锟斤拷锟斤拷 sprintf() 锟斤拷锟斤拷锟斤拷式锟斤拷为锟斤拷锟街★拷

    Example #5 一锟斤拷实锟街凤拷页锟斤拷锟斤拷全锟侥凤拷锟斤拷

    <?php

    settype
    ($offset'integer');
    $query "SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET $offset;";

    // 锟斤拷注锟斤拷锟绞斤拷址锟斤拷锟斤拷械锟� %d锟斤拷锟斤拷锟斤拷锟� %s 锟酵猴拷锟斤拷锟斤拷锟斤拷锟斤拷
    $query sprintf("SELECT id, name FROM products ORDER BY name LIMIT 20 OFFSET %d;",
                     
    $offset);

    ?>

  • 使锟斤拷锟斤拷锟捷匡拷锟截讹拷锟斤拷锟斤拷锟斤拷锟街凤拷转锟藉函锟斤拷锟斤拷锟斤拷锟斤拷 mysql_escape_string() 锟斤拷 sql_escape_string()锟斤拷锟斤拷锟矫伙拷锟结交锟斤拷锟斤拷锟侥凤拷锟斤拷锟斤拷锟斤拷锟捷斤拷锟斤拷转锟藉。锟斤拷锟斤拷锟斤拷菘锟矫伙拷锟阶拷诺锟斤拷锟斤拷锟斤拷址锟阶拷骞︼拷艿幕锟� addslashes() 锟斤拷 str_replace() 锟斤拷锟皆达拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷示锟斤拷锟节诧拷询锟侥撅拷态锟斤拷锟街硷拷锟斤拷锟斤拷锟斤拷锟角诧拷锟斤拷锟侥o拷锟斤拷询锟斤拷锟斤拷锟阶憋拷锟斤拷锟狡★拷
  • 要锟斤拷锟斤拷锟街段憋拷锟斤拷锟斤拷示锟斤拷锟轿猴拷锟叫癸拷锟斤拷锟捷匡拷锟斤拷锟斤拷模锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷菘锟结构锟斤拷锟轿硷拷锟斤拷锟襟报革拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷
  • 也锟斤拷锟斤拷选锟斤拷使锟斤拷锟斤拷锟捷匡拷拇娲拷锟斤拷毯锟皆わ拷锟斤拷锟街革拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷剩锟绞癸拷没锟斤拷锟斤拷锟街憋拷臃锟斤拷锟斤拷锟斤拷荼锟斤拷锟斤拷图锟斤拷锟斤拷锟斤拷锟斤拷旆拷锟斤拷斜锟斤拷影锟届。

锟斤拷锟斤拷之锟解,锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟铰o拷使锟矫达拷锟斤拷锟斤拷锟斤拷菘锟较低筹拷锟斤拷锟斤拷询锟斤拷志也锟斤拷一锟斤拷锟矫办法锟斤拷锟斤拷然锟斤拷锟斤拷志锟斤拷锟斤拷锟杰凤拷止锟轿何癸拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟皆革拷锟劫碉拷锟侥革拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟皆癸拷锟斤拷锟斤拷锟斤拷锟斤拷志锟斤拷锟斤拷没锟矫o拷要锟斤拷锟斤拷锟斤拷锟叫帮拷锟斤拷锟斤拷锟斤拷息锟斤拷锟叫★拷锟较撅拷锟斤拷锟斤拷锟斤拷锟斤拷锟较拷鼙锟矫伙拷锟揭拷谩锟�