SQL?????????????
???????????? ???????[ 2014/4/16 14:18:13 ] ????????SQL ??????
????2 ?????????
?????????SQL???????????????????????????????贸???????????????????????????????????些????????????????????????????????????????????????危???????贸????????????????????????????????????????????????????????些?????????????????????????SQL????
????2.1 ??????
?????????????贸????????????????????????????????Web?????????????????(exception)????????“500:Internal Server Error”????????SQL??????????????????????未????????????????????????????????????胃????????????y????????????婊�?????????????HTML??妫�?????????????????????????????????????????????????????????锟�???????????胃????????些????????????????????????????????????????????妫� ???????????????????????????魏?????
??????????????????贸??????????????????鍎�?????薪???????????????贸???????????????些??效?????????????????????????????????????????????????????????????????效?????(200 OK)?????????????????????妫�????????????????????????????“Internal Server Error”??
??????????????????????????????????????????????????贸???A??B????????贸????????????proddetails.asp????妫�??????????????????????ProdID????????貌??????????????????????????????????????????????????些???????????贸???????????????斜??????????????proddetails.asp?????????ProdID?????????????效?????贸???A???????????????????????????????????椋�???????????????ProdID???????????????????胁??????id?????????????????????????贸???A???????????????????????????????眉???械???????????????????????????“500:Internal Server Error”??????贸???B????????????写????????????小????0????????????????????????????“?貌????????”????????????????????????????????位????????斜???妾�
??????????????????SQL????????????????些??效?????????????贸?????未?????些??????????????SQL??????????????
????2.2 ??位????
???????????????贸?????????????????????????????位????????????????????????????????????????????????SQL???????????????????些SQL????????OR??AND??????些META???????;??’?????????????????????????胁??????????????????????????卸??????????????????????????????(intercepting proxy)???????????????????????????????????些????????????????魏??????????????????锌??????SQL???????????????????????????????校????????????????????效??????????????????????魏??????????????????渭??????????卸??????????????????????????????斜???斜??械??些??????????????????????????????些??????????????些SQL????????????????????????????????????????????些????????????????????????????????????????????
????2.3 ???????
????SQL??慰????????????????????????????????????????????????????????????????????????????????????贸???????SQL???????????????????????????械???????????????????????????????????????????????????????????????????纾�
????SELECT * FROM Products WHERE ProdID = 4
??????
????SELECT * FROM Products WHERE ProdName = 'Book'
??????SQL??????????????????????????????????????????????????????????????伞??????????????????????????????????????????SQL??????????????????????????????????????????????????????????
????/mysite/proddetails.asp?ProdID=4
????????貌??????????????4’???????????????????3+1?????????????????????????????????SQL??????????纬?????????SQL???????
????(1) SELECT * FROM Products WHERE ProdID = 4'
????(2) SELECT * FROM Products WHERE ProdID = 3 + 1
?????????SQL????????????????????????????????????????????校???????????????ProdID????4????????????????????貌?????????????????
???????????????????????????????SQL??????????????婊�?貌???????????????????????????????????????????械??????????????????????????SQL????????????????????????????MS SQL Server??梅???+???????????????Oracle??梅???||??????????????????
????/mysite/proddetails.asp?ProdName=Book
??????????ProdName??????????????????????????婊�???????效???????????Book’????????婊�????????????????????????????????B’+’ook??????Oracle????B’||’ook????????纬?????????SQL???????
????(1) SELECT * FROM Products WHERE ProdName = 'Book''
????(2) SELECT * FROM Products WHERE ProdID = 'B' + 'ook'
???????????????????????SQL??????????????????????????????????Book??????
??????????????????贸????????????’??+??META???????????????????????????????????URL?????????ASCII???16????????????椋�???纾�
????/mysite/proddetails.asp?ProdID=3+1????/mysite/proddetails.asp?ProdID=3%2B1
????/mysite/proddetails.asp?ProdID=B’+’ook????/mysite/proddetails.asp?ProdID=B%27%2B%27ook
???????????魏伪??????????????婊�?????????????????????????????????????????????????????????????????????Oracle??sysdate????????????????????SQL Server?校?getdate()???????????????????????????????????卸???????SQL????????
???????????????????????????????????????????????????????卸???????SQL?????????????????????????
????3 ???????
????????????????????????????????????????????????????SQL?????????????????卸??????????????????????????????????
????3.1 ????????????
????????SQL????????????屑??????瑁�???????SQL?????????????????????????????????????????????SQL????????????????????????????????蔚?????????????些???????????????????????????
????????????????????????????SELECT … WHERE??????????????????????WHERE????????????????????????????????????????????WHERE????????????????????????????????????些??????贸???????????OR 1=1???????????????????????????????????????????????????????????????????????????????????????????parenthesis???????????????????????????????????????????????????????????????????????????????????????贸?????????????????????????????????SQL?????????????????贸????????????????????????????????????OR 1=1????????????1000???????????????????????WHERE???????????????OR??AND??????????????????????TRUE??FALSE??????????????????????????????????????????????????????????????????????????????????卸????????????纾�???AND 1=2?????????????????FALSE???????OR 1=2???????????????????????????????????????????
?????????些???????????????WHERE???????????????????????????UNION SELECT????娲�?????stored procedures??????????????????????????SQL?????????????????????????????????SQL?????????????锟�????????????????SQL????????????????梅?????????????????????--?????????SQL Server??????????械????????????纾�???????????????????????????????????????????SQL???????
????SELECT Username?? UserID?? Password FROM Users WHERE Username = ‘user’ AND Password = ‘pass’
???????????john’--?????????????????????WHERE???
????WHERE Username = ‘john’ --'AND Password = ‘pass’
????????????????????SQL????????????????????????????????????????????WHERE???
????WHERE (Username = ‘user’ AND Password = ‘pass’)
?????????????????????????????????john’--?????????????????????
????WHERE (Username = ‘john' --' AND Password = ‘pass’)
?????????????未????????????????????????小?
?????????????????????????????????卸????????????????????????????????????????胁???????????味??????????????????????????????????????????????????????懈???????????
??????

???路???
??????????????????
2023/3/23 14:23:39???写?貌??????????
2023/3/22 16:17:39????????????????????些??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???路???????路
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11