[SUCTF 2018]GetShell(无字母数字rce)
我们打开页面源码,发现源码里有个链接
我们点击后跳转到了新的页面,并发现了一串代码
1 | if($contents=file_get_contents($_FILES["file"]["tmp_name"])){ |
进行简单的代码审计,意思就是先读取文件中的内容,然后从第五位开始进行黑名单过滤,但我们不知道$black_char里面是什么,所以我们需要进行fuzz
网上找的一个脚本
1 | # -*- coding:utf-8 -*- |
测试过后,我们发现$
、(
、)
、.
、;
、=
、[
、]
、_
、~
,然后就是汉字没有被过滤,所以这题考的是无字母数字rce
我们异或汉字来获取想要的字母,对大量汉字进行fuzz
测试
1 | <?php |
然后构造shell
1 | <?php |
记得把注释删去
上传成功后我们访问上传路径,post一个_=phpinfo()
成功执行
输入,得到一个flag,但由于buu的环境问题,这个flag并不是这道题的flag
1 | _=system("cd /;ls;cat Th1s_14_f14g"); |
我们访问环境变量,得到这道题的flag
1 | _=system(env); |