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

建网站需要有啥能力wordpress 笔记本

建网站需要有啥能力,wordpress 笔记本,在上海做家教的网站,wordpress weather目录 环境搭建 第一关 方法一 修改文件类型 方法二 前端禁用JS绕过 第二关 方法一 修改Content-Type类型 方法二 修改上传文件类型 第三关 第四关 第五关 方法一 Windows大小写绕过 方法二 利用.user.ini 第六关 第七关 第八关 第九关 第十关 第十一关 第十二…目录 环境搭建 第一关 方法一 修改文件类型 方法二 前端禁用JS绕过 第二关 方法一 修改Content-Type类型 方法二 修改上传文件类型 第三关 第四关 第五关 方法一 Windows大小写绕过 方法二 利用.user.ini 第六关 第七关 第八关 第九关 第十关 第十一关 第十二关 第十三关 第十四关 第十五关 环境搭建 upload-labs是一个使用php语言编写的专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助网络攻防初学者对上传漏洞有一个全面的了解。目前一共20关每一关都包含着不同上传方式。 靶场链接https://github.com/c0ny1/upload-labs/releases/tag/0.1 具体搭建参考过程如所示https://blog.csdn.net/2302_80946742/article/details/137714313?utm_mediumdistribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-137714313-blog-135903159.235^v43^pc_blog_bottom_relevance_base5spm1001.2101.3001.4242.1utm_relevant_index3 第一关 方法一 修改文件类型 该关卡是通过前端验证前端验证通过之后再上传文件上传文件的过程不进行过滤。所以我们可以先将PHP文件改为PNG绕过前端JS验证通过之后使用BurpSuite抓取上传文件的数据包并将文件类型改为PHP继续上传。 先准备一句话木马如下文件类型PNG 此后尝试上传文件并且通过后台BurpSuite抓取上传文件的数据包并将其进行修改。 对回显的图片右键可以获取图片地址之后可以通过一些链接工具进行连接测试。由于是在本地搭建通过查看路径发现文件已经上传成功。 方法二 前端禁用JS绕过 在游览器按F12打开页面审查找到设置里面Disable JavaScript点击禁用。之后就可以上传PHP文件。 第二关 MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的标准用来表示文档、文件或字节流的性质和格式。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。 MIME 的组成结构非常简单由类型与子类型两个字符串中间用 / 分隔而组成不允许有空格。type 表示可以被分多个子类的独立类别subtype 表示细分后的每个类型。MIME类型对大小写不敏感但是传统写法都是小写。 这一关不再进行前端验证通过查看提供的源码我们发现他是一个在服务端对数据包的MIME进行验证并且发现只对文件的Content-Type类型有限制if (($_FILES[upload_file][type] image/jpeg) || ($_FILES[upload_file][type] image/png) || ($_FILES[upload_file][type] image/gif)) {检查上传的文件是否为 JPEG、PNG 或 GIF 格式的图像文件。如果不是这些格式会提示用户文件类型不正确并要求重新上传。 方法一 修改Content-Type类型 我们可以上传PHP文件之后通过BurpSuite抓取上传文件的数据包将Content-Type类型改为image/jpeg、image/png、image/gif三种任选其一重新发包。 方法二 修改上传文件类型 我们可以上传图片文件之后通过BurpSuite抓取上传文件的数据包将文件的后缀改为PHP即可。 第三关 通过直接上传PHP文件返回发现会提示黑名单即扩展名检测机制后端利用$_FILES()和strrchr()获取文件名后缀。由于是黑名单限制且名单不完整其实可以采用一些方法绕过。比如在某些特定环境中某些特殊后缀仍会被当作php文件解析的扩展名有php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml。 通过分析源代码我们发现代码修改了文件名称生成一个新的文件路径包括上传路径、当前时间戳和随机数以及文件后缀以确保文件名的唯一性。但是由于可以直接在前端获取文件名称所以这一步并没有对后续操作进行限制。 第四关 通过直接上传PHP文件返回发现会提示黑名单即扩展名检测机制和第三关不一样的是基本上限制了所有可用的文件类型。但是还有一种文件类型可以利用即.htaccess文件。 .htaccess是一个纯文本文件它里面存放着Apache服务器配置相关的指令。.htaccess主要的作用有URL重写、自定义错误页面、MIME类型配置以及访问权限控制等。主要体现在伪静态的应用、图片防盗链、自定义404错误页面、阻止/允许特定IP/IP段、目录浏览与主页、禁止访问指定文件类型、文件密码保护等。.htaccess的用途范围主要针对当前目录。并且该文件的优先级比较高甚至高于Apache的主要配置文件httpd-conf 创建.htaccess文件代码如下这个代码的作用是如果当前目录下有.png的文件就会被解析为.php成功上传。 FilesMatch .png SetHandler application/x-httpd-php /FilesMatch 再上传一个一句话木马文件名为 test.png依旧访问 test.png但其会以 PHP形式显示 第五关 通过查看源码发现依然是黑名单过滤但是过滤的文件类型更加齐全不能使用.htaccess文件。由于本机环境是在Windows下进行的所以此时就可以尝试使用大小写绕过限制上传文件或者是使用.user.ini配置文件。 方法一 Windows大小写绕过 通过分析源码发现和之前几关相比少了一段代码$file_ext strtolower($file_ext); //转换为小写在这行代码中strtolower函数被用于将变量$file_ext所包含的字符串转化为全小写。所以可以修改PHP文件的后缀大小写从而实现绕过。大小写绕过原理 Windows系统下对于文件名中的大小写不敏感。例如test.php和test.PHP是一样的。Linux系统下对于文件名中的大小写敏感。例如test.php和 test.PHP就是不一样的。 方法二 利用.user.ini 它比.htaccess 用的更广不管服务器是 nginx/apache/IIS当使用 CGIFastCGI 来解析 php 时php 会优先搜索目录下所有的.ini 文件并应用其中的配置。作用特定用于用户或者特定目录的配置文件通常位于Web应用程序的根目录下。类似于 apache 的.htaccess但语法与.htacces 不同语法跟php.ini一致并且.user.ini先级较高。内容如下auto_prepend_filetest.png 再上传一个内容为 php 一句话脚本命名为 test.png。.user.ini文件作用所有的 php 文件都自动包含 test.png文件。.user.ini相当于一个用户自定义的 php.ini。但是由于当前环境不符合该条件所以该方法不能进行测试。 注意应用前提是 版本选择最好大于5.3.0最好是7.x的版本 并且Server API 为CGI/FastCGI; .user.ini可以生效并且该目录下有PHP文件 第六关 分析源代码我们发现相比于之前的代码次出少了部分内容$file_ext trim($file_ext); //首尾去空并没有对文件后缀名进行首尾去空的操作。这一行代码使用了PHP的trim函数对变量$file_ext所存储的字符串进行处理。trim函数的作用是去除字符串首尾的空白字符包括空格、换行符、制表符等所以这里可以通过对文件后缀名末尾进行添加空格的方式来进行绕过。 Windows 系统下对于文件名中空格会被作为空处理程序中的检测代码却不能自动删除空格。从而绕过黑名单。 所以可以通过BurpSuite抓取上传文件的数据包通过在文件名称后面添加空格来绕过判断。 第七关 通过对比前几关的源码发现少了$file_name deldot($file_name);//删除文件名末尾的点。该代码主要是去除文件名后面的点。并且windows等系统默认删除文件后缀的.和空格没有过滤点。 因为代码是通过拼接合成文件使用$file_ext strrchr($file_name, .);通过查找文件名中最后一个点来获取文件后缀。并且之后对文件后缀进行大写转小写。之后随机文件名称 修改后的后缀拼接文件名称。所以我们可以通过BurpSuite抓取上传文件的数据包在filename最后面添加.来将文件名称33.php改为33.php.。此时文件名称为33.php文件后缀为空。 第八关 通过分析源码发现与之前相比发现少了对上传的文件后缀名为做去::$DATA 处理的过程上传到服务器的文件在Windows中会自动去掉::$DATA。 利用Windows特性 在window的时候如果文件名::$DATA会把::$DATA之后的数据当成文件流处理,不会检测后缀名且保持::$DATA之前的文件名他的目的就是不检查后缀名。 例如:phpinfo.php::$DATAWindows会自动去掉末尾的::$DATA变成phpinfo.php 所以可以通过BurpSuite抓取上传文件的数据包在filename最后面添加::$DATA来绕过检查文件后缀名称。 第九关 通过分析代码发现将文件名进行过滤操作后将文件名拼接在路径后面所以需要绕过前面的首尾去空以及去点。 $is_upload false; $msg null; if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(.php,.php5,.php4,.php3,.php2,.html,.htm,.phtml,.pht,.pHp,.pHp5,.pHp4,.pHp3,.pHp2,.Html,.Htm,.pHtml,.jsp,.jspa,.jspx,.jsw,.jsv,.jspf,.jtml,.jSp,.jSpx,.jSpa,.jSw,.jSv,.jSpf,.jHtml,.asp,.aspx,.asa,.asax,.ascx,.ashx,.asmx,.cer,.aSp,.aSpx,.aSa,.aSax,.aScx,.aShx,.aSmx,.cEr,.sWf,.swf,.htaccess);$file_name trim($_FILES[upload_file][name]);$file_name deldot($file_name);//删除文件名末尾的点$file_ext strrchr($file_name, .);$file_ext strtolower($file_ext); //转换为小写$file_ext str_ireplace(::$DATA, , $file_ext);//去除字符串::$DATA$file_ext trim($file_ext); //首尾去空if (!in_array($file_ext, $deny_ext)) {$temp_file $_FILES[upload_file][tmp_name];$img_path UPLOAD_PATH./.$file_name;if (move_uploaded_file($temp_file, $img_path)) {$is_upload true;} else {$msg 上传出错;}} else {$msg 此文件类型不允许上传;}} else {$msg UPLOAD_PATH . 文件夹不存在,请手工创建;} } 代码首先获取文件全称之后通过deldot函数删除文件末尾出现的点之后会基于.进行分割获取文件后缀。并且将后缀转小写、去除字符串::$DATA、首位去除空格。完成一系列操作之后会将文件名称存储到upload文件夹下。它只去掉一次空格和点,举个例:测试.php. . 最后代码执行完后变成 测试.php.。所以可以构建$file_name33.php即通过BurpSuite抓取上传文件的数据包修改文件名称格式为点php点空格点。 第十关 通过分析代码发现$file_name str_ireplace($deny_ext,, $file_name);利用str_ireplace()将文件名中符合黑名单的字符串替换成空。但是只替换了一次所以可以尝试双写后缀绕过。 注意str_ireplace()函数一下特点 该函数必须遵循下列规则 如果搜索的字符串是一个数组那么它将返回一个数组。 如果搜索的字符串是一个数组那么它将对数组中的每个元素进行查找和替换。 如果同时需要对数组进行查找和替换并且需要执行替换的元素少于查找到的元素的数量那么多余元素将用空字符串进行替换 如果是对一个数组进行查找但只对一个字符串进行替换那么替代字符串将对所有查找到的值起作用。 注释该函数不区分大小写。请使用 str_replace()函数来执行区分大小写的搜索。 基于以上规则修改文件类型将原本33.php修改为33.pphphp进行测试。 第十一关 通过分析代码发现$img_path $_GET[save_path]./.rand(10, 99).date(YmdHis)...$file_ext;定义上传文件的目标路径通过获取 URL 参数中的保存路径$_GET[save_path]并结合随机数、当前时间戳和文件后缀名生成唯一的文件名所以可以通过控制文件路径将其截断将图片中的PHP代码存入其中。 通过BurpSuite抓取上传文件的数据包修改设置save_path参数内容为upload/test.php%00 ,添加test.php%00内容为了控制路径上传文件后缀为白名单即可上传一个文件后缀问白名单中的后缀的PHP文件。保存后为/upload/test.php%00*****.png但服务端读取到%00时会自动结束将文件内容保存至test.php中。 PS:需要 php 的版本号低于 5.3.29且 magic_quotes_gpc 为关闭状态。 第十二关 该关卡依然使用白名单限制上传文件类型但上传文件的存放路径可控但因为是 POST 型需要在 16 进制中修改因为 POST 不会像 GET 那样对%00 进行自动解码。 第十三关 分析代码getReailFileType()函数 function getReailFileType($filename){}定义一个函数用于获取文件的真实类型。 $file fopen($filename, rb);以二进制只读模式打开文件。 $bin fread($file, 2); //只读 2 字节读取文件的前两个字节。 fclose($file);关闭文件。 $strInfo unpack(C2chars, $bin);将读取的两个字节解包为一个关联数组。 $typeCode intval($strInfo[chars1].$strInfo[chars2]);将两个字节组合成一个整数作为文件类型代码。 $fileType ;初始化文件类型变量。 switch($typeCode){...}根据文件类型代码判断文件类型并设置相应的文件类型字符串。 return $fileType;返回文件类型。 通过读文件的前 2 个字节检测上传文件二进制的头信息判断文件类型利用010 Editor变写图片内容为一句话木马从而绕过检测。并且后端会根据判断得到的文件类型重命名上传文件之后通过文件包含漏洞进行连接。 常见图片文件二进制Png图片文件包括8字节89 50 4E 47 0D 0A 1A 0A。即为 .PNGJpg图片文件包括2字节FF D8。Gif图片文件包括6字节47 49 46 38 39|37 61 。即为 GIF89(7)a。Bmp图片文件包括2字节42 4D。即为 BM 可以使用010 Editor查看图片马的内容 将这个文件上传到服务器之后通过利用文件包含漏洞去包含这个图片文件以便于执行PHP代码。 第十四关 通过分析代码发现代码首先定义了允许的图像文件类型扩展名的字符串 $types。然后通过 file_exists 函数检查文件是否存在。如果存在使用 getimagesize 函数获取文件的图像相关信息如宽度、高度、图像类型等接着通过 image_type_to_extension 函数将获取到的图像类型转换为对应的文件扩展名。最后通过 stripos 函数检查转换后的扩展名是否在允许的类型字符串中如果是则返回该扩展名否则返回 false。如果文件不存在也直接返回 false。 图片马可以通过cmd直接制作命令格式为copy logo.jpg/btest.php/a test.pnglogo.jpg为任意图片test.php 插入的木马文件test.jpg 生成的图片木马 之后在网页直接上传文件利用文件包含漏洞进行包含图片并且通过蚁剑连接。 第十五关 分析代码发现与之前的相比exif_imagetype()读取一个图像的第一个字节并检查其后缀名。返回值与getimage()函数返回的索引2相同但是速度比getimage快并且判断更加严格。
http://www.dnsts.com.cn/news/221834.html

相关文章:

  • 做网站好的天元集团第一建筑公司
  • 做网站买服务器企业网站如何seo
  • 怎么做自己下单的网站网站建设新报价图片
  • 宿主选择 网站建设人才招聘网网站策划方案
  • 石家庄高铁站专业的seo外包公司
  • 如何做好网站推广方法遵义软件制作平台
  • 网站没有备案怎么申请广告承接网站开发 小程序开发
  • 白银网站建设公司免费学生网页制作成品代码
  • eclipse怎么做网站晋城市企业网站
  • 免费论坛建站系统wordpress 禁用谷歌
  • 哈尔滨网站建设方案做照片书的模板下载网站好
  • 廊坊那家做网站排行榜网店推广的方式
  • 免费下载建网站教程成立一个公司需要什么条件
  • 网站连接微信支付app发布流程
  • 会议响应式网站开发企业信息管理
  • 建立网站时间宁波建设网站公司推荐
  • 珠海做快照网站电话网站负责人拍照
  • 专注网站开发百度蜘蛛池自动收录seo
  • 房地产集团网站欣赏年会策划方案
  • 做网站要注意代加工接订单网站
  • 做网站需要注册公司关键词批量调词 软件
  • 帮朋友做网站不给钱网站建设服务器和空间费
  • 网站建设 发展方向许昌网站开发公司
  • 广州自助网站制作wordpress 数据库sql
  • 网站开发和后期维护费用国家建设工程造价数据监测平台在哪个网站
  • 网站框架类型照片做视频的软件 模板下载网站
  • 网站推广含义哪有专做注册小网站的
  • 中山 网站制作佛山个人网站建设
  • 中国建设银行网站分析武威建设网站的网站
  • wordpress商城网站网站建设公司选择标准