当前位置:网站首页 > 技术博客 > 正文

迎新杯比赛啥意思





放出源码:

 

这一次是对函数的考查,其调用时php会检查该文件是否已经被包含过,如果是则不会再次包含,于是我们必须想办法绕过这个机制,从而实现再次包含文件flag.php.

上一次我们学习到php伪协议,结合下面这个知识点

 

我们就可以用伪协议配合多级符号链接的办法进行绕过,直接构造payload:

 

GET传参成功

转码后成功得到flag.

[资料查阅:require_once 绕过不能重复包含文件的限制]


依旧给出源码:

 

易知需要我们POST方式传入,然后拼接在后面,而输出只能想办法触发。

这里我们利用这一点

 

把用POST传入,即payload

成功获得flag.


源码给出:

 

需要我们绕过上传命令,从而实现RCE.

 

构造payload:
成功拿到flag.

Ⅱ、无参RCE直接过
看到的一种很牛的办法,不过还没有弄清原理。
payload:

 

Ⅲ、当然,还有其他绕过方法,如取反绕过:取反基本上用的都是一个不可见字符,不会触发到正则表达式。这里不再赘述,给出脚本:

 

[资料查阅:无字母数字绕过正则表达式总结]


查看页面源代码

 

可知前端对文件进行了绕过,且对文件内容也进行了过滤,尝试base64编码绕过:

 
 

上传成功!接下来的问题是,如何把这个上传的文件解析为文件。

了解到

htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

其中可以将给定的文件拓展名映射到指定的内容类型:

 

并且,通过 来设置 或者 配置选项包含一些敏感文件,同时在本目录或子目录里需要有可解析的php文件来触发

结合以上两个指令,我们可以上传一个文件:

 
 

修改请求包上传成功。

按照路径打开webshell.jpg->当作php解析->触发指令->执行源码

连接蚁剑,在根目录下找到Flag.

[查阅资料:.htaccess的利用方法和技巧]


上来就让我们登录(截这张图完全因为background好看哈哈哈❤)

根据题目名称提示,这题考察我们SSTI。补习了一些SSTI的知识后【服务器端模板注入(SSTI)】,先用bp抓包,找注入点:

发现在处有jinja2模板引擎的SSTI漏洞。
于是用等进行简单测试,发现,,,,都被过滤了,于是用尝试绕过,结果也被过滤。(事实上,,,,,也都被过滤,但是我还没有测出来)
从其他师傅那里piao到小姿势:

 
 
 

由此可以用诸如以下的方式构造我们需要的被“过滤”的关键字:

 

回到这一题,因为空格被过滤,可用换行符绕过。命令执行payload构造过程:

 

成功构造payload:

 
 

修改payload,将改为,上述dict拼接办法不能用(也可能是我操作有问题),直接一个个获取:

 

发现flag后按照上述办法将命令修改为:

 

成功获取FLAG,最后给出最终完整的Payload:


                            

版权声明


相关文章:

  • jdk监控工具2025-04-17 20:01:00
  • leveldb教程2025-04-17 20:01:00
  • ulimit -n 设置永久生效2025-04-17 20:01:00
  • 统一登录器网关未开放2025-04-17 20:01:00
  • 树状数组lowbit2025-04-17 20:01:00
  • java构造器什么时候执行2025-04-17 20:01:00
  • mysql版本号怎么看2025-04-17 20:01:00
  • python游戏编程教程2025-04-17 20:01:00
  • 二阶低通滤波器电路2025-04-17 20:01:00
  • excel对比功能2025-04-17 20:01:00