最近 RIPS 团队公开了一个 WordPress 的任意文件删除漏洞(需要登录),目前该漏洞仍然未修复(2018年06月27日),该漏洞影响 Wordpress 最新版 4.9.6。...漏洞原理与危害 该漏洞出现的原因是由于在 WordPress 的wp-includes/post.php文件中wp_delete_attachement()函数在接收删除文件参数时未进行安全处理,直接进行执行导致...function wp_delete_attachment( $post_id, $force_delete = false ) { ......$meta['thumb']的值,从数据库中检索,并保存成表示图像的文章自定义字段。因此,在从数据库检索到unlink()函数调用之间表示缩略图文件名的值没有经过任何检查和过滤。...$_POST['thumb']可以变为任意文件的路径,这个值可以保存到 WordPress 上传目录的相对路径中,当附件被删除时,该文件将被删除。攻击者可利用此漏洞进而执行任意代码。
漏洞分析 1.文件wp-includes/post.php中: function wp_delete_attachment( $post_id, $force_delete = false ) {...This filter is documented in wp-includes/functions.php */ $thumbfile = apply_filters( 'wp_delete_file...代码未检查meta['thumb']的内容,直接带入unlink函数,如果 2.文件/wp-admin/post.php中: switch($action) { case 'editattachment...image.png 漏洞利用 登录后台,添加媒体 访问 http://你的域名/wp-admin/upload.php, 上传任意图片. image.png 将 $meta['thumb'] 设置为我们要删除的文件.../wp-config.php' 删除文件 4.1 在网页源码中找到另外一个 _wpnonce. image.png 发送Payload: curl -v 'http://9c9b.vsplate.me/
/ Wordpress 文件删除漏洞 WordPress是如今使用最为广泛的一套内容管理系统。...昨日RIPS团队公开了一个Wordpress的任意文件删除漏洞(需要登录),目前该漏洞仍然未修复(2018年06月27日),该漏洞影响 Wordpress 最新版 4.9.6....代码未检查$meta['thumb']的内容,直接带入unlink函数,如果$meta['thumb']可控则可导致文件删除。...将 $meta[‘thumb’] 设置为我们要删除的文件 3.1 点击第二步中我们上传的图片, 并记住图片ID....删除文件 4.1 在网页源码中找到另外一个 _wpnonce.
git commit -m "我把文件存到Git仓库了啊" 1、场景一:小明“不小心”把工作区的hello.txt手动删除了。...deleted: hello.txt no changes added to commit (use "git add" and/or "git commit -a") Git发现工作区和仓库版本不一样...事实上Git已经提醒了,rm或者checkout 1.1 小明没有不小心,他确实要把文件删除 先删除 git rm hello.txt 再提交 git commit -m "i wanna remove...1.2 小明确实不小心,他想买“后悔药”,Git帮可以他 一句代码还原精灵 git checkout --hello.txt 这么做有可能造成损失,因为还原的是Git仓库的,万一小明把最最新版的文件删除了那...2、场景二:小红想把Git仓库和暂存区的文件删除,但是保留工作区的文件,怎么办? Git帮她 git rm --cached hello.txt 文件还在磁盘上,就是不知道是不是小红需要的:0
WordPress删除文章时,文章内所上传到媒体库的图片等附件不会自动删除,占用了网站空间,因此下面说明通过几行代码的简单方式实现在删除文章时自动删除缩略图以及图片附件,这样就不用手动去媒体库寻找并删除...将代码放到模板目录functions.php文件中即可使用,其原理是在删除文章时先执行函数内容,删除特色图片以及图片附件,如果在使用action delete_post而不是before_delete_post...将导致删除文章后因媒体附件与文章关联已取消而无法正确删除。...meta_key = '_thumbnail_id' AND post_id = $post_ID"); foreach ($thumbnails as $thumbnail) { wp_delete_attachment...post_parent = $post_ID AND post_type = 'attachment'"); foreach ($attachments as $attachment) { wp_delete_attachment
对于使用WordPress建站的朋友们知道,对于有些觉得过时了的文章或者自己觉得不喜欢了,想删除,但在删除文章时,一般来说文章内所上传到媒体库的图片等附件不会自动删除。...那如何在删除文章的同时删除图片附件以及特色图像呢?以下的代码可以实现在删除文章时自动删除文章图片附件以及特色图片,这样就不用手动去媒体库寻找并删除,准确而且效率高。...将代码放到当前主题functions.php文件中即可删除文章图片附件。...postmeta WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID"); foreach ($thumbnails as $thumbnail) { wp_delete_attachment...WHERE post_parent = $post_ID AND post_type = 'attachment'"); foreach ($attachments as $attachment) { wp_delete_attachment
然后在删除媒体内容时,有如下代码: ? 当前用户有删除内容的权限时,调用了wp_delete_attachment函数,这里的post_type认就是attachment。...然后跟进wp_delete_attachment函数,在文件/wp-includes/post.php中 ? 跟进次函数: ?...从meta[‘thumb’]到thumbfile,再从thumbfile进入unlink函数,没有对文件进行过滤处理,导致直接删除文件。...通过上面的分析,我们首先通过修改媒体文件,给thumb赋值为你想删除的文件,然后再删除此媒体文件,既可以删除任意文件。..../111111文件路径。 然后我们在删除该文件,首先找到删除文件时的wpnonce: ?
1、java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息。...// 将本地文件名为src的文件上传到目标服务器,目标文件名为dst,若dst为目录,则目标文件名将与src文件名相同. 230 // 采用默认的传输模式...要删除文件所在目录 273 * @param deleteFile 274 * 要删除的文件 275 * @param sftp...); 338 339 // 4、下载文件 340 // src 是linux服务器文件地址,dst 本地存放地址,采用默认的传输模式:OVERWRITE........ 3、/home/hadoop/package/test ,下载文件成功..... 4、/home/hadoop/package/test 删除的文件..... 5、[drwxrwxrwx
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网站,也可以把WordPress 当作一个内容管理系统(CMS)来使用。...–添加优化代码到主题目录functions.php文件–> /*彻底关闭自动更新(核心程序/主题/插件/翻译自动更新*/ add_filter('automatic_updater_disabled',...img的width和height属性 add_filter('the_content', 'ludou_remove_width_height_attribute', 99); } /* 删除文章时删除图片附件...WHERE meta_key = '_thumbnail_id' AND post_id = $post_ID" ); foreach ( $thumbnails as $thumbnail ) { wp_delete_attachment...WHERE post_parent = $post_ID AND post_type = 'attachment'" ); foreach ( $attachments as $attachment ) { wp_delete_attachment
0x01 漏 洞 分 析 漏洞发生在 wp-admin/upload.php 的157行,进入删除功能, ?...之后进入函数 wp_delete_attachment( $post_id_del ) ,$post_id_del 可控,而且没有做(int)格式转化处理。...wp_delete_attachment 位于 wp-includes\post.php 的 4863 行。其中 ?...如下代码是可以执行的,显然php格式化字符串中并不存在 %y 类型,但php不会报错,也不会输出 %y ,而是输出为空 和代码执行等漏洞。
wp_delete_attachment( $post_id_del ),$post_id_del可控,而且没有做(int)格式转化处理。...wp_delete_attachment位于wp-includes\post.php的 4863 行。...如下代码是可以执行的,显然php格式化字符串中并不存在%y类型,但php不会报错,也不会输出%y,而是输出为空 和gbk的长度不同而吃掉\。...而其他使用sprintf进行字符串拼接的cms,同样可能因此导致SQL注入和代码执行等漏洞。
如何安全、靠谱地备份文件,避免病毒破坏和人为删除呢?...客户机房里面有台闲置的服务器,跑应用是不行了,于是装上TrueNas,加上几块新硬盘,配置存储池,变身成为一台存储服务器,用来给文件服务器定期备份。...TrueNas只开放rsnyc服务,然后在文件服务器下载rsyncicon,并且执行命令: rsync -vzrtopg --progress --port 53378 /cygdrive/d/files.../ rooticon@192.168.100.10::backup 这条命令的作用是:把本机D盘files文件夹备份到 nas
Redis使用的过期键删除策略 Redis服务器使用的是惰性删除策略和定期删除策略。...如果服务器以从服务器模式运行,在载入RDB文件时,文件中保存的所有键,不论是否过期,都会被载入到数据库中。...因为主从服务器在进行数据同步(完整重同步)的时候,从服务器的数据库会被清空,所以一般情况下,过期键对载入RDB文件的从服务器不会造成影响。更多面试题,欢迎关注公众号 Java面试题精选 4....从服务器在执行客户端发送的读命令时,即使发现该键已过期也不会删除该键,照常返回该键的值。...从服务器在执行客户端发送的读命令时,即使发现该键已过期也不会删除该键,照常返回该键的值。 从服务器只有接收到主服务器发送的DEL命令后,才会删除过期键。
Redis使用的过期键删除策略 Redis服务器使用的是惰性删除策略和定期删除策略。...如果服务器以从服务器模式运行,在载入RDB文件时,文件中保存的所有键,不论是否过期,都会被载入到数据库中。...因为主从服务器在进行数据同步(完整重同步)的时候,从服务器的数据库会被清空,所以一般情况下,过期键对载入RDB文件的从服务器不会造成影响。 4....复制功能对过期键的处理 在主从复制模式下,从服务器的过期键删除动作由主服务器控制: 主服务器在删除一个过期键后,会显式地向所有从服务器发送一个DEL命令,告知从服务器删除这个过期键。...从服务器在执行客户端发送的读命令时,即使发现该键已过期也不会删除该键,照常返回该键的值。 从服务器只有接收到主服务器发送的DEL命令后,才会删除过期键。 6.
Redis使用的过期键删除策略 Redis服务器使用的是惰性删除策略和定期删除策略。...如果服务器以从服务器模式运行,在载入RDB文件时,文件中保存的所有键,不论是否过期,都会被载入到数据库中。...因为主从服务器在进行数据同步(完整重同步)的时候,从服务器的数据库会被清空,所以一般情况下,过期键对载入RDB文件的从服务器不会造成影响。更多面试题,欢迎关注公众号 Java面试题精选 4....复制功能对过期键的处理 在主从复制模式下,从服务器的过期键删除动作由主服务器控制: 主服务器在删除一个过期键后,会显式地向所有从服务器发送一个DEL命令,告知从服务器删除这个过期键。...从服务器在执行客户端发送的读命令时,即使发现该键已过期也不会删除该键,照常返回该键的值。 从服务器只有接收到主服务器发送的DEL命令后,才会删除过期键。 6.
,已过期的键就不会被保存到新创建的 RDB文件中 载入 RDB 文件 主服务器:载入 RDB 文件时,会对键进行检查,过期的键会被忽略 从服务器:载入 RDB文件时,所有键都会载入。...但是会在主从同步的时候,清空从服务器的数据库,所以过期的键载入也不会造成啥影响 AOF文件 AOF 文件写入 当过期键被惰性删除或定期删除后,程序会向 AOF 文件追加一条 del 命令,来显示的记录该键已经被删除...AOF 重写 重启过程会对键进行检查,如果过期就不会被保存到重写后的 AOF 文件中 复制 从服务器的过期键删除动作由主服务器控制 主服务器在删除一个过期键后,会显示地向所有从服务器发送一个 del...命令,告知从服务器删除这个过期键 从服务器收到在执行客户端发送的读命令时,即使碰到过期键也不会将其删除,只有在收到主服务器的 del 命令后,才会删除,这样就能保证主从服务器的数据一致性 疑问点?...并将数据发送给从服务器,这样就达到了数据一致性 小结 本文主要分析了 Redis 的过期策略是采用惰性删除和定期删除两种策略配合完成,然后简单看了两种策略的源码和是怎么实现的。
,redis会对数据库中的所有的键进行检查,已经过期的键不会被加入新的rdb文件中。...载入RDB:载入rdb文件时,会区分载入的这个redis服务器是主服务器还是从服务器。...AOF载入:在载入AOF文件时,过期的键不会被载入,redis会检查键是否有过期,避免载入过期的键。...2)当客户端读取到从服务器的过期键,从服务器不会删除键,而是当作正常的键返回。从服务器只有接到主服务器del指令才会删除键,其自身不会删除键。...大致流程如下图所示: 1)客户端访问从服务器的过期键,从服务器不会判断键是否过期,也不会删除过期的键,并且还会将键的结果返回给客户端。 ?
Redis 过期机制 Redis 采取的是惰性删除和定期删除配合使用的方式。 惰性删除是指 Redis 会在访问某个键的时候检查该键是否过期,如果过期,就会将输入键从数据库中删除。...载入 RDB 文件时,如果该服务器是主服务器,则不会载入文件中过期的键;如果该服务器是从服务器,则不论过期与否都会被载入。...不过,因为主从服务器在同步的时候,从服务器的数据库会被清空,所以一般来讲,过期键对载入 RDB 文件的从服务器不会造成影响。...复制功能对过期键的处理 主服务器在删除一个过期键后,会显式地向所有从服务器发送一个 DEL 命令,告知从服务器删除这个过期键。...Redis 3.2 前,为了保持主从一致性,从服务器在执行客户端发送的读命令时,即使碰到过期键也不会将过期键删除,而是继续像处理未过期键一样处理过期键。
领取专属 10元无门槛券
手把手带您无忧上云