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

公共交易中心资源网宁波网站推广优化收费情况

公共交易中心资源网,宁波网站推广优化收费情况,网站建设合同简单,东莞品牌网站建设报价目录 uploa-labs-main upload-labs-main第一关 前端防御 绕过前端防御 禁用js Burpsuite抓包改包 upload-labs-main第二关 上传测试 错误类型 upload-labs-env upload-labs-env第三关 上传测试 查看源码 解决方法 重命名#xff0c;上传 upload-labs-env第四关…目录 uploa-labs-main upload-labs-main第一关 前端防御 绕过前端防御 禁用js Burpsuite抓包改包 upload-labs-main第二关 上传测试 错误类型 upload-labs-env upload-labs-env第三关 上传测试 查看源码 解决方法 重命名上传 upload-labs-env第四关 测试方法 上传文件 upload-labs-env第五关 代码解析 解题思路——大小写绕过 upload-labs-env第六关 代码 空格绕过 upload-labs-env第七关 代码 绕过 upload-labs-env第八关 ::$DATA 绕过 upload-labs-env第九关 代码 思路 upload-labs-env第十关 代码 双写绕过 upload-labs第-env十一关 代码 思路——00截断问题只存在于php5.2版本中——get传参url编码方式 upload-labs-env第十二关 代码 思路——00截断——save_path是post传参 uploa-labs-main upload-labs-main第一关 前端防御 有一个过滤函数checkFile() 绕过前端防御 禁用js Chrome禁用js 设置—隐私与安全—网站设置—内容—JavaScript—不允许网站使用JavaScript 再次尝试上传成功 Burpsuite抓包改包 首先为文件进行重命名shell.php重命名为shell.jpg 上传shell.jpg文件 Burpsuite打开抓包 网页点击确定上传 发送到重放器改包将shell.jpg改为shell.php重新发送上传成功 upload-labs-main第二关 上传测试 错误类型 文件类型不正确 使用Burpsuite抓包改包 修改为image/png 上传成功 upload-labs-env upload-labs-env第三关 上传测试 查看源码 $is_upload false;$msg null;if (isset($_POST[submit])) {if (file_exists(UPLOAD_PATH)) {$deny_ext array(.asp,.aspx,.php,.jsp);//定义一个数组$deny_ext包含不允许上传的文件扩展名$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./.date(YmdHis).rand(1000,9999).$file_ext;            if (move_uploaded_file($temp_file,$img_path)) {$is_upload true;} else {$msg 上传出错;}} else {$msg 不允许上传.asp,.aspx,.php,.jsp后缀文件;}} else {$msg UPLOAD_PATH . 文件夹不存在,请手工创建;}} 分析源码 需要绕过黑名单的过滤 .php3 、Phtml等都可以被解析 需要修改Apache的配置文件httpd.conf使.php3 .phtml也可以被解析,当Apache和php版本低时服务端可以修改 在配置文件中添加 AddType application/x-httpd-php .phtml 重启Apache 注意在靶场实验中可能存在这个漏洞真实项目中不会存在 解决方法 黑名单绕过 在upload-labs-env原版环境中Apache的配置文件httpd.conf有将 .php3 .phtml解析成php文件 重命名上传 上传成功 解析成功 upload-labs-env第四关 测试方法 需要.htaccess文件 我们下载upload-labs-env原版环境自带phpstudy的低版本 在Apache的低版本中如果在目录中上传一个.htaccess文件 AddType application/x-httpd-php .jpg 会将后来上传的jpg文件解析成phpshell代码得以执行 上传文件 解析成功 upload-labs-env第五关 代码解析 $is_upload false; $msg null;# isset - 检测变量是否已经声明并且不为空 # $_POST[submit] - 表示表单中名为 submit 的按钮被点击 if (isset($_POST[submit])) {# file_exists — 检查文件或目录是否存在返回值为true或falseif (file_exists(UPLOAD_PATH)) {# 定义一个数组 $deny_ext包含一系列禁止上传的文件扩展名$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);# trim — 去除字符串首尾处的空白字符或者其他字符# $_FILES[upload_file] 是表单中 nameupload_file 对应的上传文件信息# 它包含以下常见字段# $_FILES[upload_file][name]上传文件的原始名称如 example.jpg。# $_FILES[upload_file][type]上传文件的 MIME 类型如 image/jpeg。# $_FILES[upload_file][size]上传文件的大小以字节为单位。# $_FILES[upload_file][tmp_name]上传文件的临时存储路径。# $_FILES[upload_file][error]与文件上传相关的任何错误代码$file_name trim($_FILES[upload_file][name]);$file_name deldot($file_name);//删除文件名末尾的点#strrchr — 查找指定字符在字符串中的最后一次出现的位置返回从最后一个点开始到字符串末尾的部分$file_ext strrchr($file_name, .);#str_ireplace - 执行不区分大小写的字符串替换在目标字符串中查找指定的子字符串无视大小写然后用另一个字符串替换它$file_ext str_ireplace(::$DATA, , $file_ext);//去除字符串::$DATA$file_ext trim($file_ext); //首尾去空#in_array — 检查数组中是否存在某个值检查数组$deny_ext中是否存在$file_extif (!in_array($file_ext, $deny_ext)) {# $_FILES[upload_file][tmp_name]上传文件的临时存储路径。$temp_file $_FILES[upload_file][tmp_name];$img_path UPLOAD_PATH./.date(YmdHis).rand(1000,9999).$file_ext;#move_uploaded_file — 将上传的文件移动到新位置if (move_uploaded_file($temp_file, $img_path)) {$is_upload true;} else {$msg 上传出错;}} else {$msg 此文件类型不允许上传;}} else {$msg UPLOAD_PATH . 文件夹不存在,请手工创建;} } 解题思路——大小写绕过 文件后缀大写绕过 上传.php文件 修改后缀名为.PHP 上传成功 解析执行 upload-labs-env第六关 代码 $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 $_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 空格绕过 文件名后缀加空格绕过 upload-labs-env第七关 代码 $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_ext strrchr($file_name, .);$file_ext strtolower($file_ext); //转换为小写$file_ext str_ireplace(::$DATA, , $file_ext);//去除字符串::$DATA$file_ext trim($file_ext); //首尾去空 绕过 文件后缀名后加点 upload-labs-env第八关 ::$DATA 绕过 upload-labs-env第九关 代码 没有对代码进行重命名拼接路径 $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()函数从后向前检测当检测到末尾的第一个点时会继续它的检测但是遇到空格会停下来 更改文件名为 index.php. . 即.php点 空格 点 运行php时首先删除文件名末尾的点 ...... 最后一步检查去除最后的空格 此时文件名为index.php. 上传到Windows环境中时系统会将其视为一个没有扩展名的文件 Windows会将 index.php. 解释为没有扩展名的文件因为末尾的点会被忽略。文件的实际名称会变成 index.php但扩展名会被视为不存在 upload-labs-env第十关 代码 $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,jsp,jspa,jspx,jsw,jsv,jspf,jtml,asp,aspx,asa,asax,ascx,ashx,asmx,cer,swf,htaccess);$file_name trim($_FILES[upload_file][name]);$file_name str_ireplace($deny_ext,, $file_name);$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 UPLOAD_PATH . 文件夹不存在,请手工创建;} } 使用str_ireplace()函数寻找文件名中存在的黑名单字符串将它替换成空即将它删掉可以使用双写绕过黑名单 双写绕过 upload-labs第-env十一关 代码 $is_upload false; $msg null; if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);//$_FILES[upload_file][name]获取上传文件的原始文件名//strrpos($_FILES[upload_file][name], .)查找文件名中最后一个点.的位置//substr(..., strrpos(...) 1)从最后一个点的下一个字符开始截取得到文件扩展名$file_ext substr($_FILES[upload_file][name],strrpos($_FILES[upload_file][name],.)1);if(in_array($file_ext,$ext_arr)){//$_FILES[upload_file][tmp_name]获取上传文件的临时存储路径$temp_file $_FILES[upload_file][tmp_name];//$_GET[save_path]从 URL 参数中获取保存路径//rand(10, 99)生成一个 10 到 99 之间的随机数//date(YmdHis)生成当前日期时间字符串格式为 年月日时分秒//最终路径格式保存路径/随机数时间戳.扩展名$img_path $_GET[save_path]./.rand(10, 99).date(YmdHis)...$file_ext;if(move_uploaded_file($temp_file,$img_path)){$is_upload true;} else {$msg 上传出错;}} else{$msg 只允许上传.jpg|.png|.gif类型文件;} } 思路——00截断问题只存在于php5.2版本中——get传参url编码方式 在c语言中\0是结束符 php底层是运行c语言 使用\0使截断代码使后面代码不再运行 使用的传递方式是urlcode传参,%00使用url解码后为空字符 当一个字符串中存在空字符的时候在被解析的时候会导致空字符后面的字符被丢弃 当php代码运行到 $img_path $_GET[save_path]./.rand(10, 99).date(YmdHis)...$file_ext;if(move_uploaded_file($temp_file,$img_path)){ 时路径变成了/upload/web.php 后面的连接字符都被丢弃了 之后将文件上传文件index.jpg的文件内容移动到web.php中这样恶意代码就可以被解析了 upload-labs-env第十二关 代码 $is_upload false; $msg null; if(isset($_POST[submit])){$ext_arr array(jpg,png,gif);$file_ext substr($_FILES[upload_file][name],strrpos($_FILES[upload_file][name],.)1);if(in_array($file_ext,$ext_arr)){$temp_file $_FILES[upload_file][tmp_name];$img_path $_POST[save_path]./.rand(10, 99).date(YmdHis)...$file_ext;if(move_uploaded_file($temp_file,$img_path)){$is_upload true;} else {$msg 上传失败;}} else {$msg 只允许上传.jpg|.png|.gif类型文件;} } 思路——00截断——save_path是post传参 0x00 是十六进制表示的空字符ASCII 值为 0 在web.php后面加一个空格在Burpsuite的hex转换中找到这个空格十六进制空格的编码为20 将其修改为十六进制的空字符表示00 修改后 发送
http://www.yingshimen.cn/news/112797/

相关文章:

  • 诸暨制作网站的公司有哪些wordpress 备案信息
  • 门户手机网站模板企业网站的建立要做的准备
  • asp.net+h5网站开发那个餐饮网站
  • 网站出错 图片asp网站做文件共享上传
  • 网站开发协议合作网站建设分金手指排名十三
  • 企业级网站开发原理图WordPress高端主题 熊
  • 培训机构一般在什么网站做推广php网站开发技术 pdf
  • 360免费网站空间企业展厅设计公司豆河镇展厅设计公司笔中展览
  • 中低端网站建设客户网百度竞价推广常用到的工具
  • 个商个体户可以建设网站不做网站建设公司网易互客
  • 网站页面链接怎么做的上海推广有限公司
  • .net core 网站开发北京市住房和城乡建设网站
  • 想要网站推广版点击立即进入正能量网站
  • 辽宁省锦州市住房与城乡建设厅网站抖音代运营是做什么的
  • 摄影师常用的网站wordpress微博样式评论
  • 网站出售我想开个网店不知道怎么入手
  • 公司网站销售平台建设费分录深圳网站建设首选
  • 上海网站建设排行做一手房的网站
  • 电子商务网站业务流程图东莞外包公司有哪些
  • 深圳做网站公司有那些信阳网站建设哪家好
  • 青岛网站seo多少钱门户网站建设的建议
  • 潍坊网站建设品牌小网站搜什么关键词好
  • 医院哪个科室负责网站建设国内最新经济新闻
  • 上海做网站的公司官网狼人在线观看视频人在线
  • 灰色链网站建设河池网站开发工程师招聘网
  • 兰州 网站建设公司哪家好电力通信网网络架构
  • 网站建设公司文案东丽网站建设公司
  • 专注邯郸建设手机网站深圳宝安区网站建设
  • 长宁微信手机网站制作品牌推广策略案例
  • 云南网站优化开一家网站建设公司怎样