¡¡¡¡ÕâÖÖ©¶´ÊÇÈçºÎ³öÏÖµÄÄØ£¿¼òµ¥½éÉÜһϣ¬¸ßÊÖÇëÆ®¹ý¡£
¡¡¡¡Ò»°ãÓû§Ôڵǽʱ£¬ÏµÍ³»áÒªÇóÊäÈëÓû§Ãû¼°ÃÜÂ룬Ȼºó½«ÕâЩÊý¾Ý´«Êäµ½Ö¸¶¨Ò³£¬½øÐÐÑéÖ¤£¬´óÖµĴúÂëÈçÏ£º
Set Conn= Server.CreateObject("ADODB.Connection") '¶¨ÒåÁ¬½ÓÊý¾Ý¿âµÄ¶ÔÏó
Const AccessFile="jmdcw.mdb" 'Êý¾Ý¿âµØÖ·
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(AccessFile) 'Á¬½Óµ½Êý¾Ý¿â
Conn.Open '´ò¿ªÊý¾Ý¿â
....................
name=request("name") 'µÃµ½ËùÌá½»µÄÓû§Ãû
pass=request("pass") 'µÃµ½ËùÌá½»À´µÄÃÜÂë
............
Set Jmdcw=Server.CreateObject("ADODB.RecordSet") '¶¨Òå²Ù×÷Êý¾Ý¿âµÄ¶ÔÏó
SQL="SELECT username,userpass FROM User WHERE username='"&name&"' AND userpass='"&pass&"'" 'SQLÓï¾ä
Jmdcw.Open SQL,Conn,1,1 'Ö´Ðвéѯ
......
If Jmdcw.EOF AND Jmdcw.BOF Then 'Èç¹ûûÓвéѯµ½
response.redirect "onerror.html" 'ÏÔʾ´íÎóÒ³
end if
'Èç¹ûÕýÈ·£¬¾Í¼ÌÐøÖ´ÐС£
..........
¡¡¡¡ÒÔÉϾÍÊÇÒ»¶Î¼òµ¥µÄÓû§ÑéÖ¤´úÂ룬µ±×¢Èë©¶´±»¹ã·º·¢¾òÖ®ºó£¬ÀàËÆÕâÑùµÄ©¶´¾ÍÔ½À´Ô½ÉÙÁË£¬µ«ÉÙ²¢²»±íʾ³ÌÐòÔ±ÔÚд´úÂëʱÒѾ¾ß±¸ÁË·À·¶Òâʶ£¬ÎÞÒâÖ®Öл¹ÊÇ»á³öÏÖÕâÑù»òÄÇÑùµÄ©¶´¡£OK£¬Êé¹éÕý´«£¬ÏÈÀ´²âÊÔÒ»ÏÂÉÏÃæµÄ´úÂë¡£ÊäÈëµÄÓû§ÃûÊÇ£ºjmdcw£¬ÃÜÂëÊÇ£º123456¡££¨µäÐ͵ÄÈõ¿ÚÁîÃÜÂ룬¹þ¹þ£©£¬ÕâÑùSQLÓï¾ä¾ÍÊÇ£º
¡¡¡¡select username,userpass from user where username='jmdcw' and userpass='123456'
¡¡¡¡³ÌÐò»á²éѯuser±íÖÐÊÇ·ñÓÐjmdcwÓû§£¬²¢ÇÒ¸ÃÓû§µÄÃÜÂëÊÇ·ñΪ123456¡£Èç¹ûusername='jmdcw'µÄ½á¹ûÎªÕæ£¬¡¡¡¡¡¡¡¡¡¡userpass='123456'µÄ½á¹ûÒ²ÎªÕæ£¬ÄÇô¡°Õæ And Õæ ¡±µÄ½á¹û¾ÍÊÇÕæ£¬Ñé֤ͨ¹ý¡£
¡¡¡¡µ±È»£¬Èç¹ûÓû§ÃûºÍÃÜÂëÆäÖÐÖ®Ò»µÄ½á¹ûΪ¼Ù£¬¡°Õæ And ¼Ù ¡±µÄ½á¹û¾ÍÊǼ٣¬µ±È»¡° ¼Ù And ¼Ù ¡±µÄ½á¹ûÒ²ÊǼ٣¬ºÇºÇ¡£
¡¡¡¡Ã»ÓÐÓû§Ãû»òÃÜÂëÔõô½øÈ룿ÊÔÒ»ÏÂ'or''='°É£¬ÔÚÌá½»Óû§Ãû´¦ÊäÈë jmdcw'or''='£¬ÕâÑùµÄSQLÓï¾ä¾ÍÊÇ
select username,userpass from user where username='jmdcw'or''='' and userpass='12345678'
¡¡¡¡ÔÚÂß¼±í´ïʽÖУ¬ANDµÄÓÅÏȼ¶Òª¸ßÓÚOR£¬ËùÒÔÓï¾ä»áÏÈ¶Ô ¡°''='' and userpass='12345678'¡± ½øÐÐÅжϣ¬ËäÈ» ''='' ÎªÕæ£¬µ«ÃÜÂëΪ¼Ù£¬ËùÒÔ½á¹ûΪ¼Ù£¬µ«ÒòΪÎÒÃǼÓÈëÁËORÁ¬½Ó·û£¬ÕâÑù£¬ËäÈ»ºóÃæµÄ½á¹ûΪ¼Ù£¬µ«usernameµÄ½á¹ûÎªÕæ£¬ËùÒÔÒ²Ò»ÑùÄܽøÈëÕâ¸öÓû§µÄºǫ́¡£
¡¡¡¡µ«Èç¹û²»ÖªµÀÓû§µÄÃû³Æ£¬ÄÇô¾ÍÒªÔÚÊäÈëµÄÃÜÂëºóÒ²¼ÓÈëÒ»¸ö'or''='£¬ÕâÑù£¬SQLÓï¾ä¾ÍÊÇ
select username,userpass from user where username='jmdcw11'or''='' and userpass='12345678'or''=''
ÔÚÖ´ÐÐandÓï¾ä£¬''='' and userpass='12345678'µÄ½á¹ûΪ¼Ù£¬È»ºóÊÇ 'jmdcw11'or¼Ù £¬½á¹ûΪ¼Ù£¬ÔÙ½ÓÏÂÀ´ÊÇ£º¼Ùor ''=''£¬Õâ¸ö½á¹û¾ÍÊÇÕæÁË¡£
¡¡¡¡µ«ÏÖÔÚµÄÃÜÂë¶¼ÓÃMD5¼ÓÃÜ£¬¶ÔÌá½»À´µÄÃÜÂëÔÚ½øÈëSQLÓï¾ä֮ǰ£¬ÏÈÓÃMD5½øÐÐÁËת»»£¬ÕâÑù£¬¾ÍËãÔÚÃÜÂëºó¼ÓÈëÁË'or''='£¬Ò²·¢»Ó²»ÁË×÷Ó᣶ÔÓÚÃÜÂë²ÉÓÃmd5¼ÓÃܵ쬲»·ÁÔÚÓû§Ãû´¦ÔÙ¼ÓÈëÒ»¸öor''=''£¬Ò² ¾ÍÊÇÔÚÓû§Ãû´¦ÊäÈ룺jmdcw'or''=''or''='£¬ÕâÑùµÄSQL Óï¾ä¾ÍÊÇ£º
select username,userpass from user where username='jmdcw11'or''=''or''='' and userpass='12345678'
¡¡¡¡ÏÈÖ´ÐÐandÓï¾ä£¬½á¹ûΪ¼Ù£¬È»ºóÊÇusername='jmdcw11'or''=''£¬½á¹ûÎªÕæ£¬½ÓÏÂÀ´ÊÇ£ºÕæor¼Ù£¬½á¹û»¹ÊÇÕæ£¬ÕâÑùÓÖÈÆ¹ýÁËÑéÖ¤¡£
¡¡¡¡Ëµµ½Õâ¶ù£¬ÎÒºöÈ»ÏëÆð£¬ÔÚÎÄÕ¿ªÍ·ËùÌáµ½µÄÍøÕ¾£¬ÆäÃÜÂëÒ²ÊÇÓÃmd5¼ÓÃܵ쬲¢ÇÒÎÒÒ²²»ÖªµÀÈκÎÒ»¸öÓû§Ãû£¬Ò²Ö»ÓÃÁËÒ»¸öorÓï¾ä£¬ÎªÊ²Ã´È´½øÈëÁËÄØ£¿Ë¼À´Ë¼È¥£¬Äª²»ÊÇSQLÓï¾äÖеÄÓû§ÓëÃÜÂëµÄλÖÃÓÐËù²»Í¬£¬ÆäµÄSQLÓï¾äÊÇÕâÑùµÄ£º
select username,userpass from user where WHERE userpass='"&pass&"'" and username='"&name&"'£¬
¡¡¡¡ÃÜÂëÔÚÇ°Ãæ£¬Óû§ÔÚºóÃæ£¬ÕâÑù£¬µ±ÎÒÔÚÓû§Ãû´¦ÊäÈ룺jm'or''='ºó£¬ÆäÓï¾ä¾Í±ä³ÉÁË
select username,userpass from user where WHERE userpass='123456" and username='jm'or''=''
¡¡¡¡°´ÕÕÓÅÏȼ¶£¬ÏÈÔËËãANdÓï¾ä£¬½á¹ûΪ¼Ù£¬È»ºóÊÇORÓï¾ä£¬¼Ùor''=''£¬½á¹û¾ÍÊÇÕæÁË¡£¿´À´´úÂëÖеÄλÖ÷¢Éú±ä»¯Ò²ÄÜÑÝÒï³ÉÒ»ÖÖ©¶´¡£
¡¡¡¡ÉÏÃæËùÌáµ½µÄ·½·¨Ö÷ÒªÊÇÕë¶ÔÓÚACCESSÊý¾Ý¿â£¬µ«Èç¹û³ÌÐòËù¶ÔÓ¦µÄÊý¾Ý¿âÊÇSQL£¬ÄÇΣº¦¾Í´óºÜÁË£¬ÏȲ»ÒªËµ±ðµÄ£¬»¹ÊÇ˵һϵǽµÄÊÂÇ飬ֱ½ÓÓãº
´æÔÚµÄÓû§Ãû';--
¡¡¡¡Õâ¸ö¿ÉÒÔ²»ÓÃÃÜÂë¾ÍµÇ½µ½Ö¸¶¨µÄÓû§Ö®ÖÐ,Èç¹û²»ÖªµÀÄØ:¾ÍÓÃ:
ÈÎÒâÃû³Æ'or''='';--
¡¡¡¡ÕâÑùËù½øÈëµÄ»áÊǵÚÒ»¸öÓû§,ºÜÓпÉÄÜÊǹÜÀíÔ±µÄÓû§Ö®ÖÐ.
¡¡¡¡ÈçºÎ·ÀÖ¹ÕâÖÖ©¶´ÄØ£¿ºÜ¼òµ¥£¬¾ÍÊÇÔÚ½ÓÊÕ×Ö·ûµÄÓï¾äÖмÓÈëreplace¹ýÂËÓï¾ä£¬±ÈÈçname¾ÍÊÇ£º
name=replace(request("name"),"'","")
¡¡¡¡½«'¹ýÂËΪ¿Õ¡£ÃÜÂë¹ýÂ˵ķ½·¨Ò²ÀàËÆ¡£µ±È»£¬ÕâÊǼòµ¥µÄ¹ýÂË·½·¨£¬»¹Óиü¶à¸´Ôӵġ£±ÈÈç¹ýÂËÒ»Ð©ÌØÊâ×Ö·û£¬¿Õ¸ñ¡¢chr(0)¡¢%¡¢scriptµÈһЩ×Ö·û£¬·ÀֹдÈëXSS´úÂë¡£